The Complex Problem Many Game Studios Never Untangle
Given the acclaim of long-running titles, including Gears of War, Infinity Blade, and Unreal Tournament, it’s hard to deny the eponymous nature of Epic Games’ most lauded successes. In short: they too are epic.
That’s because the innovators at Epic Games, with more than 25 years of industry experience, remain on the cutting edge of first-person shooter (FPS) game rendering. How does Epic Games keep pushing their development in a market that grows more sophisticated each day? How do they replicate past success in iterative title releases? And how do they manage to captivate consumers in the face of swelling competition?
Epic Games has built an approach that keeps distributed teams productive. By leveraging Perforce's version control tool, Helix Core, Epic has simplified formerly complex workflows and sidestepped common bug delays--ensuring timely delivery of products.
Learn more about Epic Games' Best Practices in the eBook
Below are just a few ways that Epic Games leverages Helix Core to bring to life their FPS environments.
Untangle Complex Branch Structures
The gaming development model asks studios to wield disparate assets together into a single, aesthetic creation. This amalgamation of source code, art files, and audio assets merge together to create an artistry of animations that are responsive to a gamer’s commands.
That’s how lucky consumers are delivered an immersive online multiplayer experience, with sights and sounds to ensnare their focus for hours, with all the tedious work baked together seamlessly.
It goes without saying, but gaming development from start to finish is a daunting effort. Complex branch structures fork in many directions, with many teams contributing, and ultimately these diverging branches need to marry together again into a finished product.
“Dealing with so many branches can be overwhelming,” says Nick Penwarden, UE4 Development Manager, Epic Games. “We use the streams feature in Helix Core to facilitate and help manage the complexity of our branching setup.”
Streams is a first-rate tool that guides better, highly visible branch organization, pairing diverse elements together, including source code and binary files (an insurmountable challenge for other VCS tools in gaming).
“Streams allows us to manage our development branches in a way that makes it easy to visualize how code flows through the system and to enforce best practices for merging code between branches.”
From a variety of visualization tools in Helix Core, including Time-lapse View, Revision Graph, to P4Merge, Helix is the single source of truth for traceability and visibility in branch actions.
Greater Development Stability
As games become more sophisticated, development studios push the boundaries of simulation and real-time graphics in Triple-A titles. This sprawl of capability means your enterprise must grow in personnel to meet your day-to-day needs. With more users contributing to your source code, adding digital media files, and overseeing aspects of a build, your title is exposed to a greater risk of common, human error. And these will invariably delay and degrade your product stability
“Programmers are human and even great programmers make mistakes,” says Penwarden. “If each programmer makes one mistake per month and you have thirty programmers, on average the build will be broken once a day.”
Extrapolate that to your development workforce – maybe you have 60, or even 100 programmers! Hey, we get it, to err is human. But to safeguard your product development is Helix.
“Our solution with Helix Core was to have our sub-teams responsible for different areas of the build features and fixing bugs in their own branches. [Additionally] each of these team branches go through a QA process before the new code is pushed to the mainline development branch.”
This process supercharges the stability of the mainline branch, as every new change is vetted at the sub-team level and ensured to work before it gets pushed live. Similarly, the effect trickles down to team branches, too, as all changes merged in from the mainline are equally critiqued.
This approach has reduced a great deal of workload friction in Epic Games’ growing enterprise
“With Helix in place, our content creators remain productive in the mainline development branch and programmers remain productive in their team branches.”
Boost Product Efficiency
With a better picture of the complexity of their branching structure, and a foundational approach to support more stable branches, Epic Games was poised to parlay these best practices into greater efficiency across their enterprise. Implementing rules for merging up/copying down changes, which ultimately reduced errors and mitigated complications in the release stream.
“Fast stream switching allows programmers to quickly switch between branches to fix a bug by syncing down the differences between the branches rather than the entire branch, further reducing the hassle of dealing with many branches.”
Further, Epic Games reduced delays by predefining product cycles, with each team designated segmented workspaces that were still traceable into a whole project. This platform approach to greater efficiency is expertly catered to game development studios, as Helix is the industry standard for multimedia versioning in the enterprise. ‘
Ultimately, game studios can manage a broad, global team under a streamlined process. It’s keeping many, many ducks in a row, across many, many ponds.
With the power of Helix Core, Epic Games has enabled a number of processes that increase their ability to produce stable releases quicker and more efficiently. From dissecting complicated branch structures with better visibility, to creating more stable release streams, to enforcing best practices that require a solid VCS platform, Epic Games knows exactly what they’re getting from each team in their enterprise.
To learn even more about the innovative strategies employed by gaming studios, including The Chinese Room, CD PROJEKT Red, and Cloud Imperium,check out our Game Development Best Practices eBook.