Dodge The Spikes
- 6 Devlogs
- 22 Total hours
A game about dodging spikes (update this!)
A game about dodging spikes (update this!)
Hosting move and some small QoL.
So uhh… The old site is gone. I moved the game from Nest to Github Pages: New Link
(The old link shows a “we moved” pages that redirects you)
Nest was sending the 38MB engine file uncompressed and sometimes worked, sometimes took 40+ minutes to send. I tried gzip, i tried brotli, and the proxy just seemed to break it all. Github serves the same game so fast it loads before the splash is done. RIP serve.py.
Okay, onto QoL:
Space to play again. Hit space on the game over screen and you immediately respawn (no more reaching for your mouse every death).
README overhaul. I finally updated it! It has how to play, correct feature list, how it’s built, guidance on running it locally, and the live link. I also dropped the idea of Linux/Windows/Mac downloads, because it’s just easier in a browser.
Still to do: sfx, polish.
HUGE updates, the demo is actually out!
It’s live, and YOU can play the beta right now: Play!
(I will maintain it as the latest, stable build, please comment with any feedback 😊).
The Godot build is exported to WebGL and embedded in a landing page that I built around it.
I tried to keep it somewhat minimal, so it’s just a splash text that fades into a dark ‘cave’ with the same red spikes on the walls, and the game in the middle.
It’s hosted on Nest, being run by a tiny Python server I wrote that gzips everything. Compression might seem excessive, but it shrank the 38MB engine file to ~10MB, so it loads significantly faster. The leaderboard got cooked when publishing, so I had to rewrite some logic but I got it working eventually!
Difficulty used to increase with your score, now we have Levels. Every 10 spikes, the screen clears, a “Level ” banner shows, and the next level starts faster. Danger zones now start at certain levels too, completely ditching the old score driving approach.
I also created a real start screen (This was desperately needed). It has the same firefly background as the game, a little controls hint, and a little demo player hopping spikes :)
All that’s left is sfx, README and polish!
Holy moly I need to remember to devlog 😭
Gameplay has been locked in. Danger zones have been added: at score 10 red columns flash for 3s and insta-kill if you’re in them when time is up. At score 30, two zones spawn at once.
Screen shakes on landing and death. Spike cooldown now scales with score, so the difficulty actually increases. Player is now a squishy jelly ball that deforms on jump, stretches while airborne, and splats on landing with a nice tween animation.
The leaderboard is alive! Input name on first death (cached for the session), auto-submit to Supabase backend, leaderboard is now embedded in the game over screen. Your current run shows golden in the rankings.
Insane visual overhaul. I built a procedural shader for the background that renders 30 animated fireflies (on the GPU). Each one drifts with a unique sine-wave pattern, and pulses brightness. Death burst spawns 12 red sparks that fly outward, and fade out.
To-do: Start screen, audio (jump, death, score sfx), and WebGL export + GitHub Pages.
Big session today! (definitely didn’t forget to write a devlog) Here’s what got shipped:
The game is actually a game now! Spikes spawn from random sides, move across the screen, and despawn off the edge.
Score tracking is in. Each spike that passes the player increments the score, and speed scales with it. Each spike also has a ±50% random deviation in speed, so no two spikes feel the same.
Pixel art is fully gone. Both the player and spike are now drawn entirely in code using Godot’s _draw() API. No image assets, scales perfectly at any zoom (hypothetically).
Global leaderboard is live. Scores submit to a Supabase PostgreSQL backend. We even have a full leaderboard scene with a loading animation and ranked entries.
Game over screen shows your score and lets you play again (reloads the scene, resetting all state for free).
Next up: UI polish, danger zones, and a WebGL export!
I’ve been grinding!
I implemented the basic spike, replaced pixel art with code-drawn vector shapes for smooth edges, and added a very bare bones start screen.
Next up is UI cleanup, score counting, and a game over screen!
First devlog!
So far, I’ve been setting up the base architecture for the game.
Currently I just have a simple square that you can control with WASD, but there are big things ahead!