Friday, March 25, 2011

Horizontal vs Vertical Game Development Phases

This is going to be a three-post day, to hopefully. make up for having neglected the blog for three weeks.  In the last post, I talked about the design process for A Valley Without Wind, at least at a high level -- that's a complex topic, so I might write more on that in the future.

One particularly interesting concept that Keith and I have adopted in our design lingo is a delineation between "horizontal" and "vertical" types of game development.

Horizontal Game Development
When you're developing horizontally, you're adding new classes of features.  In Tidalis, a new horizontal feature was when we added the ability to have items, or to have an adventure map.  With AI War, a new horizontal feature was when we added the ability to have minor factions, or "event attacks," or campaign types.

In AVWW, examples of horizontal features we've done so far are having multiplayer, having enemies, having the world map, having building interiors, having regions and all the effects those on the character, having crafting at all, and so on.

Horizontal features are major game-changers, as they add whole groups of new functionality to the game that were not there before.  Another way to describe them is that they are scaffolding: in AVWW, we added "the ability to have enemies" weeks ago, but we only added a single enemy, the Skelebot.

Vertical Game Development
When you're developing vertically, you're still probably adding little bits of scaffolding here and there, but that's not the core focus.  To use AVWW as an example again, when we finally get to adding more than a single enemy, that will largely be vertical game development.

Horizontal game development can be the most exciting thing for some designers, and from looking at some indie games it always makes me wonder why there wasn't more vertical development (awesome ideas packaged in a really short game without a replay value is a bugbear of mine).  But vertical game development is just as critical to the game, overall -- AI War is fun and varied because there is so much to explore and to discover in the galaxy.

As an example of just how important vertical game development can feel to players: The Zenith Remnant is our best-selling expansion for AI War, and it's pretty much 80% vertically-developed.  It added a few horizontal things -- golems and minor factions, most notably -- but the bulk of that expansion is more content, more to explore, more to make each galaxy feel like a living and unique place.

Side Note: Indies Vs. The Big Boys
I don't want to name any names, but I think that if more indie developers focused on a vertical development phase after their excellent horizontal work, that they'd really be even more competitive.  There's something to be said for a highly polished, focused, finite experience, of course -- and I'm in no way advocating simply "padding out a game" with repetitive stuff.  But when you have an awesome new concept, it just seems to me like a waste not to explore it fully, in all its permutations and variations.

Truthfully, we never would have been able to make three expansions for AI War had we just been running on the strength of the ideas that I had, though.  I had enough ideas for part of one expansion, but not even for that full thing.  Players, though -- man are they a font of ideas, and that's what made the expansions to AI War possible.  It's something I'd be delighted to see more indie developers doing in general.

A Valley Without Wind's Pre-Alpha Horizontal Development
With AVWW, we've been doing a ton of horizontal development to get all the various subsystems in the game working and proven out in a broad sense.  That's why you see one enemy, and why we have multiplayer but not yet any prediction or smoothing, and why I had planned not to include shadows for a while (until I was overruled by players).

This mostly-horizontal period of development has taken up most of our time on the game so far, but thankfully we are nearing the end of that process -- my favorite part of game development is, as you might guess, actually the vertical.  We still have more to do with the general mechanics of crafting, NPCs, and the like, but in terms of what we're doing before alpha, the list is actually pretty short. 

Things like Settlements, "Hopes" (our version of "Quests"), and Deeds (the game remembering your past victories and losses in a meaningful way) are going to be our primary areas of horizontal expansion during the alpha phase, and having all three of those in place and fully the way we want will likely mark our transition to beta.

In the meantime, once we get our last push of horizontal development done here, we're going to really be pushing into the vertical, trying to get as many enemies, traps, spells, craftables, general objects, characters, weapons, consumables, buildings, floorplans, dialogues, and so forth into the game before we hit alpha in another 3-4 weeks.

By now we have this amazing skeleton, but we need to start focusing on getting some meat on them bones.  For those that have worried that the game is going to be about "kiting" enemies, for example, that's a fear based out of our simply having implemented one prototype entity, but the reality is even that one enemy won't continue functioning in that simple manner by the time we hit even alpha.  Lots to do, and for me this is the fun part -- we've built most of our toolkit, and part of a world, and now it's time to start really building a world using that toolkit.


Shaun said...

Chris, thanks a lot for doing all of these! I love reading this kind of thing in detail, and have enjoyed pretty much all of it (including checking every day for AI War updates just to read the patch notes on the lead up to the Light of the Spire coming out of beta).

I love reading things here and on the forum where you (or Keith) going into detail about design, programming, or general game development things. There's not many places around where people are putting this much information out, especially when it comes to some of the more technical challenges you run into.

Christopher M. Park said...

My pleasure, and glad you're finding it useful and interesting!

RogueDeus said...

I agree 100%. Being one of the early buyers of AI Wars, you inspired me to give it a go for myself. I am still neck deep in learning Java, but still determined. And I am pretty sure you will appreciate my take on vertical/horizontal development, once I start making games. Good ideas are infectious that way.