We released a podcast with Marc Di Luzio, ex-porter at Feral Interactive, now working at Unity to support Linux in multiple ways. At the time the full transcript was not ready yet, so here it is! Enjoy! (Also, transcripts take a considerable amount of time to produce, so please support our work if you find this useful, on LiberaPay).
BoilingSteam: Can you just tell us first how you got to Linux in the first place?
Marc Di Luzio: It’s a long story. I think it ends up being that for a lot of people so I am not going to go into the finite details. In school, I dabbled in it, I was building computers, being a bit of a computer nerd, so I dabbled in using Ubuntu installing that on random laptops, because it was the only thing you can get for free at the time. So that would have been Ubuntu, I do not know, 06 or maybe 04, the really early versions. So I remember dabbling in it a little, but I never really got fully into it. I went to university and did a degree in a special effects and I don’t know how many people know this but in the film industry Linux is used a huge amount so programs like Maya and stuff that all run natively on Linux, so we kind of all just worked on Ubuntu there. So that was where I got more into it and it kind of grew from there. I learnt programming more and if you are a programmer Linux like, really feels like the right OS to be in. at least for me it does. I was never like a massive Linux user, at home it was still windows most of the time before I became a full-time developer. I stumbled in it, I enjoyed it, I liked a lot of what it stood for – Freedom – well at that time Freedom as in Free Beer more than anything else. (laughs)
BoilingSteam: In the film industry Ubuntu was a big thing, is it still the case nowadays?
Marc Di Luzio: Yeah. A lot the time actually they use, there is this variety of CentOS that you can get, that’s certified to have a set of libraries and software and things specifically for the film industry. I think a lot of companies use that. That would be CentOS 7 at the time, I guess now CentOS 8 literally just came out or coming out next week. That’s pretty much what they tend to use.
BoilingSteam: So you went to study special effects and I guess you went to programming in special effects, and then so did you go to work for Feral right after that, or where there are different experiences in between?
Marc Di Luzio: I did special effects for a Bachelors and I did a Masters degree in game development. I realized that programming was a passion. I wanted to convert, and I realized the film industry wasn’t quite where I wanted to be. I did a Masters to try and convert myself into games, which has worked.
BoilingSteam: Did you ever think about going in the game industry from the beginning, by studying some specific degrees for game development?
Marc Di Luzio: It was a combination for me of the degrees that were games-focused being pretty new, and not really looking that great, not giving much evidence that people got real jobs out at the end of them. I went to a few universities to check out their games degrees and I wasn’t impressed by any of the sort of stuff they were doing. Whereas the film industry, like in terms of being able to be creative and technical at the same time was way more mature at the time. The course I did was maybe 15 or 20 years old and had a lot of examples of great people who had come out of it, so I figured it was a better fit. And the second thing I think really is that my generation especially – maybe it’s less often these days – trying to tell you know your teachers or your parents that you wanted to work on video games did not really work. It’s hard to get people to believe that was actually a way to make money. Nowadays it’s obvious, it is the biggest industry in the world, but back 10 years ago it wasn’t as obvious I guess.
BoilingSteam: So you went through programming and game development. How did you end up at Feral?
Marc Di Luzio: I was just looking for roles. It’s weird, I joined Feral more because the location rather than I think a passion for porting (laughs). I joined as a Mac developer as well. I was hired just for porting. Then my expertise, well my experience, with Linux came in handy and that rolled from there. Also the technical aspect of porting games was fascinating to me. I already wanted to dive into that low-level stuff, exactly how games were made. I think if you go to a games company you might start working on things like gameplay like high level code design, or designing how a gun feels to shoot or programming it for someone else who did the design. It’s not the same experience. Whereas porting felt like an opportunity to see the inner workings of so many games that I really like, and learn from that.
BoilingSteam: At the time when you joined Feral what was your background in terms of skills. I guess you probably knew OpenGL and you were also programming in C or other languages like that?
Marc Di Luzio: I’d used OpenGL at university on special effects stuff – a small amount of graphics programming in OpenGL and I learnt C++ programming. The game development course I did was taught almost entirely in C++. I had self-taught scripting languages like Python, but most of my school was about C++ or at least like a relatively like C-like C++ but didn’t really delve too much into the bits of C++ that a lot of people do not like.
BoilingSteam: So you had no experience whatsoever in porting at the time?
Marc Di Luzio: Yeah, I’d never really had an experience with that level of game porting. I’d worked on making little games myself and I’d got them to work on Linux but that was easy, I was using SDL and it just worked. A very different experience.
BoilingSteam: So when you arrived at Feral, what kind of company was it? Which year did you join Feral?
Marc Di Luzio: I can give you the year though I probably won’t go into detail about anything else. That would have been 2014 maybe. About six years ago.
BoilingSteam: I guess you worked on porting several games to Linux. When did you start getting involved in Vulkan, what brought you to Vulkan? Is it because Feral was starting to experiment with it?
Marc Di Luzio: For me, personally, my motivation to get something like that happening – I can’t speak for Feral. My motivation for using Vulkan was massively because trying to optimize performance on OpenGL was (and still is probably, I haven’t done it in a while) a complete nightmare. OpenGL was never an API that was intended to do the level of games that are coming out these days. I think, if you are designing a game from scratch and you tailor everything you do towards the features in OpenGL 4.5 or even 4.6 now, you can get a reasonably performant game, but you really kind of end up struggling with OpenGL in the later stages because if you have not started from the ground up exactly the right kind of multi-threaded stuff, which is now viable a bit in OpenGL… it’s not even it’s not even the features of the API that are an issue. A lot of the drivers specifically do not really allow you to go fully multi-threaded. They’ll pretend to do it, but actually internally they will just lock up or they won’t sync properly. You are kind of limited on the CPU side no matter what you do, because you have to you have to keep feeding the driver a huge amount of state information with OpenGL and then the driver’s got to be constantly trying to figure out what the fastest way to render this triangle is based on the little hints you’ve given it. Whereas Vulkan is an API that lets you explicitly say exactly what you are doing and fully control what the driver’s are doing.
BoilingSteam: That’s why you are able to get a better performance out of Vulkan.
Marc Di Luzio: Yeah. It’s a bit, I guess “nebulous” is the word. It’s a bit hard to describe without going into the full APIs but definitely the level of control you have with Vulkan is something that especially when you are optimizing performance, is really needed. Feature wise Vulkan doesn’t offer much more than what OpenGL currently does. It’s just that the way you give the driver your graphics information in Vulkan is just a lot more explicit, which allows you to optimize for performance way better. Also the multi-threaded nature lets you properly multithread, which OpenGL allows for a little bit but doesn’t really unlock it in the same way.
BoilingSteam: So was the learning curve very steep from OpenGL to Vulkan?
Marc Di Luzio: Yes for me personally, it took a while. You can look online at the Vulkan spec and get an idea of how long it takes to learn the thing just by, kind of trying it yourself. It’s a big beast. I think because I am not a strongest graphics programmer really – that was never my forte, I am a generalist, I kind of get the bigger picture more often than not – Vulkan is quite hard to get into even these days. I am not sure anyone in the world really understands the whole thing really! (laughs). Even some of the best Vulkan programmers in the world will joke that nobody in the world actually understands the synchronization model in Vulkan fully, just like quantum physics. They do not really understand the entire thing. It’s just complicated.
BoilingSteam: What ports did you work on when at Feral?
Marc Di Luzio: Every single Linux port up until when I left.
BoilingSteam: So you joined less than a year ago Unity after Feral. What prospects led you to move to Unity?
Marc Di Luzio: Someone asked me at that time (that may have been Liam from GOL) what I was going to be doing next. I did not want to say where I was going, because well it’s just like you do not really reveal this kind of things immediately, but I think the phrase I used was “I wanted to make bringing games to Linux even easier”. That was the primary motivation, because I feel like one of the issues Linux has is that, yeah, like bringing the games to Linux in some respects can be fairly simple, for like game engines, but if the workflows just aren’t quite there, if people’s understanding of like the small nitty gritty things that might go wrong isn’t there or it’s not fully explained correctly, then Linux isn’t going to get these games because the developers aren’t going to have the knowledge or the know-how or the expertise really, whatever you want to call it, to actually get the game on Linux. I feel like one of the best things to do right now is to help developers work on Linux. Whether that’s like in the desktop space where you you could be working on making Ubuntu a great desktop so it’s easy for developers to use or in my case like making sure that the Unity Editor itself is targeting Linux well and people can use it on Linux.
BoilingSteam: So are you working rather on the Unity editor client only or more on the compiler to target Linux platforms?
Marc Di Luzio: Both and more other things as well. I am not on either one of those teams. It’s complicated. My team is called System Engineering and at Unity we focus on a lot of things. A lot of what we do is making sure that the released versions of Unity work great for everyone and that involves a lot of different parts of what you might call improving the quality of a released version, basically. So that’s like bug fixes or testing or implementing testing or optimizations or anything that fits into that framework. There’s more to it, and our team does other things, but that’s kind of the best way of explaining it. My main focus is the Linux side of that but a lot of what I do is cross platform as well, it’s going to help everyone.
BoilingSteam: Do you also happen to work on the Vulkan backend?
Marc Di Luzio: Unity’s a big company so I’ve touched that code but that’s not my specific role. We have people doing Vulkan programning.
BoilingSteam: So you were not hired to help with the Vulkan side of things as a graphics programmer?
Marc Di Luzio: No, definitely not. I think I wouldn’t have gotten the job if that was the case (laughs). I know how gaming on Linux typically works, so that’s a pretty good knowledge base, but I don’t delve too deep into the graphics code.
BoilingSteam: Can you tell us a little about what kind of company Unity is, and how people work in the Linux side of things?
Marc Di Luzio: I think that one I will have to pass on! (laughs).
BoilingSteam: How about Unity as a company itself, can you give us some sense of how big the company is?
Marc Di Luzio: It’s a lot bigger than Feral (laughs). It’s a different experience as well. A order of magnitude more devs. So many facets. If you think about Unity as a whole, Unity is, as you said before, like it’s a player, it’s an editor, it’s all these services surrounding it to help developers make games. Everyone is trying to make those as easy to use as possible, to “democratize game development”. I think there’s a quote from JR the CEO that feels for me like a thing that we internally embody. We try to make sure that more people can create stuff. For me that means more Linux people create stuff. At the moment when you try to make games on Linux there’s a narrower band of what you can do compared to Windows. It is a big place but I feel the head’s in the right place.
BoilingSteam: Until recently the Unity Linux client was available as a beta version. What is the current status of the project?
Marc Di Luzio: Just to be exact, it was experimental before. It is just the naming we were giving it basically. You could call it alpha maybe but really experimental is the proper way of describing it. Recently with 2019.1, we have promoted that build to “preview”. Preview at Unity is kind of equivalent to beta. It is not quite finished yet but it is coming. We said that we are bringing the Unity editor from experimental to preview, which means we are now on the path to make the Linux version an officially fully supported version by the end of the year. That’s kind of the goal. Nothing has changed on that. That should mean that it sits alongside the Mac and the Windows versions, exactly the same. Whereas before, you needed to get the downloads from the forums, it had loads of issues. Now with the preview status you can just download the Unity hub for Linux and just install the editor through that, and everything should work pretty well.
BoilingSteam: I had a more general question regarding the overall market for game engine, middleware and so on. So right now let’s say you want to design a game there are two main options on the table: Unreal Engine and Unity. What are the differences between these two?
Marc Di Luzio: To my understanding, at the moment, Unreal sits at the higher-end AAA space, usually. And Unity was more focused on the middle of the road, the indie work and the normal sized developers. But if you think about the market, the really top-end AAA stuff right is almost entirely custom engines. We’re talking Ubisoft’s engine whatever that is called, Battlefield’s engine Frostbite which isn’t like a publicly available engine. They are all these other in-house built engines, or kind of more closed. At the moment there is just way more overlap now between Unreal and Unity and what the engines can provide. Unity is doing a lot of work to improve the performance, provide new ways to think about performance in games. The data-oriented tech stack or the entity component system, are new ways to think about performance in games. They are very different but very powerful tools. In terms of graphics, we’ve got things like the HD render pipeline, things that bring Unity up to kind of AAA standards you would expect from a game engine. Those are all pretty much usable right now, though some are in preview.
BoilingSteam: For a little while now, among the different frameworks you can use to make games, there is Godot. It has been labeled as a Free Software version of Unity. Have you had any experience using it or seeing it in action? What do you think about it?
Marc Di Luzio: I tried it out. I really like it. I am really happy that there’s a Free software engine out there with the sort of quality that Godot has, such as people can make games with this engine. It is so much work to make an engine and have the tooling to let people really make money using that tooling. It’s impressive that Godot can manage to do that really. All power to them.
BoilingSteam: About Unity… we know that there’s especially on Steam a large percentage of games made with Unity, between 70% and 80%… because of all the Indies games out there. For many of them, while Unity has a function to export to Linux, unfortunately we do not see actually that many clients for Linux. Last time I looked it was maybe 10 to 20 % of Unity games that have a Linux client by default. How do you explain this situation and what’s your take on that?
Marc Di Luzio: So, I think if you actually did the math, if you studied how many of the developers have access to someone who knows Linux, and then take away any developers that can’t afford the time because they are indie developers, they are just trying to make ends meet and Linux isn’t like a guaranteed payment. If you do the maths on that you probably end up with the percentage that you just mentioned. I think the reason that there’s you know less Linux games with those Linux versions even of an engine that can for the most part export a game to Linux and it should mostly work. A lot of that comes down to the same reason why not all games have come to Linux: the lack of expertise in the space, I think it is pretty rare that you find people who know Linux well in the gaming space. People don’t have the time to test it fully because they want to make sure they are tested. You can get the community to test the Linux version, but typically a publisher wants to review the version of the game before the game gets shipped and some publishers do not do Linux reviews, because the publisher doesn’t have any Linux QA people. There’s a lot of problems related with the lack of a desktop market share.
BoilingSteam: Do you think there’s a space for more companies to do QA for Linux instead of having every publisher or every developer test games by themselves? Is there a space for a small company like Feral, that would just do QA on Linux – when someone wants to ship they can just like exported their game to Linux, and ask that company to test it and make sure it works in exchange for service fees?
Marc Di Luzio: I’ve heard a similar idea pushed around a bit and I’ve discussed it with a few people as well in some level of detail. You need to show that it’s a viable business. We can just play with some numbers. So if you you’ve got some QA people that you want to pay above minimum wage – because you should obviously – that’s gonna be like twenty to thirty dollars an hour per person. You add all the equipment stuff and how long it takes to test some games which is like twenty to fifty hours total. You need to do that almost for every release as games these days release new clients every month. This thing can cost like a thousand pounds per release. And the thing is, it costs the same amount to test it on Windows because it’s the same amount of time, same amount of people. For Linux, it probably doesn’t add up. Which means it’s a risk and indie developers are very risk-averse for this sort of stuff. They want to make sure that they get their game out. What does work sometimes is they release the game on Windows first and then like a month later, because they sold well, they can decide to invest a bit more. Actually like that you can see that happen a lot. So you have an internally proven the game sells, so they can see it’s going to sell X percentage on Linux which is still going to make their money back. But it is very hard. I wonder if the margin is high enough to make it work. I am not a business guy, so I would love if someone did it and it worked. If anyone out there wants to try it, go for it. But don’t come crying to me if it doesn’t work!
BoilingSteam: Are there like technical reasons that make sometimes porting games to Linux hard? I have heard before by talking with a bunch of indie developers usually when I go to events, there’s a few of them who definitely mentioned that they are using some specific middleware, and unfortunately that particular one doesn’t have a Linux client. So they say they are kind of stuck when it comes to producing a Linux client. Have you also heard about this?
Marc Di Luzio: I do not know exact numbers on this whole thing, but Middleware is usually like a big part of why games do not come to Linux. Typically, it’s because early on the developers are not really thinking about publishing to Linux and by the end it’s too late and the amount of work it would take to swap to another middleware provider is just not viable. That’s pretty common. That should be getting better though. It is the type of thing that I hope the work I am doing doing at the moment on Linux is going to help. Especially having a Unity editor on Linux should make authoring the type of content a bit easier. There’s some middleware out there that should be perfectly viable on Linux. They just do not have the time or the money to put into doing their own port. There’s a few other things that make it not like a complete plug in play. Things like video formats can go wrong, but that’s usually very easy: you just re-encode the video. If you’ve integrated with something like Xbox Live for achievements, and you are not doing like a Steam game on Linux, it’s a little harder because there’s no OS specific API for doing that sort of stuff. But those aren’t insurmountable problems, it’s definitely middleware where you basically have a game that just won’t come out on Linux because there’s a middleware that just will not work on it.
BoilingSteam: You mentioned before you were interested in bringing more games to a larger Linux audience. What we’ve seen happening since the middle of last year with Proton from Valve and CodeWeavers and a bunch of other people working on it is going in the same direction. We’ve seen you expressing your opinion about Proton on social media channels here and there and you’ve been apparently fairly positive about. What do you think about it now?
Marc Di Luzio: Yeah I guess I’ve been fairly positive. But that comes with a fairly big caveat. I wrote an article a while back about it. I was in the middle of making this video about native Linux games and I was showcasing all the native Linux games I knew about, and how great it was that they were on Linux, and then I was about maybe two-thirds of the way through that, and Valve released Proton (laughs).
BoilingSteam: Was it really secret? I know there were a bunch of people working on it and I kind of heard about it indirectly while it wasn’t confirmed yet. I was wondering for people like you, was is really a surprise or did you expect Valve was working on something like that?
Marc Di Luzio: Well… no comment on any direct knowledge. I can’t comment on that. But I definitely saw the writing on the wall, that WINE itself could become something better years ago. I had a kind of a feeling that someone would come along and make a much better graphics driver for WINE basically.
BoilingSteam: When did you get that feeling that this might happen?
Marc Di Luzio: It was years ago. It was more that it looked possible to do. Especially with Vulkan coming out. It’s because Vulkan is a lower level API and the way WINE works – maybe I get this entirely wrong and someone with more WINE knowledge could correct me – but the way wine works is that it either has a direct driver in Mesa that’s basically a DirectX driver or it translates the calls over to OpenGL. I can’t remember if it really does that or not, I think it was just all Gallium so it’s just a straight translation. The point is if you could use Vulkan to kind of put all the DirectX stuff on top of, that seemed like it had potential.
BoilingSteam: It’s funny that it did not come from the WINE team itself. It took take somebody else with deep knowledge of both graphics APIs (Vulkan and DirectX).
Marc Di Luzio: It really needed someone to focus on WINE. I think Codeweavers was more focused on the desktop experience of WINE, making sure that Photoshop works for example.
BoilingSteam: Actually it does not work!
Marc Di Luzio: It doesn’t anymore, does it? It did work a long time ago…
BoilingSteam: You said earlier you had a positive outlook on Proton with a caveat?
Marc Di Luzio: It’s pretty nuanced. There are worries about Proton, there are legit concerns. Anyone with half a sane mind should have these slight worries. Whether you weigh them more than the benefits, that’s the question. Everyone agrees that the cons are a thing and it is likely there will be less native ports, and there’s a risk the Proton ports won’t be as perfect as a native port could be. We won’t get multiplayer games that work properly because of, you know, anti-cheat. That it will kind of become the second class that is kind of compatible with Windows games but isn’t really. There are these issues with companies just outright banning people using Proton.
BoilingSteam: My point of view as a gamer… we’ve been waiting for native Linux clients to be released and unfortunately it’s been stagnant after several years. You can definitely justify it by saying the market is not big enough, and therefore you cannot support having twice or three times more games. Therefore if you are thinking from a gaming standpoint, Proton looked like a good solution, even if it’s not perfect. At least you get to a point where you get to play a lot more games that you could until now. I think that is why Valve saw it as intermediate solution until the market can grow.
Marc Di Luzio: That’s definitely the feeling that starts the positive outlook. It’s where I am leaning on these days. The market needs to grow and nothing else was really working, so the nuclear option is what needed to happen. And it has happened. And… it’s the best! I am now playing for example Elite Dangerous a game that I’d basically knew would never come to Linux after they promised it originally – but it just never happened. I am just now playing it and I swear the frame rates are even better than on Windows.
BoilingSteam: Are you sure?
Marc Di Luzio: It just seems to me. Games like Rocket League… I am pretty sure that if you put D9VK on to Rocket League right now through Proton, you end up with what seems like a better frame rates than Windows. It still crashes but that’s insane! There’s plenty of games released recently that work well, like Sekiro just working out the box the first time pretty much. Rage 2 straight up with a single patch. It’s crazy days to be a Linux gamer. There are some games that do not work but now we are completely spoiled for choice. There are just so many games you can play right now. I would be happy with this many to be honest. You look at it and about half of the top 1000 Steam games are pretty much fine. Another 150 apparently according to ProtonDB are gold which means they need like a workaround or something. That’s way better than being on console. On console you have a small amount of games, now we have a billion games. There’s a huge amount of positives. I am a bit scared that things like the Windows Store games are never going to work with Proton.
BoilingSteam: And same for the Epic Stores Games I guess?
Marc Di Luzio: Apparently they work. Apparently Subnautica works fine in Proton on the Epic Store itself. So apparently Proton unlocks Epic Games as well for us which is a very strange concept. Maybe Epic would add Proton to the Epic Store… I do not think they would, given the competition. It’s promising times. It’s really exciting. I think we are more likely to get a lot of good out of this than bad.
BoilingSteam: Do you think it’s more likely now that Valve may come up with Steam OS or whatever they call it, with a console where it may make more sense now?
Marc Di Luzio: Because I work for Valve as a contractor I am not sure I can answer that one. It wouldn’t be fair on Valve and somewhere someone may think that I’ve spoken for Valve. My personal opinion is… I would buy one of those without a second thought.
BoilingSteam: About the caveat that you mentioned before, the risk that we may have less native Linux clients in the future… That doesn’t seem to have happened yet. We have not had many native clients in the first place, so do you think that this is really a risk or more of a concern that may not realize itself?
Marc Di Luzio: I am pretty sure it does. I think it’s not even a risk. I think that’s just a thing. In the short term, in the next like couple years there will be less. Obviously the goal is for the market to grow, which would make more room for them. It’s less native clients percentage-wise as well in a way, so people are putting less money into native games, which is bound to do something to the viability of actually porting native games. But I am not a business guy. The question is whether it matters that much for Linux as a gaming platform. It matters to me because I have friends who do it as a job and they might lose their jobs. But objectively it doesn’t matter that much, I don’t think, in the short term.
BoilingSteam: The biggest risk – it may be happening already – is linked to dilution. Because there were very few games that you could actually buy and play, so whenever Feral or other companies were releasing a new port, that was one of the very few AAA games you could actually get. They probably had some expectations as to what kind of sales they could get from there. Now you can buy pretty much half of the Windows games available and run them. Whatever market is out there on Linux is now diluted over a much higher number of games. So the amount of return you can get on a single title is bound to be less. It is putting some boundaries as to as to how much return you make on a single port.
Marc Di Luzio: It’s just math. There’s all these opinions you can have about it, but as you just demonstrated it’s just math. It’s sad to see that happen. It’s kind of melancholic because I am sitting here playing Elite Dangerous at 120fps on Linux for some reason – because magic I guess! When the kind of the job that I used to have might be less viable because of the math basically… nobody can argue with math.
BoilingSteam: At the same time it seems like Feral is pivoting towards more Android and iOS ports. That’s the way they can probably keep surviving without relying on the Linux part of business as much.
Marc Di Luzio: I do not really know, I probably shouldn’t comment I guess. I wish Feral all the best in that respect. I hope they can carry on what they are doing.
BoilingSteam: What do you think about the Mac part of it in this space? The Linux ecosystem has been exploding for a year now in terms of the amount of games you can play and the Mac seems to be stuck in a hard place in comparison. Since you were also a Mac porter, what do you think of that?
Marc Di Luzio: I was never a Big Mac user. I am not fully in touch with the Mac gaming scene. But it’s similar to how Linux used to be where you basically need to dual boot to play games. If you look up online “how do I play Prey on Mac” there will be a YouTube video and it’s literally Bootcamp. I find that gaming space odd. I wish Mac had more games but it doesn’t seem like Valve is pushing to try and change that on Mac in the same way they are doing on Linux.
BoilingSteam: Apple controls the Mac, but Linux is something Valve can decide to shape into what they want.
Marc Di Luzio: Yeah definitely. On the other hand the Khronos group has MoltenVK, the Vulkan over Metal implementation that you can use on a few games. It’s not complete but some games are running on it, such as the Valve games use it yeah and a few other games. I went to Vulkan event last week, and they were showing a few titles using MoltenVK, so it’s being used. That has a lot of potential because Mac is Apple’s Metal API has kind of locked out a lot of people from really developing games for Mac, apart from if they are using something like Unity. MoltenVK could be a huge boon for them in a way but it’s definitely gonna be harder to use.
BoilingSteam: Talking about Vulkan adoption. Vulkan has not taken off as much on the Windows space. What do you think is going to be the adoption of Vulkan in the future? Right now we do not see that many games on Windows using Vulkan yet, with the exception of id Software. Do you think it will ever be a competitor to DirectX 12 or 11 or that’s going to remain a secondary API used for specific projects or particular companies?
Marc Di Luzio: I think it’ll be interesting to see what happens. I wouldn’t make a decent prediction, but the thing with Vulkan right is that it supports something like 10 platforms. Even now with MoltenVK it supports Mac. So we are going to see it used for all of these games a lot, but I do not know how often they will use it on Windows. A lot of developers might just use the DirectX version on Windows, because they have to use it for Xbox One because Microsoft isn’t going to support Vulkan anytime soon. So they have to make a DirectX path if they are doing it on console anyway…
BoilingSteam: You could imagine a Vulkan to DirectX layer as well right?
Marc Di Luzio: Yeah that would be super interesting. I do not know how much that would be used, because there is no direct market need. But the percentage could go up as well because we see some things like Google Stadia, where as far as we know is entirely Vulkan powered. We saw Assassin’s Creed being played on it. That’s an Assassin’s Creed game using Vulkan. I do not think the PC versions are using Vulkan, but it means that the engine has a Vulkan version. I wonder if people will take the shortcut and use Vulkan on Windows as well. That’s going to be super interesting to see. I do not work in the Windows developer space enough to really gauge whether that’s going to be a big thing, so I am going to follow that one closely.
BoilingSteam: Coming back on what you said earlier, you being a contractor for Valve. You are supporting Game Mode. Can you talk a little bit about the tool, what it does and how it integrates into what Valve does?
Marc Di Luzio: Game Mode is actually a Feral Interactive tool that I worked on at Feral that we open sourced it while I was there. What it kind of is, is that Windows has this “game mode” thing when you are playing a game: Microsoft says it optimizes the game and your PC for games. Game Mode shares the same name unfortunately but that’s how it is. The Linux version of Game Mode is basically the same type of thing. That’s what the aim of it was, there’s a set of optimizations that I knew about that could be applied to the system to make it tailored towards games. It’s a very simple tool, you can just apt install it these days with Ubuntu. A lot of people have put it into various different repositories. You install it, you need to change your steam launch arguments to preload the game-mode library into it. Feral games use game mode from the game itself. Any developer can do that, but I’ve never tried to get anyone else or actively seeked anyone to try and get them to include in their game.
BoilingSteam: Steam does not include it by default right?
Marc Di Luzio: No it is not included by default. You just add this one line to the Steam launcher, and when you run the game it requests game mode, the game mode Daemon runs some optimizations, giving it higher priority, so that the loading times might be a little bit quicker. These are like a minor sort of optimizations. You will get a few FPS out of it maybe. There’s a few nice things that I put in there, so you can actually use it to automate GPU overclocking as well. Typically you do not need to GPU overclock these days, but you can get another couple of FPS out of it especially if you’ve got a nice case where you’ve cooled it enough and you are willing to sacrifice a year of life time off your graphics card for just a few more FPS. You would think it’s a bit silly but a lot of us do it. I have done it, over-clocking is still kind of a thing even in the CPU space. CPUs have turbo clocks and you shouldn’t overclock a CPU really… You can set it up with custom scripts as well so you can just give it a bash script that sets your chat client status to “I am in a game” or something. It’s nicely customizable. It’s a fun little tool.
BoilingSteam: Is there a reason why Valve is funding this development of this tool while they are not actively using it?
Marc Di Luzio: It’s more like a tool on Linux to improve the gaming experience and that’s what Valve are trying to do right now, right?
BoilingSteam: But is there a reason for them not to include it by default for Steam for Linux clients?
Marc Di Luzio: They can’t include it by default with Steam because the daemon needs sudo privileges to do some things and Steam itself doesn’t. If I just dumped it in the Steam client, people wouldn’t like that.
BoilingSteam: So it’s the main reason?
Marc Di Luzio: No, it’s just one. I think I cannot really explain the other ones… No comment (laughs).
BoilingSteam: Last couple of questions. We see a lot of concentration of resources around Valve – they are practically leading the world of Linux gaming right now with Proton and more. Do you think this is a good setup? Do you feel it’s a risk that a single company spearheads everything?
Marc Di Luzio: If you look at the Linux space as a whole, not focusing on gaming only, a lot of companies are putting money into improving Linux. Let’s take Intel for example developing Clear Linux. Or Canonical being funded by different companies. There’s Collabora which is a conglomerate of developers who are paid to do work on Linux by a large amount of different companies for whatever they need at the time. The desktop space in Linux in general is being funded and helped by a lot of big players already. You are right that that Valve seems to be the focus on the gaming side, but anyone else could jump in and honestly I think we all hope that someone else also jumps in to help out. One of the best things about this is that all these projects are open source. F-audio by Ethan Lee, Game Mode, the open source drivers, DXVK, Proton… all this stuff is fully open source. So if Valve just stopped we would still have all this stuff. I do not see it as a huge risk. I wish more companies get involved, but it’s a very hard thing to do. You need the expertise to understand what work needs to be done.
BoilingSteam: Do you think Google Stadia is actually just that, them reaping some of the benefits of the work that’s been done to maybe to implement some kind of system that would be streaming games from their servers?
Marc Di Luzio: Google Stadia is what appears to be a closed platform. I wouldn’t be surprised if a lot of what they are doing is just closed stuff. Would they be using the Mesa drivers? I don’t know. Probably not. We have not seen Google do a lot of commits into Mesa, have we? So I am going to assume they are not using those. I do not know if that side of things is going to massively benefit the Desktop Linux space. Because it’s a very different experience – one is like the desktop space with like a window and any graphics card under the sun and a load of drivers. Google Stadia is this one thing akin to your console experience. But we should see some benefits from it. Typically the knowledge around Vulkan and how it works. That should spread around the games industry.
BoilingSteam: One last question. You mentioned you are playing with Elite Dangerous these days. So what kind of games do you like playing? If you had no limit?
Marc Di Luzio: I mean like we basically have no limit now to it. It feels like that sometimes. I’ll go into my Steam library these days and pull it open and see all these games that apparently just work. It’s crazy now. I play a ton of Rocket League and that’s pretty good fun. I like games that respect my time. Elite is a perfect example of that where it’s massively aimless. There’s no real plot, it’s not real, it’s not forcing you to do stuff, it’s not forcing me to log in every day and unlock a new thing or like give it loads of money for whatever reason like all these other games. There’s no loot boxes. Rocket League obviously has these things, but I do not care about them at all. I just ignore them, I just play the game. Rocket League is one of the few games around where the core gameplay is exactly the same and hasn’t changed. It’s a bit like riding a bike. No matter what bike you buy it’s still just going to be riding a bike. I used to play out of MMOs but these days MMOs demand your time too much.
BoilingSteam: Thank you again for your participation today! Any closing comment you would like to make?
Marc Di Luzio: Thanks for having me, it’s a pleasure, and I guess a closing comment would be to try out Game Mode. I always need people to actually test the changes I make – I only have like two computers to make sure it’s working okay. It’s always nice to have people who can contribute just by like downloading a bit of software and trying it out!
I would certainly encourage you to try out Game Mode as well. I activate it myself as I launch Steam (you can do that very easily nowadays with launch options). Don’t forget to leave some feedback in case you encouter issues!
BoilingSteam lets you access our content for free, but writing articles is a constant investment. We don't use ads or sponsporship, help us make our activities sustainable by donating via Patreon or LiberaPay if you prefer it anonymous. Note that Patreon supporters get the weekly or twice-a-week Proton Deals Newsletter to help them save time and money when buying games for Linux. You can follow what we do via our newsletter, our RSS feed, our Mastodon profile or our Twitter feed. We also have Peertube and Youtube channels. If you'd like to chat, you can also find us on #boilingsteam:matrix.org.