Thursday, January 30, 2014

Jam 2 Post Mortem - A (mostly) complete ARPG

This second game jam was a blast! I believe I accomplished most of what I set out to do this game jam, other than creating additional levels.

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!

Wednesday, January 29, 2014

Last Day - The Game is Up and Running!

I accomplished all the goals I had for today, implementing both a game over and a win condition. I added some more enemies to the world, and gave some enemies the ability to shoot projectiles. I'm planning on doing some work tonight refining the enemies and adding a couple spells, but all the essentials are done!

Last Day: Shoot the Target.....circles.......dots...

Well here is that screen shot I promised everyone. Essentially all I have left to do on this level is make little red dots appear for an extended period of time so that the user can click them and pretend like they are shooting or something of that nature. Tonight...at like 5am tomorrow...my entire game will be done. It'll be great and I'll be tired, but I'll be successful. :P 

See you tomorrow. 

End of in-class last day - It's a game!

So, I added a win condition, I added a lose condition, I added selection among multiple items for attacks, including only allowing attacking with weapons whose level is less than your weapon level, and I even wrote a poor excuse for a story. So, other than the fact that there is hardly any content, it is a fully working game, though it is little more than an engine. Will I work on it more tonight? maybe, maybe not. But it's a thing. That is mostly done.

Final Day End: My girls are interactable

My game sort of works. It's not perfect, but it is playable. Somewhat. You can reach the end. And die. I just need to figure out why one of two identical functions aren't working.

Day recap ( pre post-mortem )

Revived the code I deleted
Now going to add sounds and tweak traits until the game feels more playable

Final Day - Make the game a game

So, my game is still very devoid of content: no story, 1 class, 1 weapon, all characters have identical stats, 1 map, yada, yada  - but all that stuff can come after the game jam, first, I need to make this game into a game. In order to do that, the following things are necessary:

1 - Make the game winnable
2 - Make the game losable

Neither should be terribly hard, but need to be done.

The only other really necessary feature to add would be stuff with item management, including:

- Item turn menu (for use / equip)
- Trading
- Attacking with different items

So, I think my goal for today is to just add these things, maybe tonight if I think to I will add some actual content, but if I get the above things done, I will be pretty happy with what is more of a FE game engine than an actual game [which, on that note, all other features that would need to be added would be things that deal with inter-chapter play]

Also, possible extra goal:
Make units do a thing when they attack like move over a bit or something.