Thursday, January 30, 2014

Post-Mortem II: Shockingly, this is getting easier!

What went well: I really shouldn't be surprised when I do a lot of something and it gets easier, but that's exactly what happened. I had a much better idea of how game components fit together and how to implement the stuff I wanted to implement this time around, and I think generally better and more streamlined style. Also, once the mechanics were in place, I had a lot of fun coming up with quirky, interesting, non-trivial levels. Given more time, I bet I could come up with even more! Also, images and sounds!

What went wrong: well it turns out that there's a glitch somewhere in my game that makes you occasionally fall off the map. Huh. And it took a while to come up with a solution to collision that worked--tried a few different tacks before I found one that I was happy with, and even then it required slightly different solutions for horizontal and vertical collisions so that the character didn't get caught on the collision points on top of a tile while moving horizontally across the floor... But really, everything worked out in the end except for that damn misc. bug with the falling off the map. Oh, and I wish I had better sfx for the gravity shifting.

Biggest Surprises: how different this was from my last game. I know that sounds silly, but I'm getting the idea of just how much diversity of programming is possible and it's crazy awesome. Also, how handy the whole tile-based game turned out to be--once I got tiles working, I could pretty much not touch it again and work within that framework, and it was great.

Development time breakdown:
Day 1: grid, walls filled in from a string array, rudimentary horizontal motion (no acceleration), started collision detection (this method of collision detection later got scrapped)
Day 2: continued barking up the wrong tree with crappy collision detection; implemented crappy versions of gravity and jumping
Day 3: started working on a better method of collision detection (checking points on the tile-edge for intersection with the character)
Day 4: figured out collision for real, implemented goal, spikes, and character death
Day 5: made all existing elements readable from 'maps' (arrays of strings representing levels); made up-grav and down-grav tiles and started locks and keys
Day 6: finished locks and keys (corresponding locks & keys, locks fading, etc.), smoothed out switching between levels
Day 7: kill key, smoothed out the kinks in death, changed board size, implemented shift counter, started making levels
Day 8: added sfx, made more levels
Day 9: finished making levels, added victory screen, cleaned up my code

What I would have done differently: be better about planning each day of programming, and actually maintaing an up-to-date implementation plan so I could keep my eye on the bigger picture; not have tried all of those nonworking collision detection things; made more levels.

Had such a blast in this class, and learned a ton. Thanks for everything!!!

No comments:

Post a Comment