Here’s an interesting post courtesy of Moorgard’s blog: Scott Hartsman spent some time to respond to criticism about the relative quality and complexity of MMORPG’s with a blog post titled: MMOs are bigger than you think. Scott is a guy who has worked on Everquest and Everquest II, so he should know what he’s talking about.
The reason I got into software development was because of video games. My first real career goal as a software developer – the first “dream job” I ever really contemplated – was to work on a great video game. So it was with a certain amount of anger and frustration that I watched as games that I loved to play, and companies who made those games, suffered criticism at the hands of ignorant players.
I’ve long defended the developers of Everquest and Everquest II on various message boards, largely because I, being a software developer, understood the complexities and hurdles that those developers face to bring us these games that we enjoy so much. So it was with great interest that I read Scott’s post today.
While reading his post it struck me how similar his problems are to any other business application. Scott writes:
This is painful for MMOs in particular because of the unique (huge) number of critical, non-sexy things that you have to succeed at, where failing at any one of them can entirely sink your game:
- Pipelines
- Tools
- Infrastructure
- Stability (again, doubling the work – the client and all the servers)
- Scalability
- Stability
- Security (added this in for the blog post – Can’t trust that client)
- Performance (optimize both that client and all those server processes)
- Oh, and..Stability
Are these things really any different from an ERP system, for instance? Looking down the list, I see all the same issues that we (.NET business application developers) face in our domain as well.
Which makes me wonder if part of the problem isn’t the methodology. Scott brings up an interesting point:
MMOs are still really young. To a lot of the people working on them, it very much is creating something entirely new. Compare to movies or single player games, for instance. It’s less of a challenge to staff those types of projects up with people who’ve worked on them before, in all of the right positions. Doing the same on a high-budget MMO remains next to impossible.
I don’t mean “key management†or “leads†like you see in studio announcements and press releases all the time. I mean everyone other than a small number of entry-level folks. Until you’ve done it once, you have no idea what you’re getting yourself into.
But you know what? This is true for all software development, not just MMOG’s.
Just about every job I’ve had, I’ve been asked to develop software that I’ve never done before. Of course, that’s part of what makes this industry so damn cool – we’re always learning new stuff, and we’re always pushing our limits with new technologies, tools and ideas. But the core problem is the same: we work in an industry where we’re asked to do things that we have never done before.
I don’t think this is anything unique to MMOG’s. Sure, there are people in the business application world who have built business software a dozen times. But for every guy who finally achieves a level of expertise with that sort of domain, a dozen other guys graduate from college without any experience.
So I come back to the methodology. In the business software world, we’re learning that Waterfall is a recipe for failure, and Agile is a way to help us succeed. Methodologies like Scrum and Extreme Programming are giving software developers better techniques for minimizing risk and ensuring success. I’m starting to read more and more where game development houses are experimenting with or turning to Agile to help them succeed as well. I think these things add up…
Inexperienced developers is an issue that will never go away; it is going to remain very hard in the future to hire only the people with extensive knowledge in a particular domain. As more new blood enters the workforce, our discipline will continue to be refreshed with talented developers who lack in specific domain expertise. Mentors will always be key, and so will methodologies that help teams succeed.
The trick, as I see it, is to improve the process of software development. When you can accomplish that, even in small measures, then some of the issues Scott raises, like inexperienced developers and “wild miss-scoping” can be minimized.
