GMTK Game Jam 2024 - DevLog #3


Hi there, Daugsilius talking !


Here we are, end of the second day of the jam.

What a day it's been. Honestly, if there was no extra delay for this jam, I would be freaking out since I'm veeeeery far from even having a complete core loop. But I seem to have achieved a good (enough) implementation of the core mechanic.


On the plus side : the weighing scale is implemented and works OK, with correct physics settings. I have falling blocks that bounce around, can stack on top of each other and will tip the scales when their mass is not balanced on both sides.

 With that, I can now build a simple game loop of generating blocks, placing them with the mouse, losing if some blocks fall off the screen, and playing a nice sound effect when all blocks have been placed and the scales are balanced.


But the issue is exactly that : I can now build a game. Right now, after 1,5 days of work, it's just a physics simulation. This is honestly not great for a project that's supposed to be done after a few days.


This morning, I decided to opt for a  readymade open source physics engine. I thought it  would save me a lot of time. And I'm pretty sure it did. But it took me an extremely long time to get it working nicely. 

I'm using Aether Physics2D. The engine itself is simple, its interface is not very complex, but it's doing a lot of quirky and imperfect things that took me the entire day to wrap my head around. 

Mainly, when 2 blocks are stacked on top of each other, the top one will be "bounced" up very slightly, just enough to trigger an "end of collision" event, and then it will fall back down the next frame thanks to gravity and trigger a "start of collision" event. So my idea to listen to ongoing contacts to see which blocks are above which and therefore applying their weight to them fails. 

I can't really have the plates of the scales be fully simulated objects, otherwise they will move chaotically when they're supposed to be the base of a cool jenga tower. But that means the imperfections and limitations of the engine are holding me back. Sometimes the blocks will overlap with the plates because I'm moving manually, sometimes they will bounce forever without really coming to a rest...

I'm disappointed that instead of making my life easier, it ended up being a big time sink. There does not seem to be many alternatives around (most other ones I've found have received no updates in 3+ years). Aether derives from FarSeer (deprecated), which itself is a port of Box2D (a C library), and as far as I can tell, it's maintained mostly by one individual. I completely get why it lacks documentation, fine-grain quality of life and some features from Box2D that would have been useful tweaks. And it probably saved me from giving up on proper physics and making a very basic pile of blocks. But yeah, I'm bittersweet about it.


Anyway, there is still a lot of time left, I have learned a lot today which is great, and I can always sacrifice some polish or crazy ideas I wrote down to get it done. And sleep - this one comes easy for me.


Oh, and I've found a name for the game !

"Tower of Scales".

Now it will be both a game I made and a place I invented for my dungeons and dragons game. I hope some people will have fun with this climb :)

Get Tower of Scales - GMTK Game Jam 2024

Leave a comment

Log in with itch.io to leave a comment.