ROBLOX is about 70 people strong, with teams specializing in everything from web and client development to customer service and marketing. While each team executes starkly contrasting projects, we’re united by our shared values and the ultimate goal of making ROBLOX the best digital-creation experience. We’re going behind the scenes with teams across ROBLOX to provide some insight into the tasks and challenges associated with achieving that goal. So far, we’ve dissected the day of a ROBLOX web developer and Content Team member. Today, we shift our focus to the ROBLOX Client Team.
It’s Thursday morning, and a wide range of people are gathered in one of the many ROBLOX meeting rooms here at HQ. A projection of a list is beamed onto the board in the center of the room, and a fast-paced conversation is taking place between physicists, graphics specialists, and other generally smart individuals.They’re talking about changes that are happening to our platform, which makes sense. They’re the ones tasked with planning, implementing, and monitoring each change made to the ROBLOX client engine, after all. Big and small, they cover everything. Where are we with our new look? How far along is the prototype for streaming parts? What are the pros and cons of an overlay data model? The jargon, even for a seasoned tech journalist, can be difficult to follow. Everything is abbreviated, consolidated, and the topics of discussion change at the drop of a hat.
The Client Team consists of the most technically diverse members of ROBLOX–to understand how they work, it’s easiest to split the members of the team into three sub-teams: rendering, physics, and networking. At its core, the Client Team works to ensure that your gameplay experience is stable. This sounds like a simple notion. Spend five minutes in a meeting with these guys, and you realize, it’s not.
The Rendering Team focuses on the look of ROBLOX, and they’re always busy tweaking and enhancing the appearance of our platform (these were the guys responsible for a small, minor change we recently made that you may have heard of called dynamic lighting). As we mentioned in the blog article, dynamic lighting marks the first of many steps we’ll be taking to overhaul ROBLOX’s look. From a visual perspective, ROBLOX is constantly evolving. The rendering sub-team is responsible for not only making sure that everyone is satisfied with major or minor evolutionary steps, but that the user experience remains stable after the changes take effect. They’re prototyping another major visual change that we’re not quite ready to mention here, and are currently working to ensure that these changes will work on any machine.
ROBLOX runs a realistic, distributed physics simulation, so it probably comes as no surprise that there is a dedicated sub-team that focuses on a course I struggled with in high school (I got a C-, it was an AP course, don’t judge me). The members of this team work tirelessly to ensure that our physics system is as accurate and efficient as possible. Currently, the Physics sub-team is working on improving physics performance on ROBLOX terrain, and ironing out bugs that have to do with object collisions. They’re also working on implementing a new addition to our physics engine that focuses on articulated bodies and realistic mechanical creations.
Every time you join a game, your client connects to a server, figures out the state of the virtual world you want to inhabit, loads all aspects of the level, then drops you in it. The Networking sub-team works to make sure this process is bug free, and just as important, fast. Currently, they’re experimenting with a “streaming” system, which means any level that you join will load as you play in it. Conceivably, this would make “join times” a thing of the past. Joining would be instant, and the level would load as you explored it, seamlessly and in real time. This has been an ongoing project the Networking sub-team has been working on, and they’re currently in the process of testing a nearly finished prototype. You’ll learn more about this soon.
Getting to it
Watching the Client Team work throughout the day is revealing–the majority of them are neck deep in code, or in ROBLOX testing environments (it seems like every time I walk by Kevin He’s desk, ROBLOX is open and something is exploding). This isn’t to say that it’s quiet; there is a high amount of in-person collaboration. Members meet individually to discuss solutions, and can often be found at grouped around single desks pointing at screens or jotting down thoughts on one of the many whiteboards found throughout the office. These are the people making big changes to a platform based on collaboration and teamwork, so it’s fitting that these qualities find their way into their work days.
The end of the day
It’s 5:49 PM, and Engineering Director Adam Miller adjusts his glasses and glances at his iPhone. Leading up the Client Team, Adam is very specific about the types of people who populate his growing division. He explains:
Every member of the Client Team can’t just have opinions, they have to be able to make those opinions into a reality. We have a healthy level of debates, but each idea is backed up with data and implementation. You can’t just say, “I think A is better than B,” because we’ll immediately ask you, “Can you prove that?” We don’t accept theories, ever. We demand data.