FallGuy Prototype – The First 2.5 Days

by Mike
Mon, September 14, 2009 -- 18:04 UTC

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.

Our muse.

Our muse.

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.

Brainstorming Part 1: The Basics

Mon, August 31, 2009 -- 17:33 UTC

This is the first post in a series on brainstorming — that is to say, meetings for idea generation. We use a lot of different techniques to generate ideas. Hopefully you’ll find some of them useful.

You need a lot of things to make a good game. You need decent art, sound, code, and levels. You need a comprehensible UI. More than any of these, however, you need a great central idea: a set of mechanics that’s fundamentally engaging and meshes well with its setting. Without that core, no amount of visual and interface polish can make your game fun.

A very pretty game with ultimately lackluster gameplay

A very pretty game with ultimately lackluster gameplay

Decent art, sound, code, and levels are pretty much a function of time as long as you’re working with good people. To get great UI you just have to put you game in front of as many potential users as you can, and be willing to take a hefty dose of criticism. Ideas take more than time and user testing. Inspiration is a strange and fickle thing. Great ideas often come from accidental realizations and chance perceptions, or misperceptions. Brainstorming is, at its heart, an attempt to harness this chaotic energy.

So, how do you brainstorm?

There are a lot of different things you can do to maximize the number and quality of ideas coming out of a brainstorm. By far the most important thing is to convince everyone in the meeting to turn off his or her critical mind. This sounds crazy, I know. After all, if no-one criticizes the ideas, then you just end up with a bunch of worthless ideas, right?

Yes, you will end up with a bunch of worthless ideas. The great majority of the ideas you come up with will be below your minimum quality threshold. The good ideas you have, however, will stand taller because they will be standing on top of a pile of the bad ones. Believe me, you will turn a critical eye to these ideas eventually, you will recognize them for the filth they are. Just not yet. I’ll talk about this more in a later article on the idea culling process.

More than anything else, brainstorming is a mindset. In order to get good ideas to come out, you have to get your brain into a place where it wants to generate as many ideas as possible. Good brainstorming practices are all about fostering this state of mind. The quickest way to stop a mind that is off in fairy land creating magical ideas is to bring it back to reality.

As an example,  let’s say that I suggest that we should make a game where a turd flies to the moon. This is, pretty much, a completely terrible idea. It is a product that will not sell and turds, on the whole, do not have a lot of exciting gameplay potential. Someone else in the meeting says as much to me and, for the next ten minutes, I’m sitting there thinking about how I came up with an idea that bad and what I can do to fix it. Everyone in the meeting is stuck sitting in silence, trying to come up with a decent idea and failing because there’s nothing to build off of.

Once we turn off criticism, however, the scenario plays out differently. I suggest the game with the flying turd and Mike, thinking of all the flies, thinks of a game where you’re a fly moving from rotting meat to rotting meat. Tim comes up with a game where you use honey and vinegar to attract fireflies into a lantern you use to light up a network of dark caves. Eventually, we have a game about riding to the moon on the back of a giant moth, who you control with a lantern full of fireflies. Which is crazy, but is also, let’s face it, kind of awesome.

Turd flying to the moon

This is not a good idea for a game

Crazy ideas, and bad ideas too, get you to places that you never would have gotten without them. Ideas are best grown from the seeds of other ideas; by not throwing anything away for the duration of the brainstorm, you’re pulling from a huge pool of ideas.

Turning off judgment also lets the idea generation gain its own kind of momentum. People love to have a challenge in front of them, especially one they think they can rise to. Once they get into that state, however, they hate to feel frustrated and too much of a sense of failure can pull them right out of it. By cutting the negative feedback out of your meeting you can foster this sense of flow.*

Bottom line: suspending judgment is the single most important part of the brainstorm. Invite people with good listening skills to your brainstorm. Before the meeting begins, talk about why it’s important to suspend judgment. During the meeting, designate someone to watch for judging behavior and call it out.  You’ll be generating awesome ideas in no time.

Next article in this series: The Warm Up!

*This principle, called flow theory, is also incredibly useful in game design. I’ll talk more about it in future posts. Meanwhile, check out Jenova Chen’s work on the subject.