Introducing the New Lua Game Details Page

Hey Developers,

Over the past year and a half, we have been working on converting all major pages in our app to Lua. Our most recent push was turning on the Lua Home & Games page to 100% across all mobile devices.

We are proud to announce that as of today, we have begun an AB test on iOS Phones for an all-new Lua Game Details page. This page will get users into your games faster and provide a more visually pleasing experience while users learn what your game is about.

Design Preview:

Here are performance comparisons between the current & new Game Details page. (This is using an iPhone 6 on our internal network. Load times may be impacted based on your own device & network.)

A Note on Game Thumbnails: We noticed while we were building this page that certain games round the corners of their thumbnails. To achieve this effect, they are coloring the corners white. We recommend that games do not do this as it is not considered best practice.

FAQ

Q: What’s next?
A: 2019 is going to be an incredible year for Roblox and our app. We have many improvements to this page queued up for the coming months. On top of this, we will continue our mission to move Web Views into Lua. The first pages on our list are Badges & Store in the Game Details page.

Q: Did you remove anything?
A: No, we just moved everything around.

Q: I noticed that some pages still take me to the old Game Details?
A: Due to our current native infrastructure, it would have required a high level of effort to have the navigation stack hook up to the Lua page. This is giving us more fuel to drive the conversion of all Web Views into Lua pages.

110 Likes

Aha, so that’s what those new textures in the content folder were for.
I’m liking the looks of this, keep it up!

6 Likes

hey, this is pretty epic!

5 Likes

surprised as to why you chose lua over c for something like that.

2 Likes

A 30% speed increase is nothing to sneeze at. Nice work :slight_smile:

3 Likes

Badges as in new ones introduced/system redesign?

I’m now curious about how you used the Roblox lua interface to play videos and if the same technology could be passed along to games.

6 Likes

Because it uses the same API that all of Roblox uses, it renders through the engine that we also use with some optimizations since a web app doesn’t need to run at 60FPS all the time. Lua webviews are easier to maintain than compiled ones or HTML/CSS/JS ones.

12 Likes

Great changes!

Are there any plans for a lua app for Desktop?

11 Likes

considering lua is made with c, it seems odd that lua would be chosen over a vastly faster language, even if it is compiled.

1 Like

One of the benefits of building the pages within the Roblox engine is that it lets us run into the same pitfalls and issues developers also experience. Any marginal benefit that can be produced from writing lua pages can be directly given back to the greater developer community and playerbase.

A great visible example of this is all the work done on the new UI backend has been tested throughly against these lua pages and the benefits of the new UI backend are experienced in your games as well.

And as the data in the original post shows, Lua is much more responsive than our old native webviews. :smiley:

30 Likes

We discovered a minor bug and will be rolling back the AB test for now. The AB test will be turned on in the next client version which will be next year.

5 Likes

Everything Lua = easy to find excellent talent from the community = reduced hiring churn/costs/etc = a more scalable company.

4 Likes

I wouldn’t say “vastly” faster. Lua is actually really fast for what it is. To do it in C would probably only improve the speed of the page by fractions of seconds so it’s not really worth it. This is my speculation at work but having used Lua to make standalone pages and executables before, it’s comparable to a lot of other languages for most things. I’m more curious about what made them run it in the Roblox engine because Rbx.Lua is much slower than its vanilla counterpart (although I guess that leads inevitably into the question of “why do it in Lua at all?” at that point so :man_shrugging:).

==>

That’s a benefit but it’s not really a reason. It would just be silly to build the app in-engine for the sole purpose of testing UI backend when there are assuredly better ways to do so.

Running stuff in-engine means they can use the same UI codebase across multiple devices, and they can fix issues they run into with Roblox’s engine to everyone’s benefit.

It isn’t all just UI, the avatar editor runs in-engine too.

I don’t really get what you guys are upset about.

7 Likes

Shows how far behind the app’s development I am that I didn’t know it even had an avatar editor. I suppose that makes sense. Wasn’t really upset about it, it just seemed strange at first.

1 Like

The avatar editor is the only page that lagged me in the mobile app, I’m assuming that the games page won’t lag as it’s not running any game simulation in the background? (if my understanding is correct)

2 Likes

Correct.

2 Likes