Confused on Steam Play and Proton? Be sure to check out our guide.
We do often include affiliate links to earn us some pennies. See more here.

Unity 2019.3 is now out - adds Google Stadia support and IL2CPP on Linux

By -
Last updated: 28 Jan 2020 at 11:15 pm UTC

Another big new release of the Unity game engine has today been released with 2019.3, full to the brim with massive tech enhancements.

On the Linux side, which we're most interested in, is finally the inclusion of IL2CPP support (a Unity-developed scripting backend) on Linux builds of games and applications. Linux missing this caused issues for a few developers, so hopefully now publishing Linux builds with Unity might be better. Unity say that IL2CPP can increase the "performance, security, and platform compatibility" of Unity projects. OpenGL and Vulkan especially saw plenty of bug fixes too.

Sadly, this was supposed to be the big release that also made the Linux Editor properly official and supported, which was delayed previously however they still "expect it to be fully supported in 2020". Seeing that will be a nice boost, knowing that Unity game development on Linux will actually be welcomed. Aside from that, sounds like a pretty amazing advancement of this extremely popular game engine.

YouTube Thumbnail
YouTube videos require cookies, you must accept their cookies to view. View cookie preferences.
Accept Cookies & Show   Direct Link

The Unity team also made a brand new short-file to show off some of the advanced rendering features now available with 2019.3. You can watch The Heretic on YouTube.

One of the interesting additions is proper Google Stadia support. While it's Debian Linux in the cloud, it still requires a few special bits done and Unity supports the Stadia special features like State Share and Stream Connect on top of YouTube and Google Assistant integration.

While 2019.3 sounds fancy, it's a "TECH stream release" with all the latest bells and whistles so the Unity team recommend waiting for 2019.4 which will be a LTS (Long-Term Support) release which will arrive this Spring if you're wanting to update a live project. Otherwise, jump on in for the latest goodies.

We also went over changes to their XR (Virtual Reality, Augmented Reality etc) in our previous article as Unity will be dropping support for built-in XR, instead going with a plugin system. Valve will develop their own OpenVR Unity plugin for SteamVR.

See the official blog post here and feature highlights here. For an actual changelog, that's here.

Article taken from GamingOnLinux.com.
19 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly checked on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly. You can also follow my personal adventures on Bluesky.
See more from me
The comments on this article are closed.
All posts need to follow our rules. For users logged in: please hit the Report Flag icon on any post that breaks the rules or contains illegal / harmful content. Guest readers can email us for any issues.
19 comments Subscribe

Shmerl 28 Jan 2020
Did new Unity finally start using Vulkan on Linux by default? For some reason VtM: Coteries of New York is using OpenGL, but adding -force-vulkan starts it with Vulkan renderer.


Last edited by Shmerl on 28 Jan 2020 at 3:26 pm UTC
Marc Di Luzio 28 Jan 2020
  • Game Dev
  • Supporter Plus
Did new Unity finally start using Vulkan on Linux by default? For some reason VtM: Coteries of New York is using OpenGL, but adding -force-vulkan starts it with Vulkan renderer.

It's still OpenGL by default unless the game developer specifies.
Shmerl 28 Jan 2020
It's still OpenGL by default unless the game developer specifies.

They still haven't stabilized the Vulkan path?
tuxintuxedo 28 Jan 2020
It's still OpenGL by default unless the game developer specifies.

They still haven't stabilized the Vulkan path?
I believe that's not the important part. Vulkan is not an all-purpose API, many developers simply don't need it when they can choose OpenGL, even on Linux. So I don't see why it would become default.
Is DirectX 12 also the default for Windows users?
Shmerl 28 Jan 2020
Engine developers are not many developers. They should be using the best option, which is Vulkan, because other developers (who are actually making games) depend on that, to get better performance and quality.


Last edited by Shmerl on 28 Jan 2020 at 7:32 pm UTC
Shmerl 28 Jan 2020
So the safest default from a risk vs reward standpoint is probably still OpenGL. For now.

That's not necessarily what the end user might want (possibly safest), if it costs performance. At the very least, actual game developers should then expose in the settings what API to use, and default to OpenGL if they think Vulkan is still more risky.


Last edited by Shmerl on 28 Jan 2020 at 8:23 pm UTC
Shmerl 28 Jan 2020
That's due to the move to OpenXR, so expected?
Liam Dawe 28 Jan 2020
  • Admin
In other Unity news, OpenVR will be no more...
It's linked in the article, we already wrote about this.
Alloc 29 Jan 2020
  • Game Dev
Re: Vulkan:
I think mirv is pretty spot on: Currently it seems like it's very differently behaving depending on different parts of the equation, like GPU HW + driver, OS, etc.
Our game seems to run for some people with Vulkan just fine, for others it simply crashes. That's not depending on Windows vs Linux, not old GPU vs new or even the driver version, just "randomly" crashing or not. Could be Unity is (partially?) at fault by doing certain things the wrong way (both in shader code and how it talks to the GPU driver), but could just as well be totally on the GPU side of things ...

So the safest default from a risk vs reward standpoint is probably still OpenGL. For now.
That's not necessarily what the end user might want (possibly safest), if it costs performance.
Most people are frickin stupid. Sorry to be that blunt but that's just how it is. So if a user starts a game and it crashes he will not look for why it crashed, but he will give a negative review, spam twitter or what not just to tell everyone how the game is bugged, bad implemented or whatever :(


Re: IL2CPP:
Yet another thing Unity devs did just because they don't want to upgrade the .NET runtime to something more up to date. Managed code execution can be as fast as native code, just not with that old version of Mono which also never was that much optimized. Hope is they'll at some point get the CoreCLR in, which is supposedly way faster.
Problem with things like IL2CPP / DOTS / whatever special stuff they do: It's not completely generic. DOTS means you have to write code specifically for it, IL2CPP at least means you lose moddability of games (just thinking of games like Subnautica that were never meant to be modded but still get a lot of mods because people *can* do so) ... And while DOTS *might* have uses in certain situations to speed up code that can benefit from parallelization or CPU features IL2CPP really does not give that much benefit over just getting a good .NET runtime in that will benefit to *all* managed code you run, no matter if it's your own or third party libraries.

The only advantage in IL2CPP I can see: Devs who are really worried about others copying their code, as it's of course quite a bit harder with native code than CIL code.
Eike 29 Jan 2020
  • Supporter Plus
So the safest default from a risk vs reward standpoint is probably still OpenGL. For now.

That's not necessarily what the end user might want (possibly safest), if it costs performance. At the very least, actual game developers should then expose in the settings what API to use, and default to OpenGL if they think Vulkan is still more risky.

Mind that the players are not the customers of Unity...
As a game developer, I would want it safe first, for my reputation's sake.
(And as a Unity developer, I would want it safe first, for my reputation's sake.)
Shmerl 29 Jan 2020
Mind that the players are not the customers of Unity...
As a game developer, I would want it safe first, for my reputation's sake.
(And as a Unity developer, I would want it safe first, for my reputation's sake.)

Check for example Hedon. It's using OpenGL by default, but Vulkan is right there in the graphics options. Pretty doable, and it has a big warning that's it's an experimental renderer. I see nothing wrong with doing that. Often Unity ships Vulkan (SPIR-V) shaders, but for example Unreal often does not, unless you enable it explicitly. Developers should.
Alloc 29 Jan 2020
  • Game Dev
Check for example Hedon. It's using OpenGL by default, but Vulkan is right there in the graphics options.
Curious, you mean graphic options as in before the game itself launches (like in a game launcher) or really within the game?
Shmerl 29 Jan 2020
Check for example Hedon. It's using OpenGL by default, but Vulkan is right there in the graphics options.
Curious, you mean graphic options as in before the game itself launches (like in a game launcher) or really within the game?

Within the game settings UI itself, you can choose OpenGL or Vulkan (and it defaults to OpenGL). You can always modify the config file manually if you want too. I think it's using gzdoom engine.

Since what renderer to use is Unity setting, you can just expose it your game settings UI. Unity allows using -force-vulkan parameter for that (or you can find it in the config file as well).


Last edited by Shmerl on 29 Jan 2020 at 5:34 pm UTC
Alloc 29 Jan 2020
  • Game Dev
Check for example Hedon. It's using OpenGL by default, but Vulkan is right there in the graphics options.
Curious, you mean graphic options as in before the game itself launches (like in a game launcher) or really within the game?
Within the game settings UI itself, you can choose OpenGL or Vulkan (and it defaults to OpenGL). Since what renderer to use is Unity setting, you can just expose it your game settings UI.
Well, it's not *that* simple ;)
They most likely still have an external launcher (visible to the user or not), because you can only change the used renderer with a command line argument.
Shmerl 29 Jan 2020
Well, it's not *that* simple ;)
They most likely still have an external launcher (visible to the user or not), because you can only change the used renderer with a command line argument.

Doesn't Unity have a config file, which can specify the renderer? If you modify it from within game setings UI, the change should be persistent. At least it would be quite dumb for them not to support such feature.

Hedon is not using Unity btw, it's using Gzdoom. I just brought it as an example how it can be done.


Last edited by Shmerl on 29 Jan 2020 at 5:37 pm UTC
Alloc 29 Jan 2020
  • Game Dev
Nope, it's just the command line argument you named. That's why I said "launcher", your game could write its own settings file that a launcher reads and automatically pass the correct argument when launching.
Shmerl 29 Jan 2020
If it doesn't support storing the renderer option in config file, I recommend filing a bug for them. Any command line parameter should have equivalent config option exactly for the above reason (to be able to make it persistent from the in-game settings).


Last edited by Shmerl on 29 Jan 2020 at 5:40 pm UTC
Alloc 29 Jan 2020
  • Game Dev
That's not a bug report but a feature request. Have fun doing so, as if Unity Tech would listen to what their customers need (especially if it's not mobile related)...
Shmerl 29 Jan 2020
I'm still surprised Unity can't handle its parameters from the config file - that's such a standard feature.

Feel free to use better engines that allow you to submit merge requests :) I hope Godot will become better than Unity in some not very distant future.


Last edited by Shmerl on 29 Jan 2020 at 5:45 pm UTC
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.