One of the very first chapters in Code Complete is about metaphors and how they can help us to understand a problem by relating to something else we already understand. The book suggest that the current best metaphor that we have is construction work. I tend to agree as I’ve often compared the work I’ve done in software to my high-school days when I used to work construction for the summers. To be more specific, I’ve always thought game development was like building houses. They both have a general structure that we expect. With a house you expect a roof, a kitchen, bathrooms, bedrooms and general protection from the elements. With games you expect menus, a heads-up display, gameplay mechanics, and goals that you need to achieve to be successful. Both have a solid structural concept that we’ve come to expect and feel comfortable with.
But what really makes this metaphor work is how in both cases the final result is unique. Don’t get me wrong, the amount of customization level may differ from project to project. Some times there are lower cost specs houses, cookie cutter buildings, in which houses are mass produced and may just differ in color or the position of a wall or two. You often see neighborhoods like this in which everything looks similar, but slightly different. We see this in gaming as well. Take an established genre, an established gameplay mechanic and reskin the models and the environments to make a different enough experience that you will be able to make some profit. For instance, how many first person shooters in which you are a marine fighting a crap load of vicious alien monsters exist?
Then there are the high-end, highly customized houses in which sick amounts of money have been pumped into the construction. These houses still follow the basic model and understanding that I listed above, but the house will be uniquely designed by an architect to have its own look and feel. It will have custom moldings, custom appliances and cabinetry; every detail, small or large, will be carefully thought out and crafted. This level of game development exists too. We see new ground breaking genres and gameplay mechanics, high quality, thoroughly designed, epic games with tons of hours of gameplay and story. I think of Resident Evil 4. I see the problem of using an example where the name implies that there were 4 others before it, but RE4 reinvented itself and came up with a mechanic that has been adapted and reused by a ton of other titles since then.
I’m sure you can extend the metaphor further. However, there is a part of the metaphor that not everyone recognizes. The first time I ever thought of this metaphor it had more to do with dealing with the customer than the actual construction that took place. In both house building and game development, communicating the process can be difficult to the individuals involved that only have a high-level understanding of what is going on. With building, after getting the house framed, work can appear to come to a stand still for the next few weeks. Once you get the walls up you will need to start doing preparatory work for the utilities, the dry wall, the exterior finish work. From a home owner’s point of view it will appear that nothing is going on, the progress has ceased to move forward. They will not notice the Tyvek the house is wrapped in to keep it from leaking, or the runner pieces on the walls and ceiling that the drywall needs to be attached to. All this preparation takes a lot of time, more time than it will take to make it all look pretty. But, the guy paying the bill doesn’t understand this. Don’t worry though, once the outside has pretty siding, and all the ugly framing work is hidden away behind a superficial shell, the owner will be happy.
Same thing with games. When developing the mobile game based on Hip Hop Immortals, we had a game based on painting graffiti all around the map. Your guy would get chased by security guards and have cleaning crews come and destroy their work. It was your job to get the entire map tagged with your art. There were several mini-games in HHI, so there was a bunch of artwork needed and the other mini-games had priority on that front. I had the gameplay mechanic completely in place for the graffiti mini-game before I even received any artwork. We sent off an early proof of concept with long rounded rectangles holding the place of the artwork. To be honest, they kind of looked like giant turds walking around, it had some accidental comedic elements to it. When this was shown to the publisher the response was basically shock at how little we had done. The thing is, other than fixing a couple of bugs, the programming for graffiti was done. I just had to plug the artwork into place and the mini-game was done. Nevertheless, because of the lack of artwork, graffiti was perceived to be way behind schedule.
In the end, no matter how naive the customer, it’s still your fault if they don’t understand your vision. The world responds to visuals more than anything, especially with the higher level business type. So, even if it is inconvenient to your development, your construction process, taking time to make your product look pretty is a necessity. You will never sell Joe MBA on an algorithm alone. A pretty user interface, a coat of paint on the walls, some kind of art, even programmer art, can make all the difference when trying to sell the guys with the money. If your artists aren’t available, draw something yourself. Try Inkscape. Vector graphics can make even programmer art look passable enough for a proof of concept. Anything is better than a giant turd walking around.