1. Like PB&J That's Heaven-Sent, XNA & C# Taste Great Together.
I'm a gameplay programmer at heart. I'm most comfortable tweaking aiming algorithms, creating swarming behaviors, and calculating urine streams. Needing to know what port to read or when to flush memory is not my forte. Having XNA handle most of the low-level issues for Weapon of Choice was fantastic.
XNA handled most everything that's ever scared me about game development. With XACT, the suite's audio tool, I was able to incorporate initial sound effects and music within an afternoon and had minimal sound issues during development.
For weeks, I avoided creating a data file to save player progression. Accessing the 360's hard drive, displaying the Xbox Guide, knowing if the memory card is available -- this was pretty intimidating for a guy who specializes in how to best cleave an NPC's forearm.
Yet, I remember spending a morning reading XNA's help file and writing my save/load interface. I couldn't believe that within hours, those issues were resolved.
Figure 2. Zipper Lips in the Object Editor. Without the development speed of C# and XNA, I couldn't have written the editing software and game in a single year.
In addition to learning XNA, I was also using C# for the first time, which may seem like a recipe for confusion. C# was so streamlined and easy to use, I feel confident that using it with XNA made the length of the project significantly shorter than if I had used C/C++.
2. Barrel-aged Design and Gourmet Prototypes.
I designed and recorded ideas for Weapon of Choice for over a year before I started writing any code. Because of this early work, there was very little time wasted when I started programming gameplay. The key was to program each new element in a basic manner, try it out, and then continue forward if the gameplay looked promising.
Figure 3. Pitcher Mouth boss sketch with notes.
The early prototype of the game had nearly every important game element incorporated except in-game decision making and the "Conflict Zone" map. I felt that Death-Brushing (the Weapon of Choice player ability to dramatically escape death) was crucial to get working early; if that couldn't be made fun, then I would have to rethink the whole game.
Prioritizing gameplay prototypes ensured it was okay to proceed, rather than potentially wasting time down the road.
Figure 4. Prototype effect for Jet Engine gun in test level.
I like blocking in all animations and character rigging with placeholder art. Using placeholder animations in the prototype brings it closer to the real thing, and allows for final animations to be dropped into place with theoretically little fuss.
Although I think this prototyping method helps, fairly often, I had new ideas which required re-rigging and new animation work. Combating feature creep required constant discipline.
3. Measure twice, cut twice.
I slowly build up my game ideas as such that when it's time to make a game, I have an attractive list from which to cherry-pick designs. For Weapon of Choice, I had initially designed over 40 levels, 50 operatives and weapons, and probably a hundred enemies.
Honestly, I wish God would just make that game for me, right now. I want to play it! Unfortunately, I was the one making the game, and the original design would have taken years.
Figure 5. Early level layout before cuts were made.
Weapon of Choice's multiple story branches include unique levels, each concluding with a satisfying ending. The initial 40+ levels had 11 different endings. While not applicable to many games, the branching nature of Weapon of Choice's game design made it easier to cut back.
The game was reduced in size three different times, with entire branches and endings culled. Even then, I still honestly thought I would be able to finish the game with over 20 levels. (Cuckoo!)
Figure 6. Before the action, the Conflict Zone map shows vignettes of each level.
After even more trimming, the final version has seven levels, seven Operatives, and four unique endings. The upside is that I was simply able to remove entire story branches as a method of cutting content.
This worked much better than the typical scenario of tearing apart a monolithic story, dropping levels, and attempting to mend the story.