- By Michael Desmond
Two years ago, Michael Zyda left his position as an instructor at the Naval
Postgraduate School in Monterey, Calif., to launch a new computer science degree
program at the University of Southern California. The twist? Zyda's proposed
curriculum would teach students how to build computer games.
This approach to teaching programming isn't just fun and games. Corporate development shops and computer science students alike are taking stock in the theory that they can learn a lot from the highly interactive process of crafting game software.
Zyda knows a thing or two about building software. As founding director of the Modeling, Virtual Environments and Simulation (MOVES) Institute at NPS, Zyda led development of the popular game America's Army, which the U.S. Army produces as a recruitment tool. Based on his experience working with graduate students at MOVES, Zyda felt a games curriculum could push the envelope of computer science education. That enticed him to give up his two-decade tenure at NPS.
The students seemed very demotivated, Zyda says. So on my fiftieth birthday, I quit my job and came to USC and said, 'Put me on a temp program, and I'll build this degree program and see what we can do.'
At USC he founded the GamePipe Laboratory, an undergraduate and graduate degree program in which students work across disciplines to conceptualize, design, develop and deploy game software. After just one year, Zyda says GamePipe has attracted 174 students, effectively doubling the enrollment of the computer science program at USC.
When I first built the program I felt that parents of undergrads weren't going to want to pay for this very expensive degree program, he says. But they wanted them in there.
School of Rock
One of the appeals of the game development program is its multi-disciplinary approach. Zyda says the program cross-trains students in areas ranging from computer programming and systems development to art, design and animation.
Zyda's experience raises the question: can corporate developers and managers learn something from people who spend their days building software like World of Warcraft, EVE Online and America's Army?
|You can actually get a degree in computer science without taking a user interface course or a graphics course, and I think that's a mistake.
Michael Zyda, Director, USC GamePipe Laboratory
Alex St. John thinks so. The president and CEO of software company WildTangent Inc. and founder of the Microsoft DirectX set of APIs, St. John says games require developers to go beyond delivering tangible functionality and metrics.
A game is a piece of user interface so hypnotic and compelling that people spend hours banging on buttons for no productive purpose -- they're getting nothing done, St. John says. You can't say, 'When we build this customer support database and reduce customer support calls ten percent, we've done our job.'
For this reason, many games are crafted with only a loose understanding of what the end product will look like. St. John describes an iterative, trial and discard process where ideas are proposed, and then retained, refined or retired on their merits. It's a far cry from the traditional waterfall method of development, where a central planning document defines the scope and targets of a project.
The waterfall model works very well when you have a known quantity for what you're developing, says Halldor Fannar, chief technology officer for Iceland-based CCP Games. That doesn't work at all for games. Games are trying to capture the fun factor. And I would say in corporate development that's something you want to aim at. In business development you're trying to satisfy the consumer.
St. John warns that this flexible approach can run badly amok. Case in point: the long-awaited sequel to the game Duke Nukem 3D, called Duke Nukem Forever, which has been in the works for over a decade.
I had one of my top 3-D engineers, a brilliant guy, move back to Texas to work on that game and he's still working on it, St. John laughs. It could be argued that the Duke Nukem story could be the ultimate extreme of taking my advice, which is they iterate forever and never ship anything. I'd argue that shows lack of focus and vision of where you intend to land.
A common lament with business software is that it often fails to meet the real-life needs of operating units. The breakdown often occurs as developers and business stakeholders struggle to collaborate. So imagine the challenge Zyda faced in launching America's Army at the Naval Postgraduate School
You could think of me as the clutch between the U.S. military and the game development community, says Zyda. So I had an assistant secretary of the Army and his program manager colonel, who I had to do an impedance match with the game developer at the studio. [I] had someone coming in with a uniform and the other guy coming in with a T-shirt and shorts.
Zyda says he managed the challenge by staying on schedule and addressing issues with totally open dialog. He also credits his executive producers, Michael Capp (now president at Epic Games Inc.) and Alex Mayberry (now senior producer for World of Warcraft), for keeping their developer teams on target and helping him act as a buffer between those teams and the military.
But the collaboration challenge also cuts horizontally, since game development involves a host of creative professionals, including writers, artists, animators and audio technicians.
You've got engineers who meet artists and artists who meet engineers halfway, says St. John. So it's really interesting in the game industry how game developers settle that sort of natural conflict.
Complicating matters is the expanding scope of many game projects. At CCP Games, Fannar heads up development of EVE Online, a massively multiplayer online game (MMOG) that boasts nearly a quarter-million paid subscribers and models more than 5,000 individual solar systems. By the beginning of 2008, CCP Games expects its Windows Server-based cluster to grow large enough to crack the list of the world's 500 fastest supercomputers, as tracked by the Top500.Org.
To deal with the challenge, game developers face many of the same choices corporate development managers must make. Do you buy or build tools and components for your solution, and do you consider outsourcing some of the work?
Fannar says his team is careful to outsource only well-defined and repetitive tasks, such as when his team moved to upgrade the fidelity of thousands of 3-D ship models. The only way we could do that is to outsource it. In China they have a lot of hands, which is a good thing, because there aren't a lot of hands in Iceland, Fannar says.
A similar effort is underway in the area of tooling and functional components, which in the past were often written from scratch. Fannar says CCP Games is working to replace proprietary components and modules with off-the-shelf solutions. Not only is the proprietary software hard to maintain, Fannar says it creates real concerns around code documentation and developer retention.
I did work at EA [Electronic Arts Inc.] for quite a few years, Fannar says. One of the things I learned there is it's really hard to buy software that's a full solution, unless you're trying to mimic and do the same thing. You're better off trying to find pieces that solve well-defined problems.
Still, St. John says the situation has improved vastly over the past decade. One of the nice things about the game industry is it's become a lot more modular over the years. I hate to say it, but this may be one of the areas where the gaming industry is learning from the enterprise, rather than the other way around.
Lessons from the Game Room
The experience of game developers won't apply to every corporate development shop. Still, the challenge of creating good game software has led to some important insights. Among them:
- People who can bridge the creative-developer gap are hugely valuable and can help ensure the success of a project.
- Work toward a vision, rather than a static document. Game shops have long adopted agile-like processes to break large projects into smaller pieces and allow for pragmatic course corrections.
- Interfaces should be intuitive, responsive and context-sensitive, and shouldn't require users to hike the mouse all over the screen to access commands.
- Value application responsiveness, working to avoid pauses, delays and other breaks that can degrade the user experience. Everything from Web page redraws to long status bar dialog boxes places a drag on productivity.
- Make judicious use of outsourcing, but keep the technical work and staff in house to preserve control and competency.
- Adopt tools and languages best suited for the environment. In the case of EVE Online, Python offered a seamless fit for the database-driven application architecture, while C++ is used to craft select, performance-sensitive components.
- Keep the lines of communication open, both horizontally among project groups and vertically between upper management and operations. And make sure you have the right people acting as buffers between disparate groups.
Eye on the Prize
The game industry certainly leads corporate development in the area of user interfaces. While technologies like Windows Presentation Foundation and the Office 2007 Fluent interface offer new tools to business developers, most enterprise applications remain relatively static and based on simple Windows Forms.
Corporate developers could learn a lot from games when designing UIs to make sure they're user friendly and require a minimal amount of effort to perform various actions, writes Alistair Doulin, a senior developer working on the Xbox 360 Battlestar Galactica game for Australia-based Auran Games.
St. John decries the windowing interface, which forces him to constantly move and adjust application windows across his dual monitors. He says game developers have learned to use context and depth of field to increase the amount of information visible to users at all times. So command options spin out around an object clicked on screen, and things like persistent, transparent dashboards offer constant situational awareness.
I like the analogy that game design UI always operates on the assumption that the user on the computer is in a persistent state of hyperactive impatience, and any latency whatsoever is an absolute crime or disaster, says St. John.
The problem, says Zyda, is that companies leave UI development to computer scientists, rather than to professional designers.
You can actually get a degree in computer science without taking a user interface course or a graphics course, and I think that's a mistake, Zyda says. This might be the biggest lesson for corporations. And it's a hard thing for corporate America to swallow. You've got to have extra folks involved.
For all its unique aspects, game developers face many of the same challenges that vex their enterprise counterparts. For instance, Fannar relays his team's struggle to manage the massive data requirements of the EVE Online environment. Based on a massive SQL Server 2005 database cluster, the game application is heavily data-centric.
It's a characteristic that guided CCP Games away from C++ and toward using a version of the Python programming language called Stackless Python. We saw that there was a much better fit to use relational programming rather than object-oriented programming. The program is really written from the database and up, says Fannar.
||I've been of the stance for a long time now that object-oriented programming has led us down the wrong path.
Halldor Fannar, Chief Technology Officer, CCP Games
In fact, corporate developers have long struggled with issues around data access. Most recently, Microsoft has worked to introduce under its .NET Framework both Language Integrated Query (LINQ) and Entity Frameworks (EF) as a way to provide more seamless programmatic access to relational and other data sources. It's an effort that Fannar regards as a symptom of a much larger problem.
I've been of the stance for a long time now that object-oriented programming has led us down the wrong path, says Fannar, who complains that rigid object hierarchies can be very hard to adjust as a large project moves forward. The whole object movement has gone a little too far.
Security is another point of shared misery between game and corporate developers. Both Fannar and St. John emphasize that online games, particularly MMOG software like EVE Online and World of Warcraft, are subject to constant scrutiny and attack by malicious gamers hoping to gain an advantage over fellow players. The charged environment means that software developers must be able to spot, assess and quickly fix vulnerabilities.
A game like World of Warcraft is a microcosm of all the kinds of security problems you could imagine, St. John says.
For all the technical challenges, successful game development still comes back to the people. And if there's one thing that game development has proven, says Fannar, it's the importance of orchestrating different groups toward a single goal.
Normally software is developed entirely by software engineers and project managers and so on. There's usually very little involvement from other disciplines, says Fannar. Game dev is very different in that we have artists. I'd say one of the challenges the game industry has tackled over the years now is how to bring these people together and have them work together.