Software engineers building games applications must now embrace a more virtualized cloud-centric … [+]
Architecture has changed. When we think about architects, we tend to think about the stereotypical image of bricks & mortar building architects. Typically male, architects wear clothing circa 1976 (it’s a good jacket, why throw it away?), are well into their 50s and are known for pipe smoking and carry large reams of paper under their arms. But thanks to software engineering also using the job designation “architect”, we can now conjure up a different kind of image.
Danny Chen is a clean-cut non-corduroy-wearing software architect working in Microsoft’s game experiences team. As we now work to not only game in the cloud (by connecting to Massively Multi-player Online Role-Playing Games, or MMORGs), but also use cloud computing resources to build the next generation of games, Chen spoke at the company’s virtual Game Stack Live event this summer to detail some of the core mechanics going on behind the next killer titles that gamers will be clamoring for.
Having spent over 12-years at Microsoft, Chen has worked on building game development platforms for all kinds of mediums from the web, to portable devices, back to PCs and onward to the Xbox as well. As such, he claims to have a fairly holistic view on what will shape software application development games engineering in the immediate and onward future.
“Our mission as a company is to help games-focused software engineers achieve more in everything that they want to do. We’re continuously trying to address that mission by talking with game developers of all sizes to figure out what their needs are both now and in the future as we look to find ways to keep games engineers focused on building great content rather than fighting the technology itself,” said Microsoft’s Chen.
A non-static software stream
Chen insists that the Microsoft Game Stack platform is anything but static. He describes it as a set of tools and services designed to carry games developers forwards towards the next era of games development because this is a sub-discipline of software engineering that is scaling massively all the time. Not just due to the increase in gaming that happened during Covid-19 lockdown periods, much of the market is currently mushrooming.
“In particular, triple-A games [ones built by major games publishing houses] are massive. When we look at the size and scale of the code and content that developers are working on, it is much larger than that which many enterprise companies will work on for their enterprise software stacks. But games developers typically work in markedly smaller workforces trying to build what they hope will be works of art,” said Chen.
Small workshop – massive engineering
This is clearly a case of small workshops needing massive engineering plant resources, which is evidently a clear fit for cloud computing i.e. the compute processing, storage, data management and additional services at the cloud-backend supplied from a datacenter can be massive in comparison to the size of an actual physical team or business group. All the games developers need to do is tap into that power and Chen claims that leveraging the cloud is a consistent and growing theme among games creators to manage this complexity, while minimizing cost.
“It’s really exciting to see now how much this is pervading in different studios around the world. One of my recent experiences that I think is particularly noteworthy was when I was mentoring, a group of high school students who were working in a computer science class and building a video game. This team of three built a really amazing retro remake of Pac Man, all virtually… and all through Microsoft Teams Visual Studio collaborating on GitHub [for code repository functionality] and Discord [for chat and messaging],” enthused Chen.
It seems pretty clear that decentralized development is increasingly becoming the norm for game studios everywhere, being able to get talent for pretty much anywhere in the world regardless of location is critical to building games.
But a really big logistical challenge is just moving that data around the world. It’s not uncommon to hear that a developer (and graphics artists or tester) really needs to download and copy 150 gigabytes or more just to start their work day. Of course, that’s absolutely untenable if that developer is working from home. So again, the use of cloud would appear to be logical.
Making Minecraft magnificent
Principal project manager at Microsoft is Steve Robinson. Talking about the way in which the team he works with building games software, Robinson says since buying original game creator Majang in September of 2014 for some $2.4 billion, Microsoft has been using its own Azure cloud services to extend the “build” for the hugely popular Minecraft game.
“Minecraft has grown from the original Java game to a franchise of multiple codebases and a growing family of titles and additions. The bedrock is the cross-platform Minecraft code base, written in the C++ computer language. That bedrock code base supports mobile desktops, game consoles, VR server apps for playing online… and the list keeps growing. Our mission is a continuous improvement as a build and test automation running on all platforms to help prevent new changes from breaking the game. The large matrix of build combinations adds up to a lot of complexity and a lot of scale demand,” said Robinson.
Explaining how his team uses Azure services for everything from virtual machines, to functions and storage, Robinson also underlines how Azure DevOps covers much of the software development process from sprint management, to built-in test pipelines.
“We want our virtual machines the right size for our current work workload and monitoring that tells us what we need to adjust that. Switching gears over to testing, we execute 1000s of automated test runs a day and report millions of individual results, the end-to-end test automation pipeline is mostly Azure based, which lets us run automation on and off-premises,” said Robinson.
Looking ahead to test automation, his dream is to eliminate the on-premises footprint completely. “It’s a long road, but when we get there, step by step, our Windows, Mac and Linux systems are ripe for wholesale migration to Azure, with the Azure VM offerings getting better all the time, including now having access to GPUs, we believe we can do this cost-effectively will continue with working with Microsoft and other vendors,” he added.
Microsoft’s Chen and Robinson talk about the four distinct stages of games software development:
- CREATE – The phase that really talks about everything that goes into making game content, including the creativity, the code and the inspiration.
- BUILD – Build is more of a computationally intensive part where developers take all of that creative output and leverage the computational resources of the cloud or other machines to build the game.
- PACKAGE – The phase where the game is picked up by someone who’s going to play it.
- VALIDATE – The phase when the games developer really wants to make sure that all the work and time investment results in a product that is compelling and fun… and so (perhaps with stages 1, 2 and 4 in mind most) anything that we can do to automate or offload the functional verification of those aspects is a great choice for moving into the cloud.
Another place where the cloud has a really natural fit is in build systems. Distributed build systems make a lot more sense, making it easier to do Continuous Integration (CI) in the cloud. Microsoft also wants to use future cloud services for automated playtesting, to get machines playing machines in the test phase to make sure that we humans get a better experience when playing in our normal humans vs. machines mode.
Gaming into the Generation-Z era
While some gamers will have been less than keen to see Microsoft release its latest Xbox console in its Series-S form (with no disk drive, for essentially cloud-downloaded games only), a disk version Xbox Series-X version does of course also exist. Some gamers will want to buy a copy of a disk, play it, keep it, enjoy looking at it on their bookcase and sometimes reinsert it and play it again or trade-in the disk at (real world, or virtual) games exchanges.
But all that being said, we know that the buy-and-keep mentality is leaving the Generation-Z cohort who represent the latest group of emerging gamers. Gen-Z’s preferences for rent or use-as-a-service is of course well suited to cloud and the always-on nature of the web itself.
If we’re going to game in the cloud and of the cloud with more Down-Loadable Content (DLC), then it makes sense for our software application developers to be using more inherently cloud-based cloud-native tools.
Insert coin to start has become instantiate cloud instance to start, ready player one?