Case study: Perforce implementation in CD PROJEKT RED
“Before Perforce, versioning was a constant struggle. We struggled with the client, with the software, and we wasted up to a third of our day on tasks that were completely unrelated to the work we needed to be doing. Once we realized we could get that time back, choosing Perforce was a no-brainer.”
JAKUB KUTRZUBA – DEVOPS LEAD, CD PROJEKT RED
- Maker of award-winning RPG game series, “The Witcher”
- Headquartered in Warsaw, Poland, with a second location in Cracow
- Perforce customer since: 2008
- Number of users: 450+
- Database size: 205 GB
- Repository size: 10 TB
- Number of files: 15 million and counting
A Brief Overview
Since CD PROJEKT RED opened their doors in 2002, they have become one of the industry’s premiere leaders in creating role-playing games, including award-winning titles: “The Witcher,” “The Witcher 2: Assassins of Kings,” and “The Witcher 3: Wild Hunt.”
Core Pain Points
- Working with heavy data — up to 50-60 GB daily
- Transferring data across multiple locations
- Meeting the needs of a growing gaming studio
With nearly 14 years’ experience, the studio is no stranger to version control systems, and the advantages they provide, particularly important to CD PROJEKT RED, the transparency and traceability of having a single source of truth.
In the past, they would create two builds, one would complete successfully, and the next would fail. Someone on the team would go in to troubleshoot, only to find that the data wasn’t stored in the version control platform and that there was no history or validation in the system.
Finding an intuitive solution that developers and artists would all adopt, however, was not an easy task.
Other solutions hindered the team’s overall productivity with limitations that ran the gamut from no branching and slow performance to only handling lightweight text files.
“Not every project requires a complex solution,” said Jakub Kutrzuba, DevOps Lead at CD PROJEKT RED. “But if you know – or even hope – that your project will scale in the future, it’s a waste to invest in a product that will hinder efficiency and cause growing pains down the road.”
As the studio ramped up with the intentions of becoming a serious contender on the world stage, these limitations became deal breakers. CD PROJEKT RED required a version control system that could scale and accompany them for the long haul.
- Scalability and performance
- Distributed workflows (DVCS)
- Intuitive and easy to use
“Here, I learned that scale is everything,” said Kutrzuba. “When you are working on a really big project, where a lot of data must be processed and where multiple users — hundreds of users, even — are working on that same data, how your software uses hardware becomes a critical differentiator.
And scale the studio has. Time after time, they find themselves working on data, preparing assets, and creating pipelines for users… more than 450 developer and design users, to be exact.
As their user base expanded from 60 to more than 450 and the studio opened its second location in Cracow, Poland, they faced the challenge of delivering the same data to multiple users at multiple locations, without sacrificing performance – no small feat when you deal with files that range from a few gigabytes to 50 or 60. They used Perforce solutions to synchronize everything to a secondary server.
“Most other solutions out there only worry about your text files, but those are already pretty easy to manage. When you start working with large files, you realize you have to consider solutions that won’t buckle under heavy files and complex data.”
Time and time again, Perforce has proven to be the most reliable tool for the job. Jakub and his colleagues have never had a problem getting data to or from users, no matter where they are.
The studio is currently automating processes like build creation and testing in the hopes of speeding up reaction times, increasing productivity, reducing risk, and releasing faster.
CD PROJEKT RED fully integrated the build system to the Perforce server to monitor changes, trigger tests, compilations, and builds.
The studio generates reports from these processes and is currently developing a Perforce integration with JIRA to automatically transfer the results to JIRA, their issue and project tracking solution.
JIRA generates a bug analysis, and paired with Perforce they will be able to submit possible fixes. The studio will soon automatically close bugs when they successfully create fixes that build successfully.
Branching allows the team to organize build creation and testing per project, offering better organization, tighter security, and greater stability. As of now, the studio uses separate depots for each of their games. Their largest depot has more than 30 branches for developing new features for the game and ensuring code is bug free before submitting it to the mainline.
Perforce also syncs seamlessly with the storage where CD PROJEKT RED keeps their builds, and transfers at least 50 GB daily, sometimes more than once.
“With Perforce, we put scalability, performance, and automation to the test multiple times daily and it succeeds consistently and without fail,” said Kutrzuba.