Proper support for the Linux platform


#1

As a ROBLOX developer using Linux as their main operating system, it is currently cumbersome to develop and play on ROBLOX. Doing so either requires running ROBLOX in a virtual machine, which leads to sub-par performance in ROBLOX, or having to reboot every time the user wants to develop and play on ROBLOX.

As we all know, Linux’ market share is not as significant as that of Windows-based systems (2-5% based on what website you check, similar to MacOS’s market share). However, there are a few reasons I want to address why I think supporting Linux is important and feasible.

Developing for ROBLOX on Linux, in the current state
Currently there are three major ways of running studio. From most reliable to least reliable: Rebooting your machine into Windows or MacOS, running ROBLOX inside of a virtual machine or running ROBLOX under WINE.

All of the mentioned methods have some sort of downside when your main operating system is Linux. Booting your machine into MacOS or Windows rips you right out a comfortable working environment. Running ROBLOX in a virtual machine leads to sub-bar performance in ROBLOX and running ROBLOX under WINE basically crashes by only looking at it.

Linux support in Steam’s library
Other platforms are catching up with support for Linux, a good example of this is Steam. 3764 of the 16944 games released on Steam currently support Linux. This translates to roughly 22% of the games on Steam. That’s already a nice ramp up compared to a few years ago, but it’s maybe not quite impressive. However, similar to ROBLOX games, the top games are the ones that are more cross-platform than the others. When we look at the top games, we get this picture:


The games highlighted with yellow are the games that support Linux.

Current driver support
In the past, Linux was notorious for its driver support. Nowadays, you can pretty much install Linux on any random machine and expect it to work, given you’re installing a decently recent version. In the graphics department, AMD hardware works nicely with the open source stack provided in the kernel. At time of writing, this stack is maintained by both AMD themselves and VALVe. AMD does provide a proprietary driver that can be installed, in general, users seem not to complain about the drivers. On the other hand, nVidia drivers are still troublesome. The open source drivers work, but it is a must to install their proprietary drivers to get any decent performance on nVidia hardware.

Application distribution and supported APIs
Since games often rely on fixed versions of certain software libraries, it has in the past been troublesome to distribute games due to incorrect libraries being provided by the installation running on a user’s machine. Recent developments in the form of Snappy, Flatpak and AppImage have made it easy to distribute software that rely on very specific libraries.

Other than that, there are two major graphics libraries supported on Linux. OpenGL and Vulkan.

Support in Visual Studio 2017
Since the release of Visual Studio 2017, Visual Studio officially supports building to a Linux target. This works as you would expect from Visual Studio, debugger support that is on par with regular local Windows builds and all the other bells and whistles that come with Visual Studio.


#2

This has already been requested before – you can use the search to turn up some of these threads. The decision by the staff was that there weren’t enough Linux users to warrant support.

Regardless of how inconvenient this is for you, this would not be beneficial to the platform. Unless something significant changes, Roblox won’t likely support Linux.


#3

Why? Stop using Linux as your primary OS if you find it inconvenient to use.

ROBLOX support for Linux is counter intuitive and would probably degrade the platform. Having to modify the whole platform ecosystem to allow for linux support, accounting for future updates, QA, bug testing all have to be extended to yet another platform - and to what end? So that 0.01% of the Playerbase can have a slightly less inconvenient time?


#4

Just to clarify: note that this is in Studio Features, what OP needs is a more reliable way to run (at least) Studio on Linux-based systems. If there is a way that they can make it more convenient to run Roblox on Linux-based systems (albeit a workaround) that is better than the current Roblox+Wine or running it in a VM, that would resolve the feature request already.


#5

Yeah. You’ll have to get employees here to respond to that one :laughing:


#6

I’m not sure what you mean by a workaround, assuming it’s different from Wine or VM. We either port Roblox to Linux or we don’t, I don’t really see a middleground (apart from only supporting 1-2 distros which - if we ported - we would do anyway, I believe this is mostly how Steam works?)


#7

I talked to @CodeWriter about this at RDC US.

I think he said something along the lines of the market share not being significant enough for them to invest effort into supporting the platform. I don’t remember if that’s exactly what he said.

I don’t think it would hurt to push for mainstream Linux support, but it requires an industry-wide effort to do so.


#8

Yes, this is how steam works. They support SteamOS and Ubuntu, which are basically the same thing. Generally, software that is wanted by the users of distributions is handled by the community itself. A great example of this is the Arch user repository.


#9

Disclaimer: These are my own views, not necessarily those of Roblox.

I’ve thought about doing a Linux client port for a hack week project, but there’s a few things to keep in mind about this:

  • It’s a huge amount of effort to make a port like this, like I doubt I’d get even a buggy mess working within a single hack week.
  • The drivers are still super broken. Roblox runs into driver problems all the time on the platforms we support, and Linux drivers are much worse because they are not as well maintained.
  • There are a large number of Debian users, who have 3 years out of date graphics drivers on top of the drivers being buggy. These users would blame us for any problems they run into, not their bad distribution.
  • We directly use OS APIs, and the usage of these would have to be ported. This is a lot of engineering time, especially because on Linux there aren’t really “OS APIs”, there’s just a heap of libraries.
  • Porting Studio would be a whole extra can of worms on top of the huge effort of porting just the client.
  • Maintaining this support would be an ongoing headache and require continuous engineering time. Especially fixing / working around critical Linux driver bugs.

How would we even distribute a Linux version? It’s bad practice to have an installer like we do on other platforms, and there’s no “app store” on Linux. We would have to get every distribution maintainer to add a package. The package would have to install a launcher stub which downloads the Roblox launcher used for automatically updating the client. The distribution package manager updates far too slowly and does not allow for force upgrades, so we cannot rely on it at all.

We’ve tried to look into bugs related to Roblox not working well under virtualization or under wine in the past, but we’ve been pretty much completely unable to diagnose the cause of the issues. Many of the bugs seem to be caused on their end, not on ours.

I used to run Linux as my primary operating system, but I switched to running Windows 10 at the start of this year. These are the best solutions I can think of, if you can afford them:

  • Switch to Windows or MacOS
  • Buy a second PC
  • Build a PC designed for virtualization with as little virtualized hardware as possible. Specifically, use PCIe passthrough to a GPU for Windows.

@zeuxcg Steam ships its own sets of common libraries like libpng (with sane sonames and stuff) that games use. The actual client itself is shipped as a .deb package built for Ubuntu/Debian, and then repackaged for other distros by their respective maintainers. It’s also possible to just statically link literally everything (including libc, probably musl), so that the only dependency is the Linux syscall ABI.


#10

Sure, but Roblox can’t work like that - we need to be in control and push updates every week. So we’d need to support whatever distros we need ourselves.

And re: Steam, note that Linux on Steam is still 1/5th of OSX. This most likely just isn’t enough market share for us to make it worthwhile. If we could get native Chromebook support by doing that that’d be a different story, but that doesn’t work.


#11

I wAnT tO pLaY cOmMaNd LiNe RoBlOx

The only thing that would benefit from having linux support would be exploiting the game – just look at CSGO. I do not doubt that you have a windows computer, considering you’re an active developer.

Also, @zeuxcg, personally I have a chromebook and it worked fine with ROBLOX after using wine in developer mode. Only thing that didn’t like ROBLOX was my school’s internet.


#12

A small note about the distribution problem. Jagex gets around this by distributing their launcher using their own debian repository which then works via the exact same process as @Tiffblocks suggested.


#13

We directly use OS APIs, and the usage of these would have to be ported. This is a lot of engineering time, especially because on Linux there aren’t really “OS APIs”, there’s just a heap of libraries.

I’m just asking this out of curiosity, how are you dealing with this on Android and iOS?


#14

adjusts mic thank you, thank you… coughs… ahem…

Why do you use Linux?


#15

Personal preference, in just the same way as someone would use a mac over anything else. I could give a plethora of reasons why I prefer Linux, but I’m not going to. As history has taught me, it is a bad idea to go into personal preferences on the internet without starting a flame war, this is not the intention of the topic and I’m not about to make this happen. If you really want to know more you can either send me a PM me here on the forum, or contact me on Discord.


#16

As a person who uses linux a lot as well (though my main computer is windows), these are the reasons for me:

  • I actually have control over my computer, unlike windows, updates, telemetry, etc is hard to stop on windows. I practically broke my windows just stopping all the telemetry.
  • It can be more bareboned, so the OS itself will use less RAM.
  • one feature i like with ubuntu is that the OS stores applications you use in memory that isnt being used, and will clear automatically if you need more ram. This can speed up loading applications.

I primarily use it for servers and small projects like raspberry pi’s, etc.
I also have a bit of experience with gaming on linux, it wasn’t that bad thanks to steam handling a lot, but drivers were a pain for me personally.

Although Linux is awesome to play around with and run servers, I can agree with their points. I still do hope it becomes worthwhile for a port in the future.


#17

I kind of glanced over your 1/5th claim last night and I feel I have to correct you on that one. 3754 games on Steam have support for Linux and 5625 games have support for MacOS. I believe that’s not 1/5th. Note that in both search queries I ticked the games filter, I did this so the comparison only included games. Now when that games checkbox is unticked you get 7716 results for Linux, 12136 results for MacOs and 32569 in total. These last three queries include everything on steam (DLC bundles, software and etc). Again, 7716 is a far cry from being 1/5th of 12136. While looking at the numbers, I also think you shouldn’t forget that Linux got Steam support way later than MacOs.


#18

Yeah - going into pedantics about the market shares isn’t really beneficial for the discussion. ROBLOX doesn’t have any reason to put in the engineering time to port to Linux.


#19

Well maybe if they were smart then they would have built ROBLOX on Java…

(jk jk don’t hurt me)


#20

I’m not talking about the number of games - it doesn’t seem particularly relevant to me - I’m talking about the number of users: http://store.steampowered.com/hwsurvey