SlideShare a Scribd company logo
 
MERGE 2013 THE PERFORCE CONFERENCE SAN FRANCISCO • APRIL 24−26
Perforce White Paper
To provide a solid foundation for software development
excellence in today s demanding economy, it s critical
to have a software version management solution that
can meet your demands.
Game Studio Perforce Architecture
Creating Services That Power Large
Development
Ryan Mensching, NetherRealm Studios (WB
Games)
2 Game Studio Perforce Architecture
	
  
Introduction	
  
NetherRealm Studios has been creating video games on multiple platforms for more than 20
years. As a AAA game developer, the amounts of data produced and production quality have
increased many times over. Along with this growth comes increased demand for Perforce
space, reliability, and flexibility. These three pillars are the foundation of our infrastructure
decisions.
Background	
  
Perforce Software Version Management has been an integral part of studio collaboration since
2006. Prior to migrating to Perforce, several products had been used, including Visual
SourceSafe. Perforce has been able to scale to the needs of studio development while
allowing management of large binary assets and large integrations. Enabling this growth,
however, has required some engineering to ensure the best possible structure for Perforce to
layer on.
Past projects encountered such stability or resource constraints that individual team members
took it upon themselves to run or host services on individual machines. Projects were at risk of
losing data and compromising timelines, which could cost hundreds of thousands of dollars.
For game studios, deadlines and “crunch” are generally mandatory events during the multi-
year development cycle. Staff may be on site working around the clock during these periods,
and having Perforce down halts work and collaboration.
This is true not only for our code development but also for art asset development and binary
art assets, such as textures, models, and many cinema movies, which consume the most
space for any given game project. The current project head revision is around 20 GB (sync in 8
minutes) and the art assets head revision is around 545 GB (sync in 3 hours). Furthermore, we
can have 460+ submitted changelists per day with upwards of 20+ GB of iterations (see Figure
1). This adds up to a significant load on Perforce during critical business.
We also use a complex system of file types to manage data; +S flags are used on binaries
where appropriate as well as file locks to manage user access and submits. Internally we are
also publishing software at a consumer level for our artists and designers. This software
package undergoes a basic software release cycle and its release depends on game content
progression and vice versa. This can make for a very difficult release window. The studio
currently works on more than one game at a time, so we generally have a split audience that
may be in different places within their projects.
From an IT perspective, we had aging hardware and processes, plus general support issues
keeping up with business demand. We recommissioned hardware to virtual machines (VMs)
and restructured existing storage as best as possible to accommodate a better layout and
space usage. Ultimately, these experiences and experiments led to further engineering for the
systems that Perforce and critical systems would use in our environment.
3 Game Studio Perforce Architecture
	
  
Figure 1: Disk growth for 3 months
IT	
  Strategic	
  Goals	
  	
  
As IT, we focus our goals around what the business needs to stay viable and to produce its
product. For games this is very similar to many other industries, with the caveat that most
everything must be ready or available immediately, if not faster. This can be a very painful
experience if your infrastructure is not prepared to handle or adapt to the business. To begin
our design and building our infrastructure, we established several pillars that were dictated by
the needs of the business and our experiences supporting it:
• Space
This may seem straightforward, but how space is approached from a logical and
management perspective makes a big difference when in the middle of solving
issues. The space needs to be not only available but also be abstracted to suitable
layers so that applications can be applied in real time without major
reconfiguration.
• Speed
This is something that all SAN/storage users will have concerns about. When you
are running all your VMs and major storage from a single platform, speed is a
critical component of making the system work without causing slowness to users.
• Flexibility
Although tied to several of the other pillars, flexibility needs to stand alone because
this is a major gate to how you use and manage your resources, whether it be a
choice of protocols or how quickly you spin up new VMs or hardware.
4 Game Studio Perforce Architecture
	
  
• Reliability
Redundancy should be inherent in any solid infrastructure design and the
components you choose should make this a seamless effort instead of requiring a
dedicated action to provide robustness. If a separate architecture plan is necessary
to provide reliability, holes may emerge over time, or this activity may eat up too
much time.
• Management
The glue that brings all the pieces together and allows insight to how the systems
are running is critical. Without proper management, issues will arise in the other
pillars that can trickle down. Management of the platform as a whole should not be
a complex endeavor and should be self or easily documented.
Solutions	
  
As an organization, how do we accomplish all of our goals and realize our vision? We had
already established a solid layer 2 and 3 network with 10 GB distribution, a core component.
On top of this we started working on migrating and testing all services to storage via IP
protocols to eliminate cabling and complexity (see Figure 2).
With this base IP and storage layer, we started to test VMware as a platform to support our OS
and applications. With these early renditions, we utilized internet small computer system
interface (iSCSI) for our VM storage layer as well as any mass storage for applications and
Perforce. We had some success with this platform and were able to keep our performance
benchmark for Perforce, via the p4bench tool, in the top 20 platforms on the Perforce bench
database at the time. Ultimately, this platform had some inherent management flaws and
required hardware upgrades and processes to be engineered further.
Figure 2: Service stack
Our storage platform is a key component of our infrastructure design. We had issues with
iSCSI being agile enough to keep up; logical unit number (LUN) management becomes a
major burden for a small team. iSCSI also has inherent configuration complexity at the network
layer to provide redundancy and performance. Through our testing we found that network file
system (NFS) provided equal or better performance while allowing several advantages.
5 Game Studio Perforce Architecture
	
  
First, there is the notion of true thin provisioned volumes and volumes that can be expanded
on the fly without downtime or LUN changes. Second, VMware also has very mature support
for NFS, which enables clustering and redundancy by default. The engine to power this
storage platform is NetApp. With its mature feature set and collapsed protocol support, we
were able to leverage NFS while also having support for FC and iSCSI if so required.
We are able to leverage NFS at our OS layer as well to provide dynamic support for volume
growth, or shrinking, a key component to our growth plan for Perforce revision file storage.
With the NetApp platform, we also have the advantage of snap technologies that allow for
granular file level snaps and restores that do not chew up space. For example, we are able to
retrieve a single file from a deleted shelved changelist if so required, without downtime or any
overhead (granted, we try to avoid this).
Through VM evaluation and performance testing over the years, we have found that we need
servers that are wide and fast. The more RAM we can give, the better for disk caching, and to
accommodate the fastest execution of database jobs, we want the fastest cores.
We only have two cores on each of our Perforce servers but these are running at 3.4 GHz. We
have been using the Cisco UCS platform to provide our compute resources for VMware. With
this platform, we have inherent abstraction at the hardware layer, which allows the
blade/hardware to be swapped or upgraded, and the reassignment of the profile to
automatically configure its network interface controllers (NICs), connections, and other
characteristics. This allows for quick additions or replacements. The virtualization at the NIC
layer is an important factor for our installation. We utilize several virtualized NICs to connect
directly to the 10 GB backbone at the VM host layer as well as direct pass-through technology
at the OS guest level to connect to Perforce NFS data.
At the OS level, we are a RHEL shop, which has served us well as a layer on virtualization.
Linux utilizes virtual resources better than most OSes and provides the best way to operate a
thin OS with very little service overhead. We have allocated 32 GB of memory to our
production Perforce servers.
With the disk cache system in Linux and having large amounts of RAM in our cluster, we are
able to get excellent throughput from both VMDKs and mounted NFS achieving 440+ MB to
the desktop Perforce client. Our Perforce instances are run in the standard fashion with some
custom scripts for management and startup of services.
We use proxies for remote work as well as in-house high-demand applications such as build
machines. We are moving forward with full broker front-ended servers with replicas to offload
read-only data and checkpoints. With this model we are able to distribute loads seamlessly,
and with our revision files being stored on NFS we can have a single source mounted
read/write or read-only for production and read-only replicas without needing to sync/replicate
revision files.
Reliability is a critical factor for our system design. At the storage level, we have redundancy at
the NetApp array level with automated SnapMirrors. At the volume level, we use SnapShot
technology to provide a month of on-array backups. This is the functionality that enables us to
restore single files directly back to depots/servers on demand with no outage time. At the layer
2 and layer 3, we have redundancy through multi-homed connections to our UCS chassis. At
the VMware level, we have redundancy via VMware HA and clustering. At the Perforce level,
we are using replicas, proxies, and checkpoints for integrity, load balancing, and backups.
6 Game Studio Perforce Architecture
	
  
Finally, to glue our systems together, we use a suite of management tools. Each layer has a
management and application monitoring tool, NetApp, UCS, and VMware. With each of these
tools, we can manage and allocate resources quickly as well as get advanced notifications for
system usage or failures.
Figure 3: Logical Perforce
Conclusion	
  
We have found Perforce capable of scaling to the needs of high-speed and data intense
development processes. Accomplishing this, however, has required many rounds of
engineering and investment in infrastructure technologies. We have chosen these platforms
from our experience, which means other situations may require different solutions. However,
7 Game Studio Perforce Architecture
	
  
the general performance and design philosophies can be applied. Ultimately, one of the largest
gains for modern infrastructure is virtualization, and we have made design choices to abstract
at each layer of the platform. This allows easy upgrades, migration, and management of
growth without changing how we use the platform or the services it provides.

More Related Content

What's hot (20)

PDF
Handle transaction workloads and data mart loads with better performance
Principled Technologies
 
PDF
Better Backup For All Symantec Appliances NetBackup 5220 Backup Exec 3600 May...
Symantec
 
PDF
IBM flash systems
Solv AS
 
PDF
Best Practices for Deploying Enterprise Applications on UNIX
Noel McKeown
 
PDF
The Pendulum Swings Back: Converged and Hyperconverged Environments
Tony Pearson
 
PPTX
Using SAS GRID v 9 with Isilon F810
Boni Bruno
 
PDF
Datacore SPC-1 Benchmarking Results
Haluk Ulubay
 
PPTX
Storwize SVC presentation February 2017
Joe Krotz
 
PDF
IBM Storage at SAPPHIRE 2017
Paula Koziol
 
PDF
IBM XIV Gen3 Storage System
IBM India Smarter Computing
 
PDF
Conserve spending by consolidating workloads
Principled Technologies
 
PDF
Dell PowerEdge R920 and Microsoft SQL Server 2014 Migration and Benefits Guide
Principled Technologies
 
PDF
Red Hat for IBM System z IBM Enterprise2014 Las Vegas
Filipe Miranda
 
DOCX
CV
Paul Smith
 
PDF
XIV Storage deck final
Joe Krotz
 
PPT
Big data and ibm flashsystems
solarisyougood
 
PDF
Managing clients with Dell Client Integration Pack 3.0 and Microsoft System C...
Principled Technologies
 
PPTX
Key Considerations For Deduplication In The Enterprise
Quantum
 
PPTX
IBM FlashSystems A9000/R presentation
Joe Krotz
 
PDF
Xiv cloud machine_webinar_090414
Jinesh Shah
 
Handle transaction workloads and data mart loads with better performance
Principled Technologies
 
Better Backup For All Symantec Appliances NetBackup 5220 Backup Exec 3600 May...
Symantec
 
IBM flash systems
Solv AS
 
Best Practices for Deploying Enterprise Applications on UNIX
Noel McKeown
 
The Pendulum Swings Back: Converged and Hyperconverged Environments
Tony Pearson
 
Using SAS GRID v 9 with Isilon F810
Boni Bruno
 
Datacore SPC-1 Benchmarking Results
Haluk Ulubay
 
Storwize SVC presentation February 2017
Joe Krotz
 
IBM Storage at SAPPHIRE 2017
Paula Koziol
 
IBM XIV Gen3 Storage System
IBM India Smarter Computing
 
Conserve spending by consolidating workloads
Principled Technologies
 
Dell PowerEdge R920 and Microsoft SQL Server 2014 Migration and Benefits Guide
Principled Technologies
 
Red Hat for IBM System z IBM Enterprise2014 Las Vegas
Filipe Miranda
 
XIV Storage deck final
Joe Krotz
 
Big data and ibm flashsystems
solarisyougood
 
Managing clients with Dell Client Integration Pack 3.0 and Microsoft System C...
Principled Technologies
 
Key Considerations For Deduplication In The Enterprise
Quantum
 
IBM FlashSystems A9000/R presentation
Joe Krotz
 
Xiv cloud machine_webinar_090414
Jinesh Shah
 

Viewers also liked (20)

PDF
[Nvidia] Extracting Depot Paths Into New Instances of Their Own
Perforce
 
PDF
[IC Manage] Workspace Acceleration & Network Storage Reduction
Perforce
 
PDF
[NetApp] Simplified HA:DR Using Storage Solutions
Perforce
 
PDF
[Citrix] Perforce Standardisation at Citrix
Perforce
 
PDF
[MathWorks] Versioning Infrastructure
Perforce
 
PPTX
From ClearCase to Perforce Helix: Breakthroughs in Scalability at Intel
Perforce
 
PPTX
Continuous Validation
Perforce
 
PDF
Infographic: Perforce vs Subversion
Perforce
 
PDF
[Mentor Graphics] A Perforce-based Automatic Document Generation System
Perforce
 
PDF
[Lucas Films] Using a Perforce Proxy with Alternate Transports
Perforce
 
PDF
[SAP] Perforce Administrative Self Services at SAP
Perforce
 
PDF
[NetApp Managing Big Workspaces with Storage Magic
Perforce
 
PPTX
Managing Microservices at Scale
Perforce
 
PDF
Cheat Sheet
Perforce
 
PDF
[AMD] Novel Use of Perforce for Software Auto-updates and File Transfer
Perforce
 
PPTX
[Webinar] The Changing Role of Release Engineering in a DevOps World with J. ...
Perforce
 
PPTX
Granular Protections Management with Triggers
Perforce
 
PDF
Infographic: Perforce vs ClearCase
Perforce
 
PPTX
How Continuous Delivery Helped McKesson Create Award Winning Applications
Perforce
 
PPTX
Conquering Chaos: Helix & DevOps
Perforce
 
[Nvidia] Extracting Depot Paths Into New Instances of Their Own
Perforce
 
[IC Manage] Workspace Acceleration & Network Storage Reduction
Perforce
 
[NetApp] Simplified HA:DR Using Storage Solutions
Perforce
 
[Citrix] Perforce Standardisation at Citrix
Perforce
 
[MathWorks] Versioning Infrastructure
Perforce
 
From ClearCase to Perforce Helix: Breakthroughs in Scalability at Intel
Perforce
 
Continuous Validation
Perforce
 
Infographic: Perforce vs Subversion
Perforce
 
[Mentor Graphics] A Perforce-based Automatic Document Generation System
Perforce
 
[Lucas Films] Using a Perforce Proxy with Alternate Transports
Perforce
 
[SAP] Perforce Administrative Self Services at SAP
Perforce
 
[NetApp Managing Big Workspaces with Storage Magic
Perforce
 
Managing Microservices at Scale
Perforce
 
Cheat Sheet
Perforce
 
[AMD] Novel Use of Perforce for Software Auto-updates and File Transfer
Perforce
 
[Webinar] The Changing Role of Release Engineering in a DevOps World with J. ...
Perforce
 
Granular Protections Management with Triggers
Perforce
 
Infographic: Perforce vs ClearCase
Perforce
 
How Continuous Delivery Helped McKesson Create Award Winning Applications
Perforce
 
Conquering Chaos: Helix & DevOps
Perforce
 
Ad

Similar to [NetherRealm Studios] Game Studio Perforce Architecture (20)

PDF
on the most suitable storage architecture for virtualization
Jordi Moles Blanco
 
PPTX
Catching the Software Defined Storage Wave
DataCore Software
 
PDF
Lenovo Storage S3200 Simple Setup
Lenovo Data Center
 
PDF
SUSE Expert Days 2017 FUJITSU
SUSE España
 
PPT
Monitoring IAAS & PAAS Solutions
Colloquium
 
PDF
Lenovo Data Migration Solutions Brief
DataCore Software
 
PDF
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
The Linux Foundation
 
PDF
robust-company-profile-2015
Tecsun Yeep
 
PPTX
Charleston SC VMUG 8/14/13
lwilmes
 
PDF
Media & Entertainment Solutions via Innovative IT
Botzlab Innovations & Services Pvt Ltd
 
DOCX
Siva-Resume
Siva Aanand
 
PDF
S104878 nvme-revolution-jburg-v1809b
Tony Pearson
 
DOC
Datastage parallell jobs vs datastage server jobs
shanker_uma
 
PDF
White Paper: Scaling Servers and Storage for Film Assets
Perforce
 
DOCX
SAMKUMAR- Sr.Linux SystemAdministrator (1)
gandi samkumar
 
PDF
BOS - Hyperkonvergenz – Der einzige Weg zum Software definierten Rechenzentrum?
Fujitsu Central Europe
 
PDF
Hyper-convergence – The only way to the software-defined data center? - Gerno...
Fujitsu Middle East
 
PDF
White Paper: Still All on One Server: Perforce at Scale
Perforce
 
PDF
NetApp All Flash storage
MarketingArrowECS_CZ
 
PDF
IBM NYSE event - 1-16 IBM's Alex Yost and Sean Poulley on IBM X6 Technology B...
Cliff Kinard
 
on the most suitable storage architecture for virtualization
Jordi Moles Blanco
 
Catching the Software Defined Storage Wave
DataCore Software
 
Lenovo Storage S3200 Simple Setup
Lenovo Data Center
 
SUSE Expert Days 2017 FUJITSU
SUSE España
 
Monitoring IAAS & PAAS Solutions
Colloquium
 
Lenovo Data Migration Solutions Brief
DataCore Software
 
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
The Linux Foundation
 
robust-company-profile-2015
Tecsun Yeep
 
Charleston SC VMUG 8/14/13
lwilmes
 
Media & Entertainment Solutions via Innovative IT
Botzlab Innovations & Services Pvt Ltd
 
Siva-Resume
Siva Aanand
 
S104878 nvme-revolution-jburg-v1809b
Tony Pearson
 
Datastage parallell jobs vs datastage server jobs
shanker_uma
 
White Paper: Scaling Servers and Storage for Film Assets
Perforce
 
SAMKUMAR- Sr.Linux SystemAdministrator (1)
gandi samkumar
 
BOS - Hyperkonvergenz – Der einzige Weg zum Software definierten Rechenzentrum?
Fujitsu Central Europe
 
Hyper-convergence – The only way to the software-defined data center? - Gerno...
Fujitsu Middle East
 
White Paper: Still All on One Server: Perforce at Scale
Perforce
 
NetApp All Flash storage
MarketingArrowECS_CZ
 
IBM NYSE event - 1-16 IBM's Alex Yost and Sean Poulley on IBM X6 Technology B...
Cliff Kinard
 
Ad

More from Perforce (20)

PDF
How to Organize Game Developers With Different Planning Needs
Perforce
 
PDF
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Perforce
 
PDF
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Perforce
 
PDF
Understanding Compliant Workflow Enforcement SOPs
Perforce
 
PDF
Branching Out: How To Automate Your Development Process
Perforce
 
PDF
How to Do Code Reviews at Massive Scale For DevOps
Perforce
 
PDF
How to Spark Joy In Your Product Backlog
Perforce
 
PDF
Going Remote: Build Up Your Game Dev Team
Perforce
 
PDF
Shift to Remote: How to Manage Your New Workflow
Perforce
 
PPTX
Hybrid Development Methodology in a Regulated World
Perforce
 
PPTX
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Perforce
 
PDF
Easier Requirements Management Using Diagrams In Helix ALM
Perforce
 
PDF
How To Master Your Mega Backlog
Perforce
 
PDF
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Perforce
 
PDF
How to Scale With Helix Core and Microsoft Azure
Perforce
 
PDF
Achieving Software Safety, Security, and Reliability Part 2
Perforce
 
PDF
Should You Break Up With Your Monolith?
Perforce
 
PDF
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Perforce
 
PDF
What's New in Helix ALM 2019.4
Perforce
 
PDF
Free Yourself From the MS Office Prison
Perforce
 
How to Organize Game Developers With Different Planning Needs
Perforce
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Perforce
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Perforce
 
Understanding Compliant Workflow Enforcement SOPs
Perforce
 
Branching Out: How To Automate Your Development Process
Perforce
 
How to Do Code Reviews at Massive Scale For DevOps
Perforce
 
How to Spark Joy In Your Product Backlog
Perforce
 
Going Remote: Build Up Your Game Dev Team
Perforce
 
Shift to Remote: How to Manage Your New Workflow
Perforce
 
Hybrid Development Methodology in a Regulated World
Perforce
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Perforce
 
Easier Requirements Management Using Diagrams In Helix ALM
Perforce
 
How To Master Your Mega Backlog
Perforce
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Perforce
 
How to Scale With Helix Core and Microsoft Azure
Perforce
 
Achieving Software Safety, Security, and Reliability Part 2
Perforce
 
Should You Break Up With Your Monolith?
Perforce
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Perforce
 
What's New in Helix ALM 2019.4
Perforce
 
Free Yourself From the MS Office Prison
Perforce
 

Recently uploaded (20)

PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PPTX
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
Python basic programing language for automation
DanialHabibi2
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PPTX
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Python basic programing language for automation
DanialHabibi2
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 

[NetherRealm Studios] Game Studio Perforce Architecture

  • 1.   MERGE 2013 THE PERFORCE CONFERENCE SAN FRANCISCO • APRIL 24−26 Perforce White Paper To provide a solid foundation for software development excellence in today s demanding economy, it s critical to have a software version management solution that can meet your demands. Game Studio Perforce Architecture Creating Services That Power Large Development Ryan Mensching, NetherRealm Studios (WB Games)
  • 2. 2 Game Studio Perforce Architecture   Introduction   NetherRealm Studios has been creating video games on multiple platforms for more than 20 years. As a AAA game developer, the amounts of data produced and production quality have increased many times over. Along with this growth comes increased demand for Perforce space, reliability, and flexibility. These three pillars are the foundation of our infrastructure decisions. Background   Perforce Software Version Management has been an integral part of studio collaboration since 2006. Prior to migrating to Perforce, several products had been used, including Visual SourceSafe. Perforce has been able to scale to the needs of studio development while allowing management of large binary assets and large integrations. Enabling this growth, however, has required some engineering to ensure the best possible structure for Perforce to layer on. Past projects encountered such stability or resource constraints that individual team members took it upon themselves to run or host services on individual machines. Projects were at risk of losing data and compromising timelines, which could cost hundreds of thousands of dollars. For game studios, deadlines and “crunch” are generally mandatory events during the multi- year development cycle. Staff may be on site working around the clock during these periods, and having Perforce down halts work and collaboration. This is true not only for our code development but also for art asset development and binary art assets, such as textures, models, and many cinema movies, which consume the most space for any given game project. The current project head revision is around 20 GB (sync in 8 minutes) and the art assets head revision is around 545 GB (sync in 3 hours). Furthermore, we can have 460+ submitted changelists per day with upwards of 20+ GB of iterations (see Figure 1). This adds up to a significant load on Perforce during critical business. We also use a complex system of file types to manage data; +S flags are used on binaries where appropriate as well as file locks to manage user access and submits. Internally we are also publishing software at a consumer level for our artists and designers. This software package undergoes a basic software release cycle and its release depends on game content progression and vice versa. This can make for a very difficult release window. The studio currently works on more than one game at a time, so we generally have a split audience that may be in different places within their projects. From an IT perspective, we had aging hardware and processes, plus general support issues keeping up with business demand. We recommissioned hardware to virtual machines (VMs) and restructured existing storage as best as possible to accommodate a better layout and space usage. Ultimately, these experiences and experiments led to further engineering for the systems that Perforce and critical systems would use in our environment.
  • 3. 3 Game Studio Perforce Architecture   Figure 1: Disk growth for 3 months IT  Strategic  Goals     As IT, we focus our goals around what the business needs to stay viable and to produce its product. For games this is very similar to many other industries, with the caveat that most everything must be ready or available immediately, if not faster. This can be a very painful experience if your infrastructure is not prepared to handle or adapt to the business. To begin our design and building our infrastructure, we established several pillars that were dictated by the needs of the business and our experiences supporting it: • Space This may seem straightforward, but how space is approached from a logical and management perspective makes a big difference when in the middle of solving issues. The space needs to be not only available but also be abstracted to suitable layers so that applications can be applied in real time without major reconfiguration. • Speed This is something that all SAN/storage users will have concerns about. When you are running all your VMs and major storage from a single platform, speed is a critical component of making the system work without causing slowness to users. • Flexibility Although tied to several of the other pillars, flexibility needs to stand alone because this is a major gate to how you use and manage your resources, whether it be a choice of protocols or how quickly you spin up new VMs or hardware.
  • 4. 4 Game Studio Perforce Architecture   • Reliability Redundancy should be inherent in any solid infrastructure design and the components you choose should make this a seamless effort instead of requiring a dedicated action to provide robustness. If a separate architecture plan is necessary to provide reliability, holes may emerge over time, or this activity may eat up too much time. • Management The glue that brings all the pieces together and allows insight to how the systems are running is critical. Without proper management, issues will arise in the other pillars that can trickle down. Management of the platform as a whole should not be a complex endeavor and should be self or easily documented. Solutions   As an organization, how do we accomplish all of our goals and realize our vision? We had already established a solid layer 2 and 3 network with 10 GB distribution, a core component. On top of this we started working on migrating and testing all services to storage via IP protocols to eliminate cabling and complexity (see Figure 2). With this base IP and storage layer, we started to test VMware as a platform to support our OS and applications. With these early renditions, we utilized internet small computer system interface (iSCSI) for our VM storage layer as well as any mass storage for applications and Perforce. We had some success with this platform and were able to keep our performance benchmark for Perforce, via the p4bench tool, in the top 20 platforms on the Perforce bench database at the time. Ultimately, this platform had some inherent management flaws and required hardware upgrades and processes to be engineered further. Figure 2: Service stack Our storage platform is a key component of our infrastructure design. We had issues with iSCSI being agile enough to keep up; logical unit number (LUN) management becomes a major burden for a small team. iSCSI also has inherent configuration complexity at the network layer to provide redundancy and performance. Through our testing we found that network file system (NFS) provided equal or better performance while allowing several advantages.
  • 5. 5 Game Studio Perforce Architecture   First, there is the notion of true thin provisioned volumes and volumes that can be expanded on the fly without downtime or LUN changes. Second, VMware also has very mature support for NFS, which enables clustering and redundancy by default. The engine to power this storage platform is NetApp. With its mature feature set and collapsed protocol support, we were able to leverage NFS while also having support for FC and iSCSI if so required. We are able to leverage NFS at our OS layer as well to provide dynamic support for volume growth, or shrinking, a key component to our growth plan for Perforce revision file storage. With the NetApp platform, we also have the advantage of snap technologies that allow for granular file level snaps and restores that do not chew up space. For example, we are able to retrieve a single file from a deleted shelved changelist if so required, without downtime or any overhead (granted, we try to avoid this). Through VM evaluation and performance testing over the years, we have found that we need servers that are wide and fast. The more RAM we can give, the better for disk caching, and to accommodate the fastest execution of database jobs, we want the fastest cores. We only have two cores on each of our Perforce servers but these are running at 3.4 GHz. We have been using the Cisco UCS platform to provide our compute resources for VMware. With this platform, we have inherent abstraction at the hardware layer, which allows the blade/hardware to be swapped or upgraded, and the reassignment of the profile to automatically configure its network interface controllers (NICs), connections, and other characteristics. This allows for quick additions or replacements. The virtualization at the NIC layer is an important factor for our installation. We utilize several virtualized NICs to connect directly to the 10 GB backbone at the VM host layer as well as direct pass-through technology at the OS guest level to connect to Perforce NFS data. At the OS level, we are a RHEL shop, which has served us well as a layer on virtualization. Linux utilizes virtual resources better than most OSes and provides the best way to operate a thin OS with very little service overhead. We have allocated 32 GB of memory to our production Perforce servers. With the disk cache system in Linux and having large amounts of RAM in our cluster, we are able to get excellent throughput from both VMDKs and mounted NFS achieving 440+ MB to the desktop Perforce client. Our Perforce instances are run in the standard fashion with some custom scripts for management and startup of services. We use proxies for remote work as well as in-house high-demand applications such as build machines. We are moving forward with full broker front-ended servers with replicas to offload read-only data and checkpoints. With this model we are able to distribute loads seamlessly, and with our revision files being stored on NFS we can have a single source mounted read/write or read-only for production and read-only replicas without needing to sync/replicate revision files. Reliability is a critical factor for our system design. At the storage level, we have redundancy at the NetApp array level with automated SnapMirrors. At the volume level, we use SnapShot technology to provide a month of on-array backups. This is the functionality that enables us to restore single files directly back to depots/servers on demand with no outage time. At the layer 2 and layer 3, we have redundancy through multi-homed connections to our UCS chassis. At the VMware level, we have redundancy via VMware HA and clustering. At the Perforce level, we are using replicas, proxies, and checkpoints for integrity, load balancing, and backups.
  • 6. 6 Game Studio Perforce Architecture   Finally, to glue our systems together, we use a suite of management tools. Each layer has a management and application monitoring tool, NetApp, UCS, and VMware. With each of these tools, we can manage and allocate resources quickly as well as get advanced notifications for system usage or failures. Figure 3: Logical Perforce Conclusion   We have found Perforce capable of scaling to the needs of high-speed and data intense development processes. Accomplishing this, however, has required many rounds of engineering and investment in infrastructure technologies. We have chosen these platforms from our experience, which means other situations may require different solutions. However,
  • 7. 7 Game Studio Perforce Architecture   the general performance and design philosophies can be applied. Ultimately, one of the largest gains for modern infrastructure is virtualization, and we have made design choices to abstract at each layer of the platform. This allows easy upgrades, migration, and management of growth without changing how we use the platform or the services it provides.