Tech ONTAP Blogs

Solving game development challenges with Amazon FSx for NetApp ONTAP and the AWS CGD Toolkit

h0lmstr0m
NetApp
64 Views

The gaming industry is experiencing rapid transformation. Players' expectations are rising, and advancements in technologies suchas artificial intelligence (AI), and virtual and augmented reality (VR/AR) are pushing the boundaries by enhancing game immersion and driving a surge in new content creation. 

 

Consequently, today's game development requires infrastructure with resilience, performance, scale, and agility to manage a massive volume of codebases and asset libraries. To maintain a competitive edge, game studios must adopt technological solutions that can quickly address these challenges. 

 

A compelling way to do that is with the AWS Cloud Game Development Toolkit (CGD Toolkit) backed by Amazon FSx for NetApp ONTAP (FSx for ONTAP).

 

In this post, I’ll explore how the CGD Toolkit and FSx for ONTAP work together to provide an optimized solution for game development. We’ll see how this combination streamlines development workflows and game code repositories, speeds up game development iterations, and fully utilizes the scalability of AWS. 

 

Here’s what I’ll cover:

 

 

What is the AWS Cloud Game Development Toolkit? 

For development directors, developers, site reliability engineers (SREs), and cloud architects in the gaming industry, the CGD Toolkit offers a transformative approach to game creation. This comprehensive collection of open-source tools and best practices, available on GitHub, is designed to streamline and accelerate every stage of the game development lifecycle on AWS.

 

The CGD Toolkit provides pre-built modules and automation scripts for common game development infrastructure components, from source control and build pipelines to test environments and game server deployment. This gives customers a development solution optimized for game creation to be operational in minutes. This means less time spent on undifferentiated heavy lifting and more time focused on innovation and game design.

 

Using the CGD Toolkit to optimize game code repositories 

Today’s game development demands require efficient management of growing codebases and art assets for rapid iteration cycles. The CGD Toolkit optimizes game code repositories by integrating Perforce P4 (previously Helix Core) with the AWS native service FSx for ONTAP. Perforce P4 is an industry standard for version control, favored by 19 of the top 20 AAA gaming studios for its performance with massive codebases and assets, with users reporting a 100% ROI within two years of deployment.

 

Understanding how FSx for ONTAP storage is used in the CGD Toolkit

FSx for ONTAP makes an ideal choice as the core storage layer for Perforce P4 within the CGD Toolkit. This fully managed AWS service offers high-performance, cost-effective, and feature-rich block storage based on NetApp® ONTAP®. Following the example configuration, when you deploy a Perforce P4 server through the CGD Toolkit's automated processes, FSx for ONTAP is automatically configured as the underlying storage. 

 

Integrated using Terraform scripts included in the toolkit, this automation simplifies a typically complex and time-consuming manual setup process that can otherwise be prone to misconfigurations. Out of the box, the CGD Toolkit automation covers:

 

  • FSx for ONTAP file system, volumes, LUNs, and iGroup creation

    It automatically provisions the necessary FSx for ONTAP file system, creates dedicated volumes, defines logical unit numbers (LUNs) for block storage, and iGroups (initiator groups) to control access to the LUNs from the Perforce P4 server.

  • iSCSI configuration and mounting

    For optimal performance with Perforce the toolkit configures iSCSI connections which is recommended instead of using network file system (NFS). 

 

The CDG toolkit removes the complexity from iSCSI configuration by automatically installing the required support packages on the Perforce server, modifying iGroups on FSx for ONTAP to allow the server to connect, and mounting the FSx for ONTAP iSCSI volumes. In this way, the Perforce server has direct and highly performant access to the underlying storage.

 

The scripts in the CGD Toolkit embed AWS and NetApp recommended best practices for gaming development on AWS. It encapsulates architectural patterns and proven configurations to optimize performance, scalability, and cost efficiency for game workloads. This includes optimizing storage tiers, configuring networking, and setting up appropriate access policies, all of which contribute to a deployed environment that’s ready for demanding game development workloads from day 1.

 

How Perforce P4 with FSx for ONTAP streamlines game development and optimizes game code repositories

Perforce P4 offers high performance by storing only text file changes and compressing binary file versions as chunks. This prevents repository size explosion even with large projects and numerous commits. Its efficient mechanism, even for remote clients, makes Perforce suitable for version controlling both text and large binary files, which is crucial in modern game development.

 

The combination of Perforce P4's robust version control capabilities with high-performance FSx for ONTAP storage fundamentally streamlines game development and optimizes code repositories in several key ways:

 

  • Handling large files and binaries

    Game development relies on massive binary assets (textures, 3D models, audio, animations) alongside code. Perforce P4 is renowned for its ability to efficiently manage very large files, and when backed by FSx for ONTAP, it excels. 

  • Rapid synchronization and collaboration

    Developers frequently sync large portions of the repository to their local workstations. The performance characteristics of FSx for ONTAP—including its caching capabilities and high I/O throughput—dramatically accelerate these sync operations by leveraging its unique replication technology. This means developers spend less time waiting for files and more time coding or creating assets, fostering a more agile and collaborative environment.

  • Optimized branching and merging

    Game teams often use complex branching strategies for features, patches, and major releases. Perforce P4's robust branching and merging capabilities, combined with the FSx for ONTAP ability to handle concurrent operations without performance degradation, keep these processes smooth and efficient, even with large histories and active development streams.

  • Centralized and scalable storage

    Perforce P4 provides a centralized repository, which is a common and effective model for game studios. FSx for ONTAP offers the scalability required to grow this central repository at petabyte scale, accommodating the size of game projects. 

  • Efficient workspaces and build farms

    Developers often maintain multiple workspaces, and build farms require rapid access to code and assets for continuous integration/continuous delivery (CI/CD) pipelines. The performance of FSx for ONTAP directly translates to faster workspace updates and quicker build times, accelerating the entire development and testing pipeline. 

 

The FSx for ONTAP ability to create instant, space-efficient, writable clones of volumes using NetApp cloning technology is also a game-changer for game development. Clone copies are created instantly, they are writable, and only consume storage space for changed data, all of which speeds up the development process and optimizes storage usage and costs. 

 

By using the CGD Toolkit with Perforce P4 and FSx for ONTAP, designed for the unique demands of game creation, development teams can build, test, and release games faster and more reliably.

 

Benefits of using the CGD Toolkit with FSx for ONTAP 

The CGD Toolkit offers comprehensive support for different AWS services, providing developers with flexibility in managing their game assets and data. 

 

While the toolkit integrates with both Amazon EBS and FSx for ONTAP as AWS storage options, FSx for ONTAP stands out by offering a multitude of benefits tailored to the specific needs of game development, including:

 

  • Faster DevTest processes

    NetApp cloning technology allows teams to quickly provision isolated development or test environments from a "golden" repository state for parallel development, rapid bug reproduction, and efficient branching strategies without duplicating massive amounts of data. This accelerates the time needed for the developer team to test and troubleshoot, leading to faster iterations and reduced time-to-market

  • Multiprotocol support

    While iSCSI is primarily recommended for the Perforce server to help ensure maximum performance by accessing block level storage, FSx for ONTAP also supports the file protocols NFS and SMB. This flexibility regarding the data access protocol allows studios to use the same underlying storage for other game development workflows, such as shared build caches or art asset libraries, consolidating storage infrastructure with the same enterprise grade features and best practices.

  • Performance

    FSx for ONTAP delivers exceptional performance with high throughput and low latency, critical for handling the large file sizes and frequent I/O operations characteristic of game development. The resulting rapid check-ins, check-outs, and build times directly benefit developer productivity.

  • Scalability

    FSx for ONTAP is designed for the scale of AWS, allowing game studios to easily expand their storage capacity and performance as projects grow, without needing to re-architect their source control solution or migrating to a more suitable storage solution. This eliminates the guesswork and upfront investment associated with infrastructure, regardless of where you’re running on AWS or an on-premises environment.

  • Data protection

    FSx for ONTAP is supported by robust data protection features, including multiple Availability Zone configurations for high availability, efficient, point-in-time Snapshot copies of volumes, independent backups, and cross-AWS Region disaster recovery capabilities. This safeguards the integrity and availability of critical game code and assets.

  • Cost efficiency

    By using this on-demand storage service, you only pay for the storage you consume. The toolkit's automated deployment also reduces the need for specialized storage administrators, further lowering operational costs. FSx ONTAP also offers storage efficiency features such as thin provisioning, data compression, deduplication, compaction, data tiering and efficient NetApp Snapshot™ copies.

 

Getting started with the CGD Toolkit and FSx for ONTAP 

The CGD Toolkit uses Terraform, a powerful infrastructure-as-code (IaC) automation tool, to deploy and optimize game code repositories with Perforce P4 and FSx for ONTAP. 

 

The following figure and steps are a high-level overview of how you can get up and running:

 

CGD Toolkit Deployment Process.jpg

 

  • Prerequisites

    You must have an AWS account, the AWS Command Line Interface (AWS CLI) configured, and Terraform installed on your local machine.

  • Clone the toolkit repository and navigate to the example

    Access the AWS Cloud Game Development Toolkit on GitHub and clone the repository to your local development environment. Within the cloned repository, navigate to the  modules/perforce/examples/p4-server-fsxn  directory. This directory contains the specific Terraform configuration files to deploy a Perforce server with FSx for ONTAP as its storage.

  • Review the configuration: Examine the  main.tf  file to understand the resources that will be provisioned (e.g., Amazon EC2 instance for Perforce, FSx for ONTAP file system, security groups). The  variables.tf  file defines configurable parameters, such as AWS Region, instance types, and storage capacities. You can adjust these variables to suit your specific needs.

  • Initialize Terraform

    Open your terminal in the  p4-server-fsxn  directory and run  terraform init. This command creates a working directory and fetches all the required dependencies for the code to execute.

  • Review the proposed infrastructure and provision

    Execute terraform plan to see a detailed outline of the infrastructure that Terraform will create, modify, or destroy. This is a crucial step to verify that the deployment aligns with your expectations before any changes are made to your AWS environment.

     

    After reviewing the plan, if everything checks out, run terraform apply. Terraform will then provision the Perforce P4 server and its underlying FSx for ONTAP storage in your AWS account. Next, you’ll be asked to confirm this action. Enter yes to proceed.
  • Access Perforce

    After the terraform apply command completes successfully, the output will typically provide the public IP address or DNS name of your newly deployed Perforce P4 server. You can then use your Perforce client to connect to the server and begin managing your game code and assets.

This automated approach means that with just a few Terraform commands, you can deploy a fully configured, scalable, and high-performance Perforce P4 server in your own AWS environment that follows Amazon and NetApp best practices and aligns with the AWS Well-Architected Framework.

 

Summary and Key Takeaways

As game projects grow in complexity and size, the need for advanced solutions to manage massive code repositories and asset libraries becomes paramount. This article has highlighted how the CGD Toolkit, significantly enhanced by the integration of Perforce P4 and FSx for ONTAP, addresses these critical needs, offering a best-practice approach for game studios operating on AWS.

 

By adopting the CGD toolkit with FSx for ONTAP, game studios can build, test, and release games faster and more reliably. This powerful combination unlocks the full potential of AWS-based game development, providing a competitive edge in a rapidly evolving industry. 

 

To learn more about what FSx for ONTAP can do as your game development storage, read the Optimizing Game Development in AWS with FSx for ONTAP blog or access the AWS CGD Toolkit on GitHub now.

 

Public