SNAKELOOP

Note: This is currently empty. Please wait for the website to be completed.
SNAKELOOP is a game I built in 96 hours for the GMTK Game Jam 2025 using the Godot game engine.
The theme of ‘loop’ was much easier than previous years, but that also meant I had to be clever about the mechanic I would be going forward with. I had already planned to work on an arcade-styled game for this jam, so the idea of implementing Snake (from the Nokia brick phones) had been stuck in my head for a while. The game slither.io was also a huge inspiration for the looping mechanism, where you would usually need to circle around enemy players to trap them and eat them.
So I planned on SNAKELOOP: where you play as a snake that needs to circle enemies and form loops to kill them. According to the arcade-theme I had already planned previously, I created a score system, keeping it similar to Balatro. Each enemy provided their own Base score, while the number of enemies you looped at a time defined your Mult.
The snake would be made up of multiple dots that would update every frame, and the ‘head’ of the snake (the newest dot) would move towards the mouse. Now that I had the movement system, I would have to build the loop detection system.
Making the loop detection system was definitely the hardest part of the game. I would usually look at tutorials for specific mechanisms and then modify them to fit my needs, but I was unable to find a system similar to this that would actually help. So I decided to take a break and pull out a pen & paper and think about how I was going to approach this. The method I came up with was this:
First, we make every dot try to form a polygonal collider. When I loop, this functions correctly since dots are overlapping, creating an invisible circle inside the loop. This collider then searches for any possible enemies present within the loop of the snake. If it finds an enemy, it triggers the enemy_destroy() function.
I think the best aspect of this game was the thrill that many players got from playing this game, saying they kept trying to destroy the enemies since it was super satisfying to do so. I was glad that I figured out the perfect game juice for this effect: camera shakes, crushing explosion sfx, and a flowing animated text that gave different dialogues depending on your combo.
The only glaring issue with the game was the lack of enemy variety and the exponential difficulty. Only a couple people were actually able to reach the ending of the game, and I myself had never been able to reach the end! The enemies spawned too fast, which didn’t give players enough time to escape them, leading to spawn killing, which was the worst part of the game.
The enemies themselves were pretty basic. Every few seconds they would move a short distance to a random position, then pause. I had originally planned on a second type of enemy that would explode if you looped it accidentally, but this kept leading to errors and game crashes. Since time was ticking for the Jam deadline, I decided to remove the explosion and make it an instant loss, instead keeping it as the final boss where you were forced to lose to reach the ending. The few people who reached the end loved this ending, especially since it followed the whole theme of the game being about a rogue snake antivirus.
For the thumbnail art, I stuck to flat 2D shapes, similar to the style I use in my graphic designs. I made these in Canva.
Results
When the final results came out, I was very shocked and happy to see how well I’d done, especially in the audio category. I think the high rating was a mix of the game juice’s sfx and the music track I had made using the trial mode of FL Studio. You can listen to the soundtrack here.
| Criteria | Rank | Score |
|---|---|---|
| Audio | #162 | 4.074 |
| Narrative | #511 | 3.630 |
| Enjoyment | #584 | 3.889 |
| Artwork | #1014 | 3.963 |
| Creativity | #1663 | 3.815 |
After the Jam, I had begun work on the post-jam version of the game, with more enemy variations, improved controls and mechanics, better graphics, and most importantly fairer gameplay and difficulty. I am still working on this.
SNAKELOOP Update Roadmap
I have designed over 5 new enemy types, 4 new environmental mechanics, removed the score system completely, instead opting for a survival-based enemy wave system, and a new gameplay system which I have yet to playtest.
This game will include a gameplay system similar to roguelites, but with a twist: Every collected upgrade isn’t used in the current run, instead it is sent forward to a future run.
In this way, doing well and unlocking upgrades on one run will actually activate five runs later. Since each run is super short and quick, I think this could work super well if implemented correctly. I am thinking of calling this rogueloop, since there is the element of time loop between runs and the constant throwing of upgrades into the future. If possible I would also like to implement time travel in its entirety, so that players can send upgrades to previous runs, and skip runs entirely. Maybe this could be its own separate game-mode?
On the topic of game modes, I currently have four game modes planned:
- normal — The basic gameplay of enemy spawning and survival
- abnormal — The time travel runs mechanic
- currents — The environment has treadmills that change direction every few seconds. There are also enemies and even entire layouts that change polarities/directions similar to the treadmills.
- labyrinth — This level is a miniature explorable open world, with tracks, puzzles and other obstacles. This would be hard to implement, but I think it would be fun to try out and play.