Escape the game
About
You play as a pallet from a snake game that seemingly came to life. You need to survive for as long as possible before the hungry snake eats you.
This game was made as part of the 181st Mini Jam
Software used
Here is the software used to create the game:
- Godot Engine 4.4
- Inkscape
Assets used
Here are the assets used to create the game:
- Generic Platformer 2D (Kenney)
Contributions
The biggest contribution to this project is the level generation. Since this is an infinite runner, the player controller is actually quite simple to implement. However, generating the level ahead of the player needed a much more in-depth implementation.
I opted to use a simplified version of the Wave Function Collapse algorithm, using its neighour concept to create tiles that have a set list of valid neighbours. Whenever the level needs to generate a tile, it would pick a random valid neighbour and generate it. Afterwards, that neighbour would be used for the next level generation, repeating the aglorithm until the player dies.
This effectively allows for some cohesion on the level, allowing for some form of layout design for the player. It is not a perfect solution as the random aspect of this generator can cause tiles that are near impossible to overcome. However, for this 3 day time-frame, it was a reasonable solution.
Other contributions revolve around the animation of the player sprite using Inkscape. I created a simple spherical animation with bunny ears to connect the jam's theme about rabbits to the game. Furthermore, i added some sprint animation to sell how fast the player moves.
Finally, i created a simple snake controller that is steared by a very simple AI. It chases the player and acts like a giant wall that the player has to avoid at all costs.
Lessons Learned
While it was enjoyable developing the game, it was not as popular as the previous entries posted in these game jam series. A lesson learned here for me would be to better align the theme of the jam to the actual game idea, making it more marketable.