Writing the AI for single-player Faerie Cloud Racers was a lot more fraught than I thought it would be. I've "finished" the single-player version of the game for right now but I suspect I'll be coming back to it.

I keep revisiting this blog post, being tempted to spend a lot of time making a strong AI. Right now, my opponent AI will essentially make random turns. It will try to snake around (go for a long distance, make a turn, go for a short distance, make a turn, go for a long distance in the opposite direction). It will also always avoid obstacles, but it will often get confused and box itself in, allowing the human player to just survive by doing itself own thing rather than using any kind of aggressive maneuvering.

This especially makes the early levels trivially easy. The difficulty comes in the later levels when the speed bumps up and obstacles are more frequent.

I could probably finish another game in the time it would take me to implement a more sophisticated game AI so I think I'll just accept the current state of the game until some later date. Making a heuristic-based AI agent would be a sick project but I've got to remind myself that the AI in the original wasn't so smart, anyways.

I'm also putting a pin in online play. While I'm set up to develop it, I don't want to get entirely burnt out on Faerie Cloud Racers. Something about the droning sameness of its soundtrack....

That raises the question of what I'm moving on to. I'm thinking Destruct-O-Match II?

Oh, I also made a Jira scrum board for this project. It's a step up from a text file containing a list of todo items. Here's my progress:

Recent work:

  • Meepit Juice Break

    • Identified a race condition causing the game to freeze on level change

  • Faerie Cloud Racers

    • Finished single player mode

    • Address early bugs

Current to-do list:

  • Faerie Cloud Racers

    • Address feedback and bugs

    • Tune game parameters

    • Clean game sprites (many are fuzzy / crunchy)

    • Improve AI

  • Destruct-O-Match II

    • Get started!