Thursday, January 16, 2014

Post-Mortem: The beginnings of an RPG

For my first ever game jam, I felt that these past few weeks went fairly smoothly.  I accomplished most of what I wanted to accomplish, with some hiccups.

I think that the map editor and the management of items/stats/enemies (once they were finally implemented) will provide for a nice framework for this next upcoming game jam, and these implementations were aided a lot by JSON. The character movement, environment and menu system all pretty much turned out how I wanted them to be, albeit not without some significant debugging. As I look by at my goals and results day by day, for the most part I finished up what I set out to accomplish (besides a magic system, but that's for this next game jam).

The biggest obstacle I ran into when I was creating the game was my unfamiliarity with JavaScript, and consequently, the debugging.  Working with JavaScript has made me appreciate more structured languages such as Java. I had some of the strangest errors coming from things I usually take for granted in other languages (like rounding down integers, for example).  Because of how "flexible" JavaScript is (freely converting types, for example), a lot of the errors in my code were hidden and took a while to find and fix. These problems with debugging and utilizing JavaScript should be much better this upcoming game jam because I now have much more experience working in CodeHeart and JavaScript.

I was surprised at how easy some things were to implement, and conversely, how tricky some other things were to implement.  Movement and collision detection were straightforward tasks, as was managing items and enemies.  The map editor however ("It's just a 2D array of tiles, how hard can that be?") probably caused me the most trouble in terms of bugs, but in the end the system works pretty well and I can efficiently draw my environments now.  Also, JSON makes things so much easier. It's really, really great.

Development Time Breakdown (Roughly judged from old blog posts and memory)

  • Movement/Animation - 3 hours outside of class (used knight.js as a template)
  • Menu System - one class day
  • Map/Tile Editor - 1.5 class days, plus about 5 hours outside of class
  • Battle System - 1.5 class days, plus about 3 hours outside
  • Collision Detection/Actionable Environments/Moving Between Areas - With my map editor in place, ~1.5 hours total
  • Message Box - 2 hours outside
  • Items (Use/Management) - 1.5 class days plus some more hours outside of class
  • Random Encounters/Enemies - 1 class day
If I were to redo my plan for this game, I would've done the most fundamental things (Map editor/collision detection) first to lay down my groundwork for the RPG. I wasn't totally sure where I was going gameplay-wise, and I spent too much time thinking about the battle system instead of laying down the foundation of my game, so there was lost time there.

Regardless, I now have a nice basis for a 2D RPG, and I'm excited for the different possibilities for gameplay in this next game jam.



No comments:

Post a Comment