As I walk away from the first day of the Triangle Games Conference, I leave with a new found and deep respect for what game programmers and designers do to make the games we love. It's not all magic and voodoo, although there is a bit sprinkled in, that creates the engines and the games they drive. Only methodical researching, planning, designing and programming make a game a true success.
Every single element, world object, and NPC movement in a game must be designed and programmed. As players become better and smarter so must the AI behavior of enemies they battle and game environments that contain them. All game developers are constrained by time, energy and budgets - 3D Realms being the odd exception. Developers must continue to push the boundaries of gameplay and the design. These sessions bring the conference's theme "Innovate or Die" into clear focus.
Taking Cover: Mechanics and AI Systems for Cover in Games
The first session of the day was given by Allan Campbell (Lead Gameplay Programmer), Clarence Simpson (Senior Gameplay Programmer) and Edward Rowe (Gameplay Programmer) of Vicious Cycle. Their latest title, Eat Lead: The Return of Matt Hazard, is a next-gen game for Vicious Cycle and required more advanced AI and cover systems than previous games. In previous games they used a finite-state machine to handle enemy movement and combat, but with this came the problems of being time consuming and the code not being reusable. A new cover point management system was needed.
They explored several options for their new cover system, including the STRIPS planning system used in F.E.A.R. and behavior trees used in Halo and Spore. They ultimately settled on an approach called HTN Planners, short for Hierarchical Task Network. This system had the advantage of planning for long-term events, was easy to design, breaks down tasks, and is modular in design. It works by breaking down a goal into tasks.
The goal's parts are broken down into compound tasks, methods, and primitive tasks. The example they gave for a compound task was "make dinner". You don't simply make dinner, you have to break it down into smaller steps. The method, a way to break down tasks, would be "make soup". Primitive tasks are actions that can be executed. In this example, a primitive task would be open cabinet and turn on stove. The main advantage of the HTN planners is events and tasks don't have to happen immediately.
New Methods of Procedural Modeling for Games
Paul Merrell, a fourth-year PhD computer science student at the University of North Carolina at Chapel Hill, spent the second session speaking about his work with Procedural Modeling for games. Procedural modeling is a technique for generating 3D models and textures from a set of rules. The models produced can range from buildings, cities, or spaceships to more organic models such as trees and landscapes. The advantage of this technique is it's easy to use and models can be built very quickly.
In the example Merrell gave, a game world builder could design a single or many buildings that would serve as the rule set or "mold" which the rest of the city would be generated around and from. The new buildings in the generated city would not be exact clones of the original but instead have minor to major variations. Entire cities could be generated with interesting layouts and designs a world builder may have never conceived. The software tool Merrell built that uses the procedural modeling technique can also be instructed to set boundaries to where the city can grow such as in the shape of a wheelchair logo. It can also be instructed to build symmetrical cityscapes.