When I settled on this week’s concept, I envisioned a stealth game in the spirit of Commandos: Behind Enemy Lines and Metal Gear Solid. The mechanic that I wanted to design around was a “smart gun” with projectiles that could lock onto targets and curve to hit them… I was picturing firing around corners to take out guards and clear the path.
I’m starting with what went wrong because… there was kind of a lot. Not only did I fail to implement the learnings from last week (menus/win conditions/etc), I didn’t even come close to making something that could be called a game. All told, I probably only managed a couple hours of actual development on the project, which amounted to a moving player (circle) who fired bullets that curved toward whatever enemy (also circles) was last clicked. I actually debated giving this project another week, just to see it through to completion, but in the end, I decided to wrap it up, try to address the week’s shortcomings in this postmortem, and move on to another game.
First, while brainstorming, I actually started implementing a few different things before ultimately landing on the tactical stealth genre. I think lack of initial momentum was one of the big failings of the week. Something I want to try, in addition to the weekly postmortems, is a design doc/work breakdown for what I’m planning to do in the coming week. By writing out a rough plan, hopefully I can abort early from ideas that don’t fit well (either because they won’t be fun, or they’ll be too complicated to develop in a single week).
Second, real life caught up to me, and I repeatedly found myself wishing I had more time to sit down at my computer and hack on the game, but other things took priority. I’m not really classifying this as a “bad thing” overall, as it will probably happen again in the future (real life is like that), but it was a negative for progress on the project. I’m not really sure how to mitigate it, except to try and schedule time.
As I mentioned in the lede, I did manage to prototype the core mechanic, which I’ll count as a small victory. I think an explorable index of different mechanics (something like this, which is actually implemented in Phaser) would be an interesting future project.
After experimenting with a couple different ways of making the projectiles track toward their targets, I settled on a simple implementation of Craig Reynolds’ flocking algorithm, as discussed in this fantastic tutorial series. It’s straightforward and effective, and I think I can factor the code into a reusable component for future games.
I guess the biggest takeaway is that I want to start creating design documents for the upcoming weeks’ games. I’m not under the illusion that this will be foolproof, but hopefully it’ll provide enough early direction to get things moving. If not, at least I’ll have some documentation of my thought process for when I come back to the idea in the future.