From Shadowbane to Wizard 101, Part Two
From Shadowbane to Wizard101 - the lessons I've learned developing two MMOs and spending nearly a decade in the online game space.
As the Senior Director of Software Engineering at KingsIsle Entertainment, the independent developer behind Wizard101, I have a lot to say about MMO technology (and game technology in general). Before I dive into those details, I wanted to focus on a few higher level lessons - the ones I consider most important to the success of a project. In this installment, I'll cover the lessons we learned the hard way and the scars to show for it. I've divided them into three major areas: Vision and Focus, Quality and Polish, and Pushing Beyond Expectations.
Vision and Focus
Every game starts with a Vision.
No, wait. Let's be more specific. Every successful game starts with a Vision. Having a strong Vision is not a guarantee of success - not by a long shot - but NOT having one is a pretty clear indicator that you're headed for disaster.
Case in point: Wizard101 and Shadowbane. Both had very clear, definable visions. Both games started with two things: an idea that could be easily explained, and a core team that was passionate about playing that Vision. Many times, on both projects but especially on Wizard, I heard people saying that the project "knows what it wants to be". This is beyond critical. Does that mean that every detail of the game is known before hand? Absolutely not. Does that mean you won't discover a more compelling emergent type of game play as you are working towards your goal? Again, no. But if you don't have a clear Vision to start with, then you can quickly find yourself wandering aimlessly and losing the next most important factor: Focus (aka Scope).
Let's take each game in turn.
Shadowbane. Vision? Check! Focus/Scope? Not so much. Honestly, we were all over the map. It's not that we didn't pick a few key areas in which to innovate, it's that we weren't willing to make the hard choices that followed. Here are a few of the areas that were innovative (or at least challenging):
- Dynamic World (build your own city, practically ANYWHERE in the 3D world. Pick a spot and flatten the terrain. Then layout your city walls, shops, houses, buildings, guard towers, patrol paths for your AI defenders, etc)
- Political map that updates in real time, as player cities are created and destroyed
- Flexible hierarchy system for guild management and oaths of fealty
- Non-humanoid player characters, flying characters
- Real-time multi-fractal terrain generation, so that an entire world could be generated with a few seed values. (UGH.)
- Massively, multi-threaded server architecture (ONE server for each realm)
- Seamless world, NO zoning, ever, etc.
In and of themselves, these ideas were innovative, compelling, interesting and... risky. Very, very risky. Because this is on top of the normal "heavy lifting" that is expected of an MMO: classes, races, leveling, inventory, spells, skills, attributes, death & respawning, trading, patching, etc., ad infinitum. Combine this with an inexperienced and underfunded team and you've got trouble brewing. Many experienced MMO teams aren't able to capture the magic even on their second try. First time out of the gate? Don't try and change the world (which, ironically, was Shadowbane's tagline).
Attempting to innovate in too many areas is probably more risky than not innovating at all. Wizard101 has its own share of innovation. In particular, the turn-based, collectible card, cinematic combat system (wow, that's a mouthful) worked out beautifully. Highly risky? Yes. But it paid off. How? By focusing our efforts on a controlled scope and polishing a smaller number of systems to perfection we were able to achieve a much higher level of quality in less time. Our game design team, lead by James Nance, deserves some major kudos here. As we brought on many experienced game developers, they were frequently stunned by the willingness of the design team to say simply say "No" to feature creep, or to make a small design compromise if it would greatly reduce code complexity. This is another critical point. Stay focused on what is fun to the end user, and don't get hung-up on details that in the end will have very little qualitative impact on the game experience. Risk where you have to. Don't go the Shadowbane route, decide that nothing is good enough and try to reinvent everything. You don't have time to redo everything... and if you try, you'll likely come up short in every area.