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

About IEEE Computer Society

IEEE Computer Society is the world’s leading membership organization for professionals in all aspects of modern computing – from cloud to big data, security to mobile, robotics to software defined systems, wearables to IoT. A true community for technology leaders, Computer Society provides resources to keep its members current in technology and moving forward in their professions – publications, a renowned digital library, a vast program of conferences, technical committees, and much more. The Computer Society also serves the profession at large through establishment of standards, professional qualifications and certifications, training and education programs, events on leading-edge technologies, conference publishing, and a wealth of other services and programs focused on advancing the science and art of computing. More information on IEEE Computer Society can be found at