AWS for Games Blog
Crucible, behind the curtain
Hi I’m Louis Castle, head of Relentless Studios, an Amazon Games development studio. I’m beyond excited to talk about the launch of our latest game, Crucible. Crucible is a free-to-play team-based action shooter that goes live on May 20, 2020, just a few days from today.
Release day is always both exciting and terrifying. It’s when players first see the fruit of years dedicated to a labor of love. We’ve mitigated a bit of that terror by building a robust backend. This backend helps ensure that the multiplayer experience is ready for players logging in on launch day. One thing we want to avoid is players dealing with hiccups when they get their first taste of our new game. If demand exceeds expectations, we’ll be able to scale up much more quickly than if we were running our own physical servers. How did we achieve this?
Games and serverless technology, a match forged in the Crucible
Crucible’s backend platform service is built entirely on AWS serverless technologies. This reduces our operational load considerably. With no persistent API servers in our backend, we don’t need someone up at 1 AM to reboot a box or manage certificates. We don’t have to think about the underlying system, and there’s nothing to patch or update except the code we wrote ourselves. And, scaling is automatic, with no intervention or configuration required from us.
The game servers themselves are hosted on Amazon GameLift, which offers dedicated, global, low-cost game server hosting. GameLift’s FlexMatch is a big deal for us as it makes a very complex problem simple by providing a robust match making system driven by our own rules. GameLift’s turn-key multi-region queue support is also a win. It means that game server fleets become globally distributed, and this just works. Also, as we add players, scaling is handled by GameLift automatically, again just with some simple rules set by us. Along with the serverless backend, this allows massive scale if we need it, without any additional planning. All of this saved us valuable developer time so we could focus on the needs of our game, not the needs of a service.
We also use WebSockets extensively to send notifications between the game client and the backend. This allows real-time updates for things like matchmaking, party changes, and more. Amazon API Gateway’s WebSocket technology, frankly, is fantastic to work with. If you’re a services person, you don’t care if players are coming over HTTP, WebSockets, it doesn’t matter. It’s very powerful and runs at scale.
Here’s a look at our backend architecture:
Gameplay, leveled up by technology
Of course a robust backend is not much use without a great game to go along with it. Though the soul of the game comes from an amazing gameplay design, appropriate use of new and advanced technologies can amplify that design. We hope to surprise and delight you with a few elements you’ve never experienced before in a game.
Crucible is built using the Amazon Lumberyard game engine. We’ve taken advantage of the fully customizable, modular nature of Lumberyard to make many game specific changes to the engine for Crucible. This includes a cutting edge lighting system, which provides stunning, performant graphics. In addition, we custom built an authoritative game server technology that provides both latency mitigation and cheat prevention.
One of the more offbeat, interesting features that we’ve added to the game is the voice of one character, Bugg, which is synthetically generated. This was made possible using Amazon Polly, a text-to-speech service. Bugg’s synthetic voice is featured along with traditional human voice actors. We initially used Amazon Polly to generated placeholder voiceovers for early testing. However, our team loved it so much we decided to actually voice a character with Amazon Polly.
A coincidence?
As it turns out, AWS Game Tech has been planning an online event called the Digital Download that happens on the same day we release Crucible. This is just a happy coincidence, I promise. If you’d like to find out more about the technologies we used to deliver Crucible, attending this event would be a great way to learn more about them and start using them yourself. Of course, you’ll have to tear yourself away from playing Crucible for a little while!