AWS for Games Blog
Streamline Case Study: Accelerated Launch with Amazon GameLift
About Proletariat
Founded in 2012 by five game industry veterans, Boston-based Proletariat is an indie game company focused on building innovative multiplayer experiences. They’re the masterminds behind the award-winning World Zombination, a massive online game where players work together to strategize with armies of zombies or humans to attack and defend cities. Their newest multiplayer game, Streamline, is built for audience interaction and allows streaming broadcasters and viewers to change gameplay rules in real-time during a match.
The Challenge
Proletariat announced Streamline at GDC 2016 in March and had planned to unveil their beta in September at TwitchCon 2016, the premier event for game streamers. But, when Amazon approached them with an opportunity to be included in the Twitch Prime public launch at TwitchCon 2016, Proletariat decided to accelerate their development to make Streamline available for everyone to play. Proletariat was excited but concerned that their custom game server solution was already too time-consuming to manage and lacked the functionality needed to support increased player demand.
Proletariat’s custom cloud solution was built around AWS Elastic Container Service (ECS), a container management service that makes it easy to manage applications on AWS EC2 instances. They manually operated basic game server functionalities, like running server health checks and connecting players to available game servers. These processes worked for their player load but would be too time-consuming to manage once Streamline became publicly available. Their custom cloud solution also could not identify which game servers had active game sessions. This meant that while they were manually scaling their server capacity, they could accidentally scale down an active game session and disconnect players from Streamline. It was also difficult to simplify testing because they could not run multiple game server processes on a single EC2 instance. Each game server needed a unique public port, but the team could not retrieve the public port number from inside its container.
Proletariat wanted to keep using AWS’s proven infrastructure to host their game servers, but it would take thousands of hours to build the functionality they needed. With TwitchCon 2016 fast approaching, Proletariat was introduced to Amazon GameLift; an AWS managed service that simplifies game server hosting and scales server capacity in minutes.
“For the team at Proletariat Inc., the choice was pretty simple – hire a team of engineers to spend months building out our cloud infrastructure, or deploy with Amazon GameLift in just minutes.” said Seth Sivak, CEO, Proletariat Inc.
The Implementation
Proletariat downloaded the Amazon GameLift Server SDK for C++, integrated it into their Unreal Engine game server build, and uploaded their game server to Amazon GameLift. To house their Unreal Engine game server, Proletariat needed to decide which of the 5 Amazon GameLift instance types would best fit their needs. “Being a real-time game, we needed network optimized Amazon GameLift instances, so we chose c4.xlarge.gamelift instances for our fleet,” said Cauê Waneck, Streamline’s Lead Engineer. ”Amazon GameLift lets us set our runtime configuration to support four game servers on each instance, which is perfect because our servers are single-threaded. This lets us leverage one game server process per vCPU, which greatly simplifies our testing and iteration processes.”
Proletariat used the AWS JavaScript SDK with Amazon GameLift to manage the creation of new game sessions between its custom-built Node.js matchmaking system and their C++ game servers on Amazon GameLift. They also used specific game session data to find game servers with available capacity for quick matches. This data helped them classify whether a server should accept new players and identify which game sessions had available player slots. “Amazon GameLift made it so easy for us to matchmake high volumes of players and reduce wait time. Amazon GameLift is super easy to implement and performs really well,” said Waneck. “It also helped us give our players the ability to host custom game matches because we could associate a game session with a party leader. “
Proletariat also activated Amazon GameLift’s built-in game session protection to prevent instances with active games from scaling down and taking players offline. “Amazon GameLift is like an insurance policy – it gave us peace of mind about server scaling, especially at launch,” said Waneck. “It was easy to set up and monitor using the Amazon GameLift console. We can also easily turn on automatic server scaling when we need it as well.”
The AWS Command Line Interface (CLI) with Amazon GameLift made it easier to launch new fleets and reuse commands when implementing logic in Proletariat’s build system. While deploying game client updates, Proletariat used simple commands to leverage Amazon GameLift aliases to transition players from one fleet to another with no downtime. Proletariat also used the CLI to launch its game servers in regions around the world in just minutes. “The Amazon GameLift team supported us the whole way through. It’s nice to know they are there 24/7 to help us tackle any operational issues, so we don’t have to,” said Waneck.
In just five days, Proletariat used Amazon GameLift to release Streamline with confidence at TwitchCon 2016. Amazon GameLift saved them thousands of development hours that they instead used to focus on polishing the innovative gameplay that lies at the heart of Streamline.
More information
Learn more about hosting and scaling dedicated game servers with Amazon GameLift. Read more about Streamline: playstreamline.com.