If you’re a game developer, the last few years have probably felt like someone’s handed you a double-edged sword.
The industry is booming, but player expectations are booming too. Every day, they expect to see faster, more realistic, more inventive experiences. And they expect new games and updates to be delivered regularly.
In an industry built around crunch culture, that’s a recipe for disaster — or, at the very least, major burnout for game devs.
Some game studios have already taken some radical steps to combat burnout — take Riot Games, which gave all of its workers a week off work to give them some rest and relaxation time after an intense season.
But a week’s vacation — while amazing — is only the beginning.
If the gaming industry is going to fight burnout culture and look after its workers — while still delivering increasingly advanced games, on time and on budget — it’s going to need a long-term solution.
Which is where DevOps comes in.
Is DevOps in game development the antidote to dev burnout?
It’s easy to assume that game development is just too complex to bring in DevOps, but, in many ways, it’s actually perfect for game development systems and processes.
- It lets you focus on the stuff that matters. DevOps in game development is all about cutting down on waste, automating what you can, and fine-tuning your work by learning from past mistakes. Cut out everything that’s unnecessary, and your team can focus on building great games.
- It’s built around iterative development. Continuous delivery and continuous learning are the central pillars of DevOps. You build software, you release it, and you gather feedback. Then you start again — only this time you can tweak your approach based on all of the bugs, customer niggles, and process issues that slowed you down last time. That makes it perfect for game development; every time you release a patch, drop a new feature, or roll out an upgrade, it gets faster and more efficient. Think of it as New Game Plus for your working life.
- It makes it easy to monitor your performance. No one wants a rushed product — which means studios need better ways to spot signs of burnout and potential gameplay issues way earlier in the development process. DevOps encourages you to log and monitor as much information as possible during development — particularly things like CPU load, RAM allocation, network traffic statistics, and memory consumption. That means fewer nasty surprises — and much more real-time insight into your performance against studio and DevOps metrics.
- It’s great for scaling. If there’s one thing that players won’t forgive, it’s lag. If you can scale your cloud usage up or down automatically, you’ll be able to keep up with a new influx of users on your server — without wasting money on massive amounts of unused cloud storage during quieter times.
- Zero downtime. Enough said. When you can deploy multiple environments and roll out changes without affecting players, you can leave it up to them to decide when they want to install updates and reboot their game. Plus, you can take the pressure off your team to roll out updates within very tight windows of time; with no need for downtime, you can release updates or patches as and when they’re ready.
- It’s a more secure way of working. There’s a reason that the Pokémon Company started relying much more heavily on DevOps when it released Pokémon Go. With millions of children’s data in its hands, it had to go above and beyond to scale its infrastructure while maintaining security. Without strong, reliable DevOps development techniques and a DevOps-friendly cloud infrastructure, Pokémon Go could never have grown so fast while keeping its customers’ data safe.
- Continuous integration (CI) makes communication smoother on big teams and big projects. When you’re integrating small chunks of code at a time, it’s much easier to test new code and pick up potential problems as soon as it enters the code repository. Instead of having to comb through reams of code periodically, anyone on your team can step in at any stage of the CI process to check in on progress.
Five powerful DevOps trends in game development
So, where do you start with DevOps in game development? Well, it never hurts to follow the crowd in these kinds of situations — and a number of DevOps trends are already being adopted by game studios across the industry.
Cloud game development
Players expect their games to be constantly getting faster, more detailed, and more immersive — but every upgrade makes games more expensive and puts more strain on the player’s hardware. Meeting players’ demands could mean making games too unwieldy for the average console — and therefore cutting off huge swathes of potential customers.
Shifting gameplay processing from the player’s hardware to your server could help break down that brick wall and give games space to grow. In fact, some studios are already using cloud computing to take their game development and gameplay to the next level.
Take Ubisoft — the Assassin’s Creed developer has always stood out for the depth and complexity of its virtual worlds, but the studio is now using cloud computing to go one step further. The latest Assassin’s Creed games don’t just immerse players in a historical setting — they use the power of cloud computing to evolve and grow AI-powered game environments continuously.
This kind of continuous delivery and iteration is obviously core to DevOps, but DevOps approaches can also make the shift to the cloud much easier. With DevOps practices like measurement, continuous learning, and automation you can avoid many problems like network issues and low latency that can make the jump to cloud tricky for game developers.
Serverless architecture
Serverless computing essentially means shifting responsibility for your architecture from your server to that of a third-party architecture provider like AWS Amplify or Azure.
As soon as you dive into serverless architecture, it’s easy to see why it’s so popular for DevOps in game development.
For one thing, it’s hyper-scalable: Instead of leaving it to your developers to keep an eye on your infrastructure and adapt it manually, your backend provider can scale your infrastructure up and down automatically as needed. That means your developers can focus on writing and deploying code, fine-tuning processes, and making sure you’re on track to reach your goals, without worrying about all the architecture underneath.
But, most crucially, serverless architecture really accelerates the whole process of game development. When you don’t have to worry about your backend infrastructure, you can add and modify code for new features and bug fixes as and when you need them.
In an industry as time-pressured as game development, this is invaluable. If there’s one thing guaranteed to take heat off developers and fight burnout, it’s serverless architecture.
Popular DevOps tools
Here’s the thing: DevOps isn’t a piece of software or a single activity. It’s a whole way of working — a combination of all the processes and philosophies that your team adopts.
But it’s a whole lot easier to follow all of those processes and philosophies when you have the right tools behind you.
So it’s hardly surprising that a number of DevOps tools are now making their way into the lists of essential game dev tools.
If you’re going to keep to tight release deadlines — and be able to juggle releases, patches, and updates across multiple projects at the same time — you’ll need tools that make the production cycle as efficient as possible.
For DevOps in game development, that means tools like:
- Perforce for clean, simple version control that makes it easier to monitor changes, run tests, and fix bugs. Now that Perforce is one of the ‘essential tools’ included in Microsoft’s new Azure Game Development Virtual Machine — alongside Incredibuild and a number of other solutions — it’s probably going to become the go-to tool for game dev collaboration. Watch this space.
- Incredibuild to speed up build caching and optimize compute resources, accelerating dev cycles and iteration frequencies.
- Jenkins to automate CI for a wide variety of programming languages.
Containers
Even on their own, containers can transform game development.
By packaging up software with its code, runtime, system libraries, system tools, and settings, you’re already making it much easier to run your software virtually in almost any operating system. That means easier collaboration across devices between different devs — and, most importantly, faster and less buggy cross-console development.
A good container registry, like Docker, will run on both Linux and Windows-based applications, making it easy to build software that works in any environment. They can also integrate with JFrog container registries and Helm chart repositories for Kubernetes deployments. They even integrate with artifactory container registries, giving devs more control over access and permissions.
When you combine containerization with DevOps practices, you’ll also unlock a whole new level of continuous development. You’ll be able to:
- Spin up and destroy containers as and when you need them. Spin up a container, use it to test an element of gameplay, and then recycle it — all in a consistent, replicable environment.
- Use ‘build once, deploy many’ tactics to deploy faster with fewer failures. ‘Images’ stored in your artifact repository make it easy to quickly create lots of identical containers, which can be deployed rapidly in different environments — which makes it easy to get more mileage from your best and most reliable artifacts.
Test automation
Building a game means bringing together a huge range of specialists from a huge range of industries and asking them to create one coherent masterpiece. It’s a bit like getting Michelangelo, Pavarotti, Shakespeare, and Picasso together and asking them to create one work of art. In the dark. With millions of people peering in through the windows and asking if they’re finished yet.
If you’re a game developer, we don’t need to tell you that testing thoroughly and frequently is vital. And, when it comes to DevOps in game development, it should be a major component of your working processes.
But it’s usually easier said than done. In an ideal world, you’d regularly test every part of your code in every possible console and context — and with every possible type of consumer behavior. But running all of those tests manually is almost impossible, especially at scale.
Unit testing — using purpose-built programs to test the performance of other programs — can reduce some of this burden by automating some of the simple, repeatable tasks that go along with testing — things like creating a character, booting up the game, or performing a few basic commands.
Test automation can’t (currently) handle more complex tests, but many studios are finding that even cutting out some of these small, repetitive tasks can make a huge dent in game dev burnout.
Is DevOps really changing the game?
DevOps hasn’t fully taken over the game development industry — at least not yet.
In an industry that’s full of complex processes, conflicting priorities, and intense pressure to deliver, it’s hardly surprising that some studios are struggling to find the time to completely transform the way they work.
But it’s clear that the impact is enormous when studios find the space to invest in new tools and adopt DevOps processes.
And crucially, that impact isn’t just a better bottom line or a happier exec suite. DevOps usually has the biggest impact on two of the groups that studios should care about most: developers and customers.