Glass Half Full
Game for TasJam 2025.
Glass Half Full is a 2d platforming game I made in 2025 as part of TasJam, a game jam organised by Tas Game Makers. I used the Bevy engine and pixel art from gandalfhardcore.
The game is pretty simple. The player just needs to collect buckets of water, and then use them to fill a glass at the end, twice. This was to fulfil the theme of the game jam, which was also "Glass Half Full". I went for a fairly straightfoward take on the theme, because I was more interested in the way I planned on coding it.
The intention of the game was to create procedurally generated levels on the fly, using smart terrain causality chains. I'd read the paper and the approach looked interesting. Unfortunately, and probably unsurprisingly, it turned out to be fairly difficult in practice. The hardest part wasn't generating the puzzles themselves, as I had only a few interactable objects so the causal chains were all pretty short. The real problem I had was making sure all the jumps were navigable and that there weren't platforms spawning in the way.
I had planned a variety of platform layouts, but for almost all of them I kept finding corner cases where the solution just wasn't possible. In the timeframe of the game jam, I didn't have time to fix all the issues, so I ended up dropping most of the layouts.
I was a lot more happy with the puzzles. I designed puzzles where the player could put out a fire with water, where it was blocking the way, or use a fire to melt snow and make water. Unlike layout, the puzzles usually managed to work correctly. I didn't have any issues where a necessary part failed to spawn, only layout issues blocking the puzzle from being solved.
I also appreciated the variety of pixel art I had at my disposal, and tried to fit as much of it in the game as possible. In retrospect, I may have been better off spending more time on the level layout issues. Still, now you can dress up your character in many nice outfits, which has to count for something.
I was also a big fan of the Bevy engine, which made it very easy to write good code. I feel like the ECS architecture just fits the way my brain works. For similar reasons, I like that it's written in Rust, because it's much more comfortable for me to code in than languages like C# or GDScript.
Overall I was pretty happy with how the game jam went, despite the problems I ran into. Having had some experience now with procedural level generation, I'm pretty sure I could do a lot better if I tried it again. Maybe next year.