Random reminder that Game Programming Patterns is a fantastic (and free!) resource for anyone interested in game programming~
It's mainly relevant for those who want to write engines, but there's stuff in there useful to people using premade engines. Plus it never hurts to understand how your chosen game engine probably works!
80% of everything in my game engine that *isn't* an awful mess was probably based on what I learned from this book.
Gamedev, Godot question
I'm helping a friend make a tactics game. In Godot, can I make a base "Unit" class that I can then instance with customized stats and such? I'll need to instance these units procedurally later.
In Game Maker this is quite easy as the whole engine is built around instancing, but I haven't wrapped my mind around how to approach this in Godot.
Also, does it really require a tree of 3 nodes just to have a sprite that can test for overlap with other sprites?
Obligatory #gamedev GIF of a forest with falling leaf particles :>
Finally added some particles to indicate wind and water currents. Wind was already somewhat indicated by snow, but these make it clearer where exactly the wind is.
I finished building all the areas of my game recently, and I don't know which task to tackle next D: Help me decide~?
Had another go at the waterfalls in my game. I couldn't get anything tile-based to look good enough, and last time, particles weren't performant enough.
Today I realised that if I make the particles *really big*, I can get away with way fewer of them while still keeping the flow visually dense.
Gamedev, physics question
I noticed my physics is broken when it comes to external forces acting on characters.
I can clamp a character's velocity to either their max voluntary speed or to terminal velocity, but I can't figure out how to only clamp voluntary movement to the max voluntary speed and allow external forces to push the character to faster speeds.
Trying to track voluntary and involuntary velocity components independently broke everything :/
I couldn't help myself. I had space for one more tile type in my engine (tile type is encoded as 2 bits, i.e. 0-3, and I was only using 0-2) and I was wondering how to handle the big tilted blocks of rock in my game so... I now have sloped walls :D
Only outward sloping walls are possible, but I'm satisfied with that.
I was so excited at finally having a working options menu in my game that I didn't immediately notice the travesty that is the UI with the current default styles.
Bonus points: The size options are actually 1x, 2x, 3x, 4x, 5x, Fullscreen. The rest are invisible and can only be selected with keyboard/controller.
Guess who's been replaying Castlevania: Symphony of the Night and got envious of how that game could flip tiles in more ways than just horizontally?
Adding this was harder than you'd think, because horizontal flipping used to be stored as the tile ID's sign, negative meant h-flipped. I had to rewrite a lot of code to accommodate multiple flipping flags.
If I have a time budget of about 6ms per update() in my game, and particle effects eat up 3ms on an i7-6700, should I be worried that they'll cause lag (i.e. require more than the allotted 6ms) on weaker machines? My CPU isn't top-of-the-line, but it's no potato either.
Thought I'd try animating a waterfall using a particle emitter instead of tiles. It looks... okay, but it's too noisy for my taste, so I'll try implementing something similar with tiles tomorrow.
I like the dominance of solid colours, I'll keep that.
(Don't mind the invisible tree, I'll lighten up the background later.)
I don't have proper version control, and I don't back up my code nearly often enough, but the back-ups I do have give *a little* indication of what I've been working on and when :D
No idea what happened in 2017, but 2018 has apparently has been busy!
Cutscenes are a thing now! They have trigger zones and trigger conditions (set/unset global flags), and can change global flags when they start and end. Very basic, but I can achieve what I need with them.
They can also have idle animations that play before and after the actual cutscene, which might be useful occasionally. In the gif, the "IDLE" and "END" bits are these idle animations, while "!!!" is the cutscene proper.
Today's #gamedev task: Design and start implementing a cutscene system for my game.
The engine has no scripting support and I don't plan to add it, so this should be interesting!
I made the webcomic Black Dram! When I'm not working on comics, I'm probably making pixelarty games.
Mastodon.ART — Your friendly creative home on the Fediverse! Interact with friends and discover new ones, all on a platform that is community-owned and ad-free. Admin: @Curator. Moderators: @EmergencyBattle, @ScribbleAddict, @TapiocaPearl, @Otherbuttons, @katwylder