This is the first in a series of posts that document the process of building a prototype game in about 7 days. Because I am writing it, it places special emphasis on the particulars of how the art and animation got made. Hopefully someone out there in the nettertubes will find it useful/interesting/boredom-slaying.
So there we were. PAX was 7 days away, and we wanted to show some sort of playable prototype product to the beautiful people there. Tim was busy in the Code Mines, slaying dragons with fell monikers like “Reflection,” “Serialization,” and “Lua Integration.” He could not come to our aid. That left Hal and I with just a stick, a ball, and the elaborate game-prototyping framework that Hal’s been chipping away at in Flash for the past year.
Undaunted, we made the following plan: Hal and I would prototype a playable somethin-somethin in a 7-day sprint. Tim would be present for brainstorming/playing stuff/giving feedback, but otherwise uninvolved. Scary as that was, we sallied forth bravely into the dark woods of prototyping adventure.
Days 1 and 2:
Getting our version control pipeline going took up the first 1.5-2 days of the sprint. This involved setting up the new .svn and .hg repositories, linking them together in a delicate lattice that allows me to check in art that is sym-linked into hal’s flash code directory, testing that setup, fixing what didn’t work, and then writing a script that sets all that up with the push of a button. Having gone through this process already with the website and a small Python game really smoothed these preparations out considerably. However, a website is not a flash game is not a regular game, and in each case we have needed to iterate and explore a bit before finding the optimal setup.
Anyway. Found it. Took about 2 dev-days when you count lunches and lengthy discussions about that most elusive of prey, the “best” solution. While prototyping is typically oriented around “good enough” solutions, we felt a carefully-considered repository structure was worth the investment because it would make all subsequent Flash prototypes (such as the one we’re doing this very week) much much easier. So you can call this a 5-day sprint with a 2-day speed-bump, if you like.
Day 3, part 1:
And they’re off! First, all three of us brainstormed in the manner described a few posts down. Then we culled and refined in a manner to be discussed in some subsequent brainstorming post. By the end of the session, we had a pretty clear idea of what our goals were for the project:
- Get a generic shmup working. In this case, “generic” means a 2d game with a scrolling background, a ship or other craft that can be moved around the screen, the ability to shoot, and enemies to shoot and be shot at by. We didn’t brainstorm with this genre restriction locked in, but it certainly had a leg up on most other options. This was because A) shmups have been the main genre we’ve planned to explore since before starting the company, B) we’d already used Hal’s tools to lay a lot of the groundwork for a game in that style, and C) it’s frankly one of the easiest genres of videogame to implement. However, we still kept the door open to other styles of game during brainstorming, just in case something unexpectedly awesome and practical snuck in during the conversation.
- Add a sweet feature or two. This is what makes the prototype interesting! Even Space Invaders, which is among the oldest and most powerful of the Elder Shmups, had more going on than the baseline features I described above (including destructible environments ZOMG). Given how tight the project schedule was, we weren’t sure we’d even get the basics working, so this goal was mainly included in the plan just in case we found the time for it. The sweet features we were most excited about trying out were a melee attack (most likely involving a sword), and a fighting-game-esque special attack mechanic. Think Ryu’s fireball from Street Fighter, and you’ll get the basic gist. In fact, think Megaman learning Ryu’s fireball in Megaman X and you’ll get even more of the gist, as that was another game that cross-bred core fighting game features with a different genre (in that case, a platformer).
- Make it look neato. This meant coming up with a coherent look for the thing, and then producing a lot of art in that style very quickly so that nothing utterly temporary (i.e. flat-colored boxes and circles) remained by the time we were done. This actually isn’t the way we’d approach the art side of prototyping normally, as prototyping is ideally as fast and nimble and prone-to-throwing-things-away-when-they-don’t-work as possible. Ordinarily, that would mean simple flat-colored boxes and circles were perfectly acceptable art elements until quite a few gameplay concepts had been tried. However, this project was meant to see the light of day (unusual for a prototype) at PAX, which basically meant it would be doing double-duty as a gameplay experiment AND a piece of marketing material for our company. As such, we decided to try and eliminate all blatant placeholder art from the final product. Additionally, I still need all the practice I can get producing pixel art quickly (more on that later), particularly animation, and this project was a chance to do that on the clock in an actual production environment. The process of trying new techniques and comparing various style treatments is itself a form of prototyping, so that was a part of this goal as well.
The broad strokes of the art direction fell pretty naturally out of the high concept Hal pitched to us during the meeting. His idea was to make a vertical shmup where the player “ship” looked like a Brock-Sampson-esqe action hero in a business suit, flying through the air with a pistol in one hand and a samurai sword in the other.
It was pretty clear from the reaction in the room that we could all get down with that, and so I started on the first step of the art process: working up a screenshot mockup for the game we would eventually start referring to as “FallGuy.”
Next post: the rest of Day 3! There will be animated pixels and swordplay. See you there.