Another jam, another overambitious game I could have no hope of finishing. I tried to limit the scope of game to a very small game this time: collect resources, fight a handful of enemies.
That ballooned into having dynamic lights, a day/night cycle, purchasable upgrades for multiple entities, a helper turret, box-meuller distribution curves for resource rates, and more. Whoops.
Things that went well
Godot was a joy to use. There wasn't a whole lot of friction getting in my way as I was creating the game itself.
The content pipeline for Godot is also super simple. Just drop the images and sounds into the folder and they're good to go. Update and re-export the image and it was already updated in the engine before I tabbed back. No recompiling or reloading/refreshing the engine.
The game itself also came together super quickly once I got some of the boilerplate stuff out of the way.
As usual, Aseprite is a joy to use, and made the art creation process very fluid.
ChipTone (https://sfbgames.itch.io/chiptone) was also very nice for that crunch time burst of quick and dirty sound effects. All of the sound effects (a grand total of eight) we're hastily slapped together in the last 15 minutes of the compo timer and rammed into the engine as fast as I could possibly muster. I had no idea if they were balanced very well, or even audible when played together. I also had no time left to make the menus, or the music. Though your ears will probably thank you for the lack of music.
Things that didn't go as planned
Making UIs in something that isn't Flash is hard, man. I spent 3 hours just trying to cobble together the buy mode menu. And it took 2 or 3 hours to get the bitmap text to render at all.
This is my first entry since flash was killed off by Adobe. I haven't made any games since then. I also chose to use a new engine, so I was learning Godot at the same time. I really should have toyed with it in the weeks leading up to the jam, but I couldn't find the time. This meant that I spent a lot of time trying to figure out how to do things in the engine that I could have spent actually making more game. As a result, I ended up having to cut a lot of the content of the game.
I had to make the enemies scale up with the number of days survived, because I had to scrap all but one enemy type. Originally, scouts would have been weak all game, but more heavy enemies would spawn in to round out the enemy forces.
Cut content
- 5 of the 6 enemy types were cut
- Mining drones to assist with the mining in later waves, when the player is tied up fighting.
- Pilotable defense turret
- Grenades for the player
- Missiles for the turret
- Adrenaline to slow time for a short while. Would have given the player more time to mine during the day, or more time to fight at night.
- Menu screen
- Game over / Victory screens
- Music
- Animations for the player and the enemies
Unplanned stuff that made it in
- Dynamic lights and shadows.
- It turns out this was crazy easy in Godot, just add a light source and some light occluders. Though it did take about an hour to get the occluders to work right.
- Hand-made bitmap font.
- Godot made this very difficult. It really wants you to use TTF fonts. I almost scrapped it and used sprites instead of a custom font because it was taking too long.
- Footsteps in the sand that fade over time.
Time sinks
- Learning a whole engine from nothing while trying to jam. Womp womp.
- Bitmap fonts
- UI positioning
- Setting up the upgrade purchase prices and leveling ramps.
- A lot of time play testing
- In hindsight, I think this was a good sign that the game was at least fun to play.
- The footsteps took a lot longer than expected.
If you're interested in seeing how it turned out yourself, head over here and give it a quick play: https://ldjam.com/events/ludum-dare/51/crash-landed