The Saints Row series has become known for its over-the-top gameplay, and Saints Row: The Third is no exception. It shouldn't be surprising, then, that under the hood there is some unusual code to make it all happen. Fortunately, this isn't a problem for a physics engine like Havok. We've been able to rely on Havok Physics to take the craziness we throw at it and have it produce something realistic. For us, it's not just about the features that the physics engine provides, but also the ways we can customize it and extend it.
Making a world as large and dense as that of Saints Row: The Third inside the memory limits of current consoles is challenging. Although Havok provides multiple options for terrain collision representation, we chose to implement our own by extending one of the provided options with our own storage scheme custom tailored to our usage needs. The result was a fast and very memory-efficient representation of our terrain collision. Havok provided a solid foundation upon which we could then expand.
Vehicles are very important in Saints Row games, so we are constantly striving to provide better vehicle physics. Once again, we used the Havok vehicle physics kit as a foundation and then customized and built on top of it.
We were able to implement our own drifting physics by changing the way vehicle friction is simulated; make our own tank turret physics by combining Havok constraints and motors with our vehicle weapon system; and build all kinds of watercraft, airplanes, helicopters, and hybrid vertical takeoff or land (VTOL) vehicles by building on top of Havok.
Even with everything it already does, Havok Physics is always improving. New features, optimizations, and fixes are constantly being developed, which we were able to take advantage of between Saints Row 2 and Saints Row: The Third. As developers experienced with supporting both PlayStation 3 and Xbox 360 can attest, getting good performance across platforms can be difficult and time consuming. Fortunately, Havok continued making improvements to the physics engine's cross-platform support so that we could focus on other details.
Finally, Havok support is top-notch. Whenever our over-the-top physics ran into over-the-top bugs, Havok's support team helped us track down the issue. Their knowledgeable team and excellent support tools, such as the Havok Visual Debugger, made a big difference when we were dealing with difficult bugs. Beyond just helping when asked, they also contacted us to inform us of their future plans for the engine and ask for feedback on what to improve for future versions. On occasion, we even had them on-site for some hands-on attention toward the end of a project.
We've been using Havok Physics for several years, and it just seems to be getting better and better. More and more of the cross-platform differences are handled behind the scenes so that we don't have to worry about them like we used to. Interesting new features are being added, so that we can expand upon them to make crazy new games. When those games run into equally crazy problems, it's comforting to know Havok support is there for us. Saints Row has really benefited from its use of Havok Physics, and we look forward to using them in the future.
Shawn Lindberg is a senior programmer at Volition Inc.
Unreal Engine 3
Whether you're a student trying to get into game development, an indie developer aiming to make a splash in the PC or mobile markets, or a studio looking to develop the next big thing on consoles, one thing that should definitely be high on your radar is Unreal Engine 3.
Available under multiple licenses, starting with the most affordable Unreal Development Kit, you can create high-quality, standalone commercial titles, using the same tools that Epic and its licensees used to create games such as Gears of War, Mass Effect, Borderlands, and Infinity Blade.
I was first introduced to Unreal 3 in 2007 through a university degree that included creating mods for Roboblitz and Unreal Tournament. When a few of us were hired by a large studio in 2008 to work on an unannounced Unreal Engine 3 game, the tools available to us as full licensees were essentially just a more up-to-date version of what we were already familiar with. During pre-production, design specs could be turned into fully fledged prototypes in a matter of days, due to Unreal's mature, efficient toolset.
When I later worked on other games at the company using their own proprietary tech, the tools were a mess. I learned to appreciate the enormous difference between tools that a programmer can use to get the job done, and tools that artists and designers need to use every day to effectively do their jobs.
Good tools can be the difference between a game that gets finished on time and under budget and one that gets stuck in development hell. After seeing the damage that bad tools could do to a project, when I began working on my own games again in early 2009, I went straight back to working with Unreal. With two decades of experience being at the front line of game technology, an expansive portfolio of highly successful triple-A games and a growing list of independent releases via the UDK, new updates every month, and good documentation, it's pretty clear that Epic knows what it's doing when it comes to developing an effective engine.
From a programming perspective, there are a couple of caveats to be aware of. The UDK will only give you access to a higher-level scripting language known as UnrealScript, not the lower-level native C++ code that runs the engine beneath it. UnrealScript is like a user-friendly combination of C++ and Java, with a focus on development simplicity and power over raw execution speed. Don't let that deter you, though.
Using nothing but UnrealScript and the Unreal Editor, I managed to create Antichamber, an award-winning non-Euclidean psychological exploration game, complete with custom physics, obscure spatial navigation rules, and a unique visual style made up of multiple rendering techniques, edge detection, and a custom inverse lighting system. I did all of the programming, design, and art myself, and even won the award for Technical Excellence at the 2012 Independent Games Festival, without ever having to go near any of the lower-level native C++ code.
Several successful independent titles have been developed using the Unreal Development Kit, such as The Ball, Sanctum, and Hawken. Other games, such as Dungeon Defenders, began development using the UDK and then upgraded their license when they made the transition to consoles. One particularly interesting case was QUBE, which was released on Steam at the start of 2012 by a team with no programming experience.
One of the most important aspects of developing games is knowing what your strengths and weaknesses are. Some people like having control over every single detail, but to me, there is nothing more daunting than staring at a blank slate, trying to work out where to start. By using Unreal and leaving the core foundational work in the hands of experts, I can just focus on working on the things I actually care about. I'm interested in exploring the boundaries of game design, but I hate reinventing the wheel.
Alexander Bruce is an independent developer and the creator of Antichamber.