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.
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.
Last edited by Shmerl on 28 January 2020 at 3:26 pm UTC
Quoting: ShmerlDid 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.
Quoting: Marc Di LuzioIt's still OpenGL by default unless the game developer specifies.
They still haven't stabilized the Vulkan path?
Quoting: ShmerlI 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.Quoting: Marc Di LuzioIt's still OpenGL by default unless the game developer specifies.
They still haven't stabilized the Vulkan path?
Is DirectX 12 also the default for Windows users?
Last edited by Shmerl on 28 January 2020 at 7:32 pm UTC
Quoting: GuestSo 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 January 2020 at 8:23 pm UTC
Quoting: PatolaIn other Unity news, OpenVR will be no more...It's linked in the article, we already wrote about this.
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 ...
Quoting: ShmerlMost 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 :(Quoting: GuestSo 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.
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.
Quoting: ShmerlQuoting: GuestSo 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.)
See more from me