Engineering ROBLOX for the iPad

October

19, 2012

by Andrew Haak


Archive

ROBLOX iPadROBLOX isn’t your typical video game company. We’re unique in a lot of ways, one of which is our openness about what we’re working on and our plans for the future. Today, we’re happy to stop teasing and start going in-depth on our progress toward releasing ROBLOX for iPad.

ROBLOX for iPad will launch in a couple phases. First, we’ll update the existing ROBLOX Mobile app, which has been available in the App Store since 2011. The update will improve the visual style of the app and is optimized for use on iPad. It will allow us to test all non-game components of the ROBLOX app.

The following release, in which a significant fraction of our company is currently involved, will add the anticipated Play Games feature. We’ll let you know when to expect these releases in the future. In the meantime, keep an eye on the ROBLOX blog to learn about challenges our developers have encountered and overcome in pursuit of our ultimate goal: a polished, optimized, intuitive ROBLOX experience on the iPad.

Sticky Note Wall

Engineering tasks move from one end to the other on this living wall of sticky notes

Setting the stage: engine and library upgrades with David York

When you’ve created a large-scale, PC- and Mac-compatible platform using various engines and libraries – some of ROBLOX’s most crucial are OGRE (graphics engine), Boost (C++ library), RakNet (network engine), XCode (Mac IDE) – upgrading any of them has the potential to break something, somewhere down the line. We reserve these sorts of updates for times when they’re needed. Porting ROBLOX to iPad was such a time.

While engine and library updates were first made and tweaked in a test environment, they’re now deployed and quantifiably benefiting our iPad development. Not only have the upgrades given our developers things like new tools and better bug reporting, upgrading XCode from 3.2.4 to 4.5.1 has actually cut the Mac and iPad build time – the time it takes to compile ROBLOX’s code and libraries into a working program – in half. The team is currently building ROBLOX (around 1.88 million lines of code, libraries included) roughly five times a day, so going from an average of 20 to 10 minutes saves significant time.

XCode 4According to David York, lead engineer on ROBLOX’s iPad development, the process “broke a lot of things and we fixed them all. It was about a week and a half to get everything to compile again.” One of the blockers to error-free compiling was an overlap in function names between Boost and XCode. Function names in Boost can’t be named the same as those of the iOS source code, which required David to rename Boost functions.

This process enabled ROBLOX on an iPad, and has the side benefit of performance increases for the PC and Mac versions; David estimates a roughly 10% improvement, with much more to come.

Diving into the games

When we kicked off development of ROBLOX on iPad, we compiled a list of important ROBLOX games and then we tested them – 58% would load without crashing the app. These are not necessarily the most successful games; we tried to pick a sample that represented all the different types of games you can build on ROBLOX to make sure that all genres of games will work on iPad.

We’ve found that games with a large memory footprint – many of the role-playing game variety – were particularly prone to crashes. While we’re reducing the memory footprint of all games and profiling code to optimize resource-intensive areas (more on those in a future article), we’re also working with select ROBLOX developers to identify ways users can optimize their games and worlds to run well on an iPad.

ROBLOX Games in Testing

ROBLOX games in iOS testing; click to enlarge

The above screenshot is part of our spreadsheet tracking what games work on what devices. Our goal is to turn all the columns to the right green. Today, performance improvements allow 74% of these games to load without crashing. Crossroads, our go-to testing ground thus far, plays smoothly with multiple players and we’ve seen frame-rate increases of 50% in the level.

Toby Teel explains migrating web pages to iPad

ROBLOX is more than game-play; it’s also a social network, virtual economy and online store. Most of those features are web-based, and our Web Team has already started optimizing them for display on the iPad.

MVC Concept DiagramThis year, we started building ROBLOX web pages using the Model-View-Controller (MVC) framework. MVC separates the representation of information from the user’s interaction with it; or, as Web Team Lead Toby Teel puts it in more conversational terms, MVC separates the way things look from the functionality and data. This means we can use shared code to display pages in different ways. For example, the iPad version of the Builders Club page uses two columns, while the mobile site (for smartphones and handheld devices) uses a single column. Both versions use the same code base. This offers flexibility in displaying pages for multiple devices and formats.

When you browse ROBLOX pages on the iPad, things load quickly. Our web developers know what pages users will visit from the app’s home screen, and pre-load them when users launch the app. There’s no blank screen when you load the Catalog, for example, because the app already grabbed the data. It’s a small step toward a great user experience. You’ll be able to see it yourself in the updated version of ROBLOX Mobile.

One of the key challenges to porting ROBLOX’s web features to iPad is deciding what should be native to iPad – that is, designed from the ground up for the iPad – and what should retain the more traditional look of Roblox.com. It would be great to render all pages natively for iPad, but that would require replicating functionality and would double the support needed for all pages. ROBLOX pages are also widely connected (for example, a game might have badges, gear, game passes and more, all of which link to somewhere else on the site), adding to the challenge. Still, that’s the goal.


These are some of the few challenges involved in bringing a world-class ROBLOX experience to iOS and we’ll have more insight as more engineering work reaches completion. In the meantime, download ROBLOX Mobile from the App Store. The current app lets you do basic social networking and purchase Robux and Builders Club subscriptions using iTunes credits. Plus, you’ll receive an App Store notification when the new version is released in the next couple weeks.