December 7, 2016

Single Source of Truth Benefits for Game Development

Game Development
Version Control

When starting development on a new game, you have a lot to consider. Before jumping in, it is vital to lay a foundation that your team can use now and grow with. Version management is an essential part of that foundation.

You might be asking yourself is: why do leading game development studios choose Helix Core?

Game Development’s File Explosion

While writing software potentially entails a lot of sizable text files, video game development is different. Developers are working with massive amounts of binary assets, raw artwork, “baked” textures, models, animations, sounds, pre-rendered cinematics, and more.

Versioning these files is a serious challenge. This is not just because they are binary. They are usually very large and almost impossible to merge. Many modern video games include more than 50 GB of these types of files. In fact, these binary files can comprise 90 - 95% of a game’s final content.

Resolution’s Impact

The total assets for a typical AAA game usually exceeds a terabyte. These numbers may be true for a standard HD (1K) game, but now many studios are now working on 4K games. Screen resolution is also improving for mobile phones, making resolution a factor across gaming development. Ignoring retro games, customers demand games that make the most of their shiny new screens. Whether you are developing for the newest iPhone or the PS4 Pro, asset sizes are ramping up.

It is important to note that it is not just the head revision that takes up space. The overall size of history (100s of TBs) and the rate of change often exceed 50 GB a day. For some companies, it could be well over 500 GB. We are talking a lot data that has to be synced for every contributor. This takes up space when using a tool like Git, which does not offer narrow cloning or other features to minimize download time.

More Developers, More Files

Although game development has expanded, you can still create a video games with less than a handful of people. But to create an amazing AAA game, you need a team of hundreds of artists, developers, and other contributors. It is impossible to bring that much talent together in the same location, so globally distributed development is increasingly the norm.

Even if you use Git-LFS to store all the large binary assets, you cannot avoid much of the pain of storing an entire Git history. Every time you refresh, you sync hundreds of gigabytes of asset updates. These saturate the network bandwidth, and the patience of your developers.

Tools For Your Entire Team

Git is a great tool for developers. But, there is an issue using Git-LFS when it comes to artists. They need a tool that allows them to be immensely creative and attentive to artistic detail, but also eases them into version management.
Overall, artists are often reluctant to use version management. Many prefer to use file name suffixes like “_v1”, “_v2.” Begrudgingly they may start committing their final work into version control, but prefer to see thumbnails for their versions of images. This means they need a graphical interface, not just a command line. 

If Git is the only option, many smaller studios choose to use a separate tool to version their design assets, typically Subversion or Dropbox. Because of this tool separation,  contributors become separated into silos and limits collaboration across your entire team. Less collaboration also means a higher risk of conflict. 

The Need for a Single Source of Truth

One might think that assets, such as game code or a game’s engine, have nothing to do with each other. In reality, tracing a bug across several unconnected repositories can become a huge a problem. If a bug broke a build or worse, made it out into the wild, a lack of cross-repo traceability is a pain. This impact ripples past game designers and developers and can impact a business’ bottom line.

We have many testimonials on our website from game development studios who have aligned on a “single source of truth.” This process involves bringing all files of a game into the same repository. The advantages are obvious. But when it comes to Git, a single repository rapidly grows far too unwieldy. To combat the issue of Git sprawl, companies need to break the repo into smaller chunks. This leads right back to separate silos that need to be stitched back together for a build.

Perforce’s Game Development Solution

Now let’s compare this with Perforce. With Helix Core you can have a single codeline that holds all game assets and code together. Whatever an individual’s role, they can access the files they need. And, developers can still break out individual chunks onto their local workspaces. Artists and other non-programmers can focus only on the small subset files they actually need without cluttering up their machine. 
Artists also enjoy the benefits of a central server, such as file locking to avoid overwriting someone else’s work. In Helix Core, you also have the ability to see if someone is working on the same file. This avoids nasty surprises when it comes time to submit work.

Managing Repos and Global Teams with Helix4Git

Many game development studios have more than one office. These often are globally dispersed. Industry titan Electronic Arts, a long-standing Perforce user, explains “There is simply not enough talent available anymore in one single place to create a triple-A game. All the different offices must contribute and work with the same codebase, a geographically distributed single source of truth.”

Helix Core supports DVCS workflow and native Git. Using Helix4Git, developers can create Git repos from the centralized codebase. Helix4Git stores and organizes native Git single-repo projects in a high-performance depot. This can support thousands of repositories, millions of files, and hundreds of replicas. Users can also manage their large repos better with narrow cloning, which breaks sprawling source code in to smaller chunks. Any changes are pushed and submitted into the same “single source of truth.”

Helix replication technology allows users to work against a local replica at LAN speed while their changes are synchronized around the world over a WAN connection. This enables your global team to collaborate easier without the wait. 

Jump Start Game Development with Helix Core

Helix Core is not just for large, AAA-game development companies. In fact, start-ups and small (5 - 20 users) companies can share in these benefits.

Git may be a frequently used tool in software development, but Helix Core is the standard for video game development. This means if you are hiring an experienced gaming developer, chances are they already know Perforce. Helix Core also integrates with major game engines like Unity, Unreal, CryEngine, and more. And, it is not just game engines. This is equally true of graphic tools like Maya and Photoshop. Beyond its broad suite of integrations, there are also a whole range of APIs supported by Helix Core.

Most small studios dream of one day becoming big players in the industry. It is vital to invest in a tool that can grow with you all the way to the top. Performance and scalability are key for this type of game development. Your assets will inevitably grow is size as your game develops and Helix Core can ensure you ship your game on time. Helix Core remains free for small teams so download the product and see for yourself why gaming studios are choosing Perforce.