I participated in Ludum Dare last weekend. Although it was far from my most successful LD in terms of getting a good game done, since I used the Godot Engine to make it I learned a lot. This is particularly true in the area of dealing with collisions. So it was that when I came back to my phonics shmup yesterday, I got a lot done in a small amount of time.
Collision is Good
It took me less than five minutes to get player bullets fizzling ineffectively against the enemy shields I’d erected previously. After that, everything related to basic damage quickly fell into place. Enemy ships (not just the shields) and bullets now damage the player’s avatar. The ship respawns (if ungracefully) on death. Temporary invincibility occurs upon taking damage and upon respawning.
I also got the shield disruptor working in fairly short order. Enemies now have letter types and their shields raise and lower in accordance with the disruptor’s currently active phoneme. Player bullets can destroy those ships.
As a result, it actually feels like a game now. Not a good game, certainly. It’s early yet. The graphics are all placeholders and, more importantly, the game doesn’t have enough content in the form of interesting enemies, anything near good balance, or an end to levels.
I still have a lot to do under the hood before the game will get close to being fun. These are the things highest on my priority list right now, in roughly the order I think I’ll need to tackle them:
- Modified disruptor animation including IPA symbols for the sounds being broadcast.*
- Building a system that will allow me to load different levels.**
- Record all of the sounds I’ll need.
- Create more enemy types with different movement and bullet patterns.
- Create bosses (and implement level win condition by beating them.)
I’m sure I’ll come up with more as I go along, but that’s enough to be thinking about right now. There’s plenty more I could do, but these things are absolutely necessary before I am willing to even consider having the students play. Some of them have now seen me working on it, though.
A couple of them even got to see this glorious bug that occurred when I was implementing ship respawns.
*This is important visual feedback to go with the sound change. Right now I have a crummy (awful, really) animation to represent the disruptor broadcasting, but there’s no change depending on what it is broadcasting.
**Right now, the only phonemes in use are S and K sounds, and the ships all spawn with letters C, K, or S on them. These are hard-coded into the ships and the game loop and need to be abstracted out. Ultimately, I want to procedurally generate levels of certain difficulty using phonemes/letters fed into the game loop when the level is loaded. I intend to to have a bunch of presets (and perhaps a campaign) that address basic phonics learning steps as well as ones focusing on sound distinctions that my students typically have trouble with. I also want to allow players to generate custom levels.