How Do You Program Fun into Computer Games?

LOS ALAMITOS, Calif., 22 August 2011 – How do you create fun computer games while also incorporating the right set of features and making them reliable, maintainable, and robust? The September/October issue of IEEE Software on “Engineering Fun” tackles that challenging question from several perspectives.

Games tap into psychological, aesthetic, and social pleasures that are extremely difficult to quantify and predict in a computer science context, note guest editors Clark Verbrugge, a McGill University computer science professor, and Paul Kruszewski, president of GRIP Entertainment.

Properties like being addictive, providing fun, and offering social validation are imprecise—in marked contrast to the myriad technical and software elements that go into creating a game. That makes game development an active area of research both for game development companies and academics, Verbrugge and Kruszewski say.

“The guest editors have done an impressive job of compiling articles that cover a gamut of issues related to the engineering underpinnings of an incredibly vibrant and economically successful domain,” said Forrest Shull, editor in chief of IEEE Software and a division director at the Fraunhofer Center for Experimental Software Engineering in Maryland.

The issue includes an extensive interview that Shull conducted with Ed Beach, who led the artificial intelligence programming on the latest version of Civilization by Firaxis Games, helmed by Director of Creative Development Sid Meier. This flagship strategy game series has sold more than 9 million copies worldwide.

“Most of the engineering principles that help you develop quality software in a more traditional setting still apply here in the game industry,” said Beach, who before joining Firaxis developed software for NASA and the wireless industry. “In fact, I’d say that software development for the game industry is fundamentally the same as a traditional project—with the major caveat that your requirements are significantly more fluid than normal.”

Testers play a big role in determining the game’s final version. In a technique pioneered by Meier, parts of a game are also quickly eliminated if testers find them tedious.

“We find out what’s fun and build around those elements,” said Beach. “It’s a proven method for developing great games. But it means that you have to design the software to accommodate nearly constant change.”

One of the articles in the issue offers helpful hints on using a software products line approach to automate more of the software life cycle through reusable domain assets (“Improving Digital Games Development with Software Product Lines”). Another article describes using massively multiplayer online game middleware to provide load balancing, fault tolerance, cheat detection, and other services (“Journey: A Massively Multiplayer Online Game Middleware”). A third article explains how to capture gameplay metrics in leaderboard-based video games (“Capture and Analysis of Racing-Gameplay Metrics”).

The IEEE Computer Society’s peer-reviewed IEEE Software magazine offers pioneering ideas, expert analyses, and thoughtful insights for software professionals who need to keep up with rapid technology change. It's the authority on translating software theory into practice. To view the special issue or subscribe, visit http://www.computer.org/software.

About the IEEE Computer Society

With nearly 85,000 members, the IEEE Computer Society is the world’s leading organization of computing professionals. Founded in 1946, and the largest of IEEE’s 38 societies, the Computer Society is dedicated to advancing the theory and application of computer and information-processing technology. The Society serves the information and career-development needs of today’s computing researchers and practitioners with technical journals, magazines, conferences, books, conference publications, certifications, and online courses. For more information, visit http://www.computer.org.

Marketing Automation Platform Marketing Automation Tool