If you've read my short bio on this site, you'll know that I come to the indie game industry from a global business background. At each of the last three tech companies I worked for, I was involved in a transition from a waterfall software development methodology to an incremental approach. If you've been involved in one of these projects, you know how "fun" they can be. There's usually a few people with a specific pain pushing the transformation, while everyone else involved has two goals:
- Pad their resume with a new certification.
- Ensure as little actual change as possible.
One thing I never got to really adopt, due to #2 above, was the concept of potentially-shippable increments. This means that every time you finish a development cycle, you should be checking in working code that does something meaningful/useful. This does not mean the roadmap is empty. It just means checking in something operational and valuable, however small. In my first game project with Crane Mountain Gaming, I really wanted to apply this discipline.
Now, I clearly don't produce a sellable game on a weekly basis right now or I would be selling it already and switch to blogging navel-gazing criticism about Silicon Valley or something. What I am trying to do instead is to add complete, working features each week which expand the amount of things you can do in the game and make it richer and more fun.
As an example, this week I'm working primarily on the quest module. The latest iteration of the game is fully playable. You can hire explorers, outfit them, send them on missions, buy and sell gear, level up, get stronger, etc. etc. However, there's no guidance as to what to do next coming from the game itself. There's no story progression, even if you can grind your way to epic gear and slay asteroid-sized tardigrades. Would you want to play this game? Maybe. Maybe not. But it's a playable game. With the quests module added, it should become somewhat more accessible and enjoyable.
What does this approach give me? Is it worth the effort? Consider this scenario: I get pancreatic cancer next week (please don't consider it too hard, just in case). I dissolve the business and spend the rest of my money backpacking around Europe and Southeast Asia. What do I have to show for my effort? I make the source code repository public and you can immediately download it and begin hacking your own game from a feature-complete, if not overly rich, baseline. Or, I spend a few weeks layering on the account management bits* and launch it as a free going away present.
Let's consider a scenario where I don't die shortly after doing this (you can consider this one slightly harder, if you must). Let's say I just run out of money due to incurring large but non-lethal medical bills and have to take up a salary again. In that case, I have a shiny resume in the form of a playable online game server and client that might land me a gig at a "real" game programming company. In fact, that has always been plan B anyway.
Thinking about a game you're familiar with in reverse is a good way to approach constructing a game out of potentially shippable increments. Pick a game you like, start removing features and ask yourself if you'd still like to play that game. Here are a few examples:
- Super Mario Brothers 3 without Toad's card-alignment mini-game. Without Warp Whistles? What about without the Tanouki Suit and the zones designed for it? Would it still be fun without any water zones and the swimming mechanic?
- Final Fantasy VII without the Golden Saucer, the Weapons (bosses, not swords, etc.). Would you still play it without summoning Materia? How many characters and their sub-plots could you remove before you wouldn't enjoy it at all?
- League of Legends without pre-teens poorly typing ethnic slurs at you while they feed their... sorry. That's not really a feature.
the main whole in my premise has to do with account management--signing up users, creating and managing player accounts. This and a few other minor features are critical to a broadly playable game, versus a multiplayer game that only one person can play at a time. However, implementing them too early is a waste because they have zero value until commercial launch and would never be the features that made the game succeed or fail, in any case. As with all philosophies, if the high priced consultant tells you there are no exceptions to the rules, fire him/her/it.