Skip to main content

Blog Archive

A Look Behind What Happens When You Press “Play”

August

16, 2012

by JacksSmirkingRevenge


Archive

ServersYou know the routine: you find the game you want to play, you click play, and within seconds, you’re transported to a virtual realm of soldiers, mages, farmers and race car drivers. Simple, right?

On your end, it really is. But in those few seconds it takes for your game to load, computers are transitioning commands into IP addresses, data is being transmitted, received, and filtered, and computers, some of which are hundreds of miles away, are having separate and unique conversations to get you into a populated game as quickly as possible.

The amount of technology behind keeping ROBLOX online, stable and secure is staggering, so we thought we’d take some time to tell you a little bit about how it works.

We have two remote “farms” of computers that handle every facet of ROBLOX gaming. One farm consists of hundreds to thousands of computers, each of which can handle running multiple games at a time. These computers are “ant”-computers of sorts, taking orders from a “queen” computer, whose entire purpose is to allocate the most work to the machines doing the least. This is all part of a process known as “grid jobs”—the overall notion of taking a task, and farming it out to other machines to exponentially increase work-allocation.

The other “farm” of computers differ from the ant-computers—they’re a hard-hitting combo of web server computers and database machines. Though this farm is substantially smaller in size, each of the machines is decked out with a ton of dedicated memory, or RAM, for ultrafast (we’re talking 200GB fast) computing. These computers’ primary job is to handle bandwidth—take any commands from roblox.com, turn them into an IP address, and ship the line of code off to our Load Balancer, which finds the right web server to achieve each of the millions of tasks that are constantly coming in.

RGC 2012 - Luke R&D

Both computer farms are following one of three primary functions to keep ROBLOX running:

  1. Run games
  2. Generate thumbnails (or images of 3D content)
  3. Ad hoc jobs

Just as there’s no computer big enough to handle all the traffic we receive, there’s no single computer powerful enough to run all the instances of ROBLOX games. The challenge we continually face is one of scale. As ROBLOX continues to grow, both in page views, and in-game traffic, we have to learn to scale with it, by adding more machines to handle the bandwidth. The trick, however, is utilizing systems like the Load Balancer to give the illusion that it’s communicating with one, centralized, all-powerful machine. This stream-lines the user experience both in-game, and online.

Running games is obviously the most important facet of the three, and doing so is done by allocating different tasks to the ROBLOX game cloud. The cloud is divided into a huge array of different sections, each working to stitch together tasks and functions into a single, seamless cloud.

Computer Farm Pull QuoteBasically, if you’re running a game on your machine, that game is running on one of our thousands of machines. When you join a game, our game grid knows which machine is running an instance of that game, and it re-directs you to the first instance of the game with an open slot. Once you’re in, our game grid keeps tabs on who is coming and who’s going, so there’s a constantly updated roster of open games for potential players to join, at any given time.

Our system models, both for handling in-game traffic and web traffic, were built specifically to be as simple as possible. It puts us in a great position—if our business grows, we can grow with it by adding machines to handle the workload. The sheer numbers of running computers also ensures that if one, three, or even ten of them over heat or blow up, our system knows to route around them. Essentially, our system was built in an on-going effort to eliminate single points of failure.