The magic system turned out pretty much as well as I had hoped. Other than some slight inaccuracies when it comes to casting area effect spells, the symbol queueing and spell casting worked great. JSON enabled me to quickly add spells once I had the framework built, and I put in 3-4 more spells into the game last night with ease. Gameplay is decent enough for the scope of this game jam, and I'll be working on making it better down the road. Enemy AI worked decently enough, though there are some quirks I had to deal with because of the way I implemented the maps.
The biggest issue I ran into was collision detection and path finding for enemy AI. A* works like a charm in my game, but because the path finding was based on my tile system from the previous jam and because characters are not restricted to moving from tile to tile, the path finding isn't super precise. Currently, when path finding the start and goal tiles are determined by an estimation of the closest tile the enemy/character is standing on based on their xy position on the screen. It works for the most part, but enemies sometimes have issues locking on to exactly where the character is moving.
Level design was another issue; I realized that my tiles and sprites are a tad too big for an ARPG setting (they were fine for the previous jam when it was a traditional RPG), so many areas feel cramped when playing. Looking back at my design doc however, I feel like I met all of my goals (other than multiple levels).
Development Time Breakdown (Time estimation from original design doc in parentheses)
- Magic System/Spell Selection groundwork - 2 class days plus 3+ hours outside of class (1 class day)
- Spellcasting via mouse click - one class day (1 day plus outside work)
- Enemy movement/animation/AI - 3 class days plus a couple hours outside of class (2 class days)
- Enemy/character interaction with spells/collisions - about 3 hours outside of class (2 class days)
- Spell animation - maybe 1.5 hours (1 class day)
- Adding content/level design - half a class day plus a couple hours outside of class
- Other game features (damage animation, game over, sprite editing) - one class day ish
I spent the bulk of my time this jam in spell.js and enemy.js; this was expected because I was building the magic system from scratch and because I was drastically changing how enemies behaved in this game vs my previous game. Other than those two files, majority of my game is still built on the groundwork I laid out the previous game jam.
For enemies, I was worried at the beginning that designing AI and getting movements to work would be my biggest time sink; this proved to be true, especially with the tile issues I referred to earlier. A* itself was fine, thanks to the example code provided on codeheart, but enemy behavior was a hassle to get right (and is still a bit buggy).
If I were to redo this game jam, I would've taken a look at how my map system was implemented last game jam and tailor it to the needs for my new game. Map.js was largely unchanged from the previous game jam, and though the simple collision detection was adequate for my previous game, it was a bit lacking for this game. I would've also spent more time play testing, which would've made me realize that the tile/sprite sizes were too big for the purposes of an ARPG. Testing the game beyond whether the code works or not was something I neglected to do both game jams, and would be something I would definitely do if I was making another game.
Overall, the game jam experiences were a ton of fun, and I can't wait to participate in another game jam in the future!
No comments:
Post a Comment