Thursday, January 16, 2014

Post-Mortem, or, Programming is Hard!

Well, finished my first game, and I only needed to go as far west as California! No Hawaii-time-zone deadlines for me!

What went well: mostly I was just pleased that I got into the swing of things, and by the end was programming and debugging on my own without asking for help every 10 minutes. I was really pleased about a handful of things that, tricky as they might have been to implemented, stayed implemented after I finally got them working--for example, movement, which I had assumed would be a perpetual pain in the ass but was actually fine once I got it working.

What went wrong: nothing went terribly wrong--mostly, I would have liked more time to make the interface cleaned, add some features that would make it actually useful (e.g. displaying the steps in the queue, adding up the counts to see if you have a full dance's worth of moves, recording a sequence of moves to repeat multiple times).

Biggest surprises: I definitely miss JButtons! Objects in Javascript don't work in a way that's necessarily intuitive to me. I was mostly surprised by how quickly I got the hang of a new language.

Development time breakdown:
days 1 & 2 - wrestling with Java
day 3 - playing with Javascript/codeheart.js; very basic GUI (dancers, buttons, band)
day 4 - straight line movement
day 5 - rotation
day 6 - working out the kinks in rotation, actionQueue, adding more moves
day 7 - finishing touches on the moves, multiple hands-4, hands-4 logic
day 8 - progression, making all the damn little buttons, fixing all the weird bugs that ended up in my code as a result of my new progression functions

What would I have done differently: given the time, I would put in some of the features mentioned above. Otherwise, it might have saved me a lot of heartache to deal with progression and multiple hands-4 first so I didn't have to pick through all of my code at the very end fixing the new discrepancies. Should have commented more thoroughly, and written my methods in some vaguely organized manner (though to be fair, I'm not sure I would have had enough of an idea of the ultimate categories of my functions to organize them the way I did in my final code).

Well, on to the next! Huzzah!

PLAN FOR THE NEXT GAME:

I'm imagining a dorky little tile-based platform game, with the twist that you can reverse gravity. The object of each level will be to get the sprite from the starting point to the goal, while navigating various obstacles. Levels will get increasingly complicated and require more lateral thinking.

In an pinch, the game can be simplified by removing the gravity-reversal element, making fewer levels, and not putting in additional obstacles (spikes, lasers, buttons, etc.).

Preliminary game development plan:

  • make a grid that's accessible via array
  • put stuff on the screen--walls and space
  • sprite motion - L/R
  • gravity & jumping
  • reversing gravity
  • goal point
  • level loader (populates board array from text file)
  • next level
  • obstacles: spikes (cause death), buttons (open locks)
  • bells and whistles like a start screen, timer, help text, etc.



No comments:

Post a Comment