I had a marvelously fun time at my first Ludum Dare. To say I fell short of my goal is the kind of breathtaking understatement not seen since the Bush era. But I WILL BE DAMNED IF THAT WILL KEEP ME FROM SUBMITTING THIS AND CALLING MYSELF A WINNER!
Rather than a blow-by-blow recounting of the events of the past 48 hours (see the end for that), I’m just going to have some general thoughts.
TOP MISTAKES I DIDN’T INTEND TO MAKE (as there were many I intentionally made like learning my tools during the competition)
- Not coming up with an abstraction for game states early on. This basically prevented me from adding any kind of explanatory text / game over screen towards the end of the project.
- Waiting too long for fun. I often had the joy of “Oh, I made this happen!” during development, but I didn’t actually have fun playing the game until nearly the end.
- Using no one particular abstraction for time. Some portions of the game are tuned to the system clock, some to physics cycles, and a couple to FPS. As such, I basically can’t guarantee the game will play the same on any other computer or do things like slow the game down for testing (it plays pretty damn fast)
TOP SUCCESSES I DIDN’T INTEND TO HAVE
- Using minimalist abstract art for placeholders. Sure the game looks like an angry gun battle between Pez dispensers, but I find that rather charming and don’t regret it one bit.
- Incorporating a physics engine. At first I thought I could hack together the physics I needed and was just using Chipmunk for fun, but I discovered unexpected joys from this. (I LOVE the way enemies get toppled by bullets)
Other miscellaneous insights.
GAME DEVELOPMENT IN RUBY IS REALLY, REALLY FUN
Ruby allows me to go incredibly fast (by my standards anyway, shut up thanks) and change the hell out of my code with very few impediments. The fact that it is mostly geared to OO lends itself extremely well to the problem domain. Definitely far more pleasurable than my old games from 6-7 years ago written in Java and C++.
I WANT TO WRITE SOME DOCS FOR INTEGRATING GOSU AND CHIPMUNK
I really enjoyed working with Gosu and Chipmunk in Ruby and want to contribute back to both projects. I lost a ton of time to bugs in integrating the two and trying to understand the concepts behind them (lost a great deal of time stumbling towards CP::Shape#rehash_static_shapes alone). While there’s great reference documentation for both projects and incredibly responsive maintainers, there’s precious little in the way of quick-start / conceptual overview.
I’M MORE INTERESTED IN ALTERNATIVE FRAMEWORKS
While I really like Gosu and Chipmunk, it feels as if they’re a bit of a dead-end for the kinds of projects I’m interested in. Gosu in particular is an awkward fit for pixel-perfect drawing and the resulting blur in my project still bugs me. Not to mention that packaging my project would have been a pain. In particular, I want to give EaselJS and Play4N a look, as well as perhaps just using my own pixel drawing with something like LWJGL.
Thanks to the organizers for making this happen, and I look forward to the next time!