Game Studio Inc. uses Azure to cloudify its development
Game Studio Inc. develops consumer games, arcade games, and smartphone apps for a range of devices under the slogan of "Creating Amazing." The company recently cloudified its game development environment using Microsoft Azure to cut heavy workloads for procuring and managing build machines in its on-premises environment. After researching cloudification, Game Studio sought a multicloud architecture, and it decided that Azure would provide the perfect development environment. The game developer now uses Helix Core for repository management and Azure Active Directory (Azure AD) for single sign-on (SSO). Azure DevOps and Azure Virtual Machine Scale Sets automate the build process using multiple virtual machines, and Game Studio believes the new platform will be a huge benefit for working from home in the "new normal."
Overhauling version control tools, cloudifying development environments
Although the game industry has increased its use of the cloud as a platform to provide products, many companies are sticking with on-premises environments for development. However, this situation is steadily changing as companies expand their use of the cloud beyond product provision and embrace it as a development platform.
There are few better examples of this trend than Game Studio, which was established in 2004 with funding from IMJ Corporation and IMJ Entertainment.
"Before our cloudification project, we used an entirely on-premises development environment," says Hiroshi Tobari, Sub Leader P Group, 2nd Development Department, 1st Business Division at Game Studio. Although P Group oversees game programming, Tobari is also in charge of running the development environment. "The S Group maintains our environment, but it doesn't have many staff members, which means that there's a heavy workload for maintaining on-premises systems," he explains.
Nobuhiro Saito, Leader S Group, 2nd Development Department, 1st Business Division at Game Studio, started researching cloudification in 2018 to solve this problem. The timing coincided with a review of the company's version control tools.
"We had been using Subversion for version control, but started using Git in February 2018 after requests from programmers," explains Saito. "However, Git was new to some users in the company, so we began using both solutions concurrently two months later. This caused frequent merge failures and data inconsistencies, which meant we wasted many hours troubleshooting almost every day."
The company began researching more version control tools to eliminate this problem, and it discovered an article evaluating Helix Core by Epic Games, the provider of Unreal Engine—one of the game engines used by Game Studio. Based on the article, Game Studio launched an on-premises Helix Core environment in late 2019 to verify its capabilities. After confirming that everything worked well, the company decided to cloudify the new Helix Core environment.
The company adopted Microsoft Azure as the cloud platform for its Helix Core–based development environment. "In our investigations of cloudification, multicloud computing was always a prerequisite," says Saito. "There were three reasons why we chose Azure as our cloud development platform: Azure AD makes single sign-on easy; we wanted to perform builds with Windows; and Azure offered a range of managed services like Azure DevOps."
"Building a development environment on Azure means we no longer need to procure and install new build servers, which also saves time. Our automation initiatives have also increased the number of builds we can perform per day, enabling us to find and fix errors faster." Hiroshi Tobari: Sub Leader P Group, 2nd Development Department, 1st Business Division Game Studio Inc.
Adopting Azure as development environment in multicloud architecture
First, Game Studio had been using Azure AD Premium as its internal user authentication platform prior to the cloudification initiative. "Helix Core proved to be highly compatible with Azure during our internal testing. This showed us that running Helix Core on Azure would make it easy to implement single sign-on for our development environment," says Saito.
Second, Game Studio had been building its games on Windows machines, and the company wanted to retain its Windows environment after moving to the cloud. Azure makes it easy to set up a cloud-based Windows build environment.
Third, Azure offered an extensive lineup of managed services.
"We could've run our own tools on virtual machines, but this approach wouldn't have reduced version upgrade and security management workloads. To fundamentally reduce operational management work, it's more effective to use managed services, so the availability of Azure DevOps was a big attraction," says Tobari.
The development environment began full-scale operation on Azure in mid-2020. An overview of the process is shown in Figure 1.
A Helix Core server on Azure manages repositories and constantly syncs with a Helix proxy on another cloud platform. Developers submit and check out files through the proxy, and checked-in files are automatically reflected on the Helix Core server when submitted.
Once this occurs, Azure DevOps launches a pipeline that starts building the code automatically. Azure Virtual Machine Scale Sets agents automatically launch and shut down virtual machines for builds.
The output of the build is sent to cloud storage on another cloud running API servers and game servers. Game executable modules are then deployed as containers and run by the Kubernetes engine.
Slashing operational management workloads, multiplying the number of daily builds
Building a development environment on Azure has eliminated the need to procure new development servers. "We no longer need to buy and install build servers that cost 100,000 to 200,000 yen each," says Tobari. "However, the benefits of using Azure don't stop there."
"Once we built the development environment on Azure, we discovered numerous unexpected benefits," says Sohei Ueno, S Group, 2nd Development Department, 1st Business Division at Game Studio who built the development environment on Azure. According to Ueno, the company had been using Jenkins for build automation, but Azure DevOps pipelines surpassed Jenkins in convenience.
"The greatest benefit of Azure DevOps is the ease with which it works with Azure Virtual Machine Scale Sets," says Ueno. "We can automatically launch the virtual machines needed for our build based on granular settings and automatically dismiss them when they're unnecessary. Azure DevOps also provides a variety of APIs that we can use to add our own tools. We've created tools that check build status and automatically deploy the build when it's complete."
These proactive automation initiatives have multiplied the number of builds that can be performed within a certain time frame. Previously, the company could only perform nightly builds; now, however, it completes 20 to 30 builds daily. "Building a development environment on Azure means we no longer need to procure and install new build servers, which also saves time. Our automation initiatives have also increased the number of builds we can perform per day, enabling us to find and fix errors faster." says Tobari.
Another benefit has been the cost reductions generated by using Azure Spot Virtual Machines for builds. These virtual machines can be used at significantly lower prices when Azure has spare resources. When resources are tight, Azure notifies customers 30 seconds before automatically removing their workloads, but if you accept this condition, you can get up to 90 percent off the usual price. "Ephemeral OS disks also lower our costs," explains Saito. With this feature, Game Studio saves money and gains faster access speeds by creating OS disks on local virtual machines.
"We're currently, using this environment in two projects, but we expect to increase that number," says Tobari. Although the 2nd Development Department mainly uses Unreal Engine for development, it wants to cloudify its entire development process because of the excellent compatibility between the new environment and Unreal Engine.
According to Saito, the cloud-based development environment has another advantage. "I think, we're nearing the end of on-premises development, partly due to the COVID-19 health crisis. Because we still use on-premises build machines for some development work, staff members must go to the office for maintenance if a fault stops a machine, which prevents us from fully adopting telework. A scheduled power outage at our office means shutting down and restarting all machines. We don't want to do that anymore, so moving to a cloud-based development environment is inevitable."
"Azure DevOps enabled us to scale build servers and reduce costs," adds Ueno. "We can also temporarily raise build server specifications for high-speed builds."
With less than 10 percent of Game Studio's staff members working in the office, and almost all developers working from home, the Azure-based development environment is likely to play an even bigger role in supporting work in the "new normal."
"There were three reasons why we chose Azure as our cloud development platform: Azure AD makes single sign-on easy; we wanted to perform builds with Windows; and Azure offered a range of managed services like Azure DevOps". Nobuhiro Saito: Leader S Group, 2nd Development Department, 1st Business Division, Game Studio Inc.
To learn more about how Microsoft Azure can help you push the boundaries of what's possible for your own games, check us out at azure.com/gaming.