Our Fifth Podcast with Feral Interactive
Well this is already 2017 yet we have something left from 2016 to release. Our podcast conducted with our friends from Feral, that is! While it was recorded back in December, the different edits and the holidays in-between have somewhat caused some delays, but do not worry one bit: its content is still as fresh as ever.
So we had the chance to talk for over 2 hours with Edwin from Feral Interactive, and we kept a good one hour and a half of it for your listening pleasure. We covered a lot of ground together, and several of Ed’s answers provide great insights about what is happening on the other side of the mirror, the world of developers where the magic happens. While I would HIGHLY recommend you all to grab the podcast and listen to the whole discussion.
[podcast_episode episode=“2781” content=“title,player”]
Download: [MP3 File] | [OGG File] | Podcast RSS Feed
First before we review in more details a couple of points that Edwin raised during the podcast, let’s just pause a second and contemplate this: Feral is most probably the most active porting company on Linux, with 17 titles released so far in the past 3 years, most of them falling into what we should consider Triple-A titles (recently Tomb Raider 2013, Mad Max, Life is Strange, Total War Warhammer). You will notice that many of the 10 games we recommended from 2016 are actually ported by Feral Interactive. This is no mistake. Their selection of games to port as well as the overall quality and performance of their ports makes them the clear leaders in the Linux gaming world currently. This is also why we wanted to learn more about what makes them stand out.
The reason why we conducted this podcast in the first place was to better understand some key aspects:
- What was their motivation to support Linux.
- How challenging it is to getting games on par/close to Windows performance.
- How they feel about the Linux market and Linux users as a whole.
- How they see Vulkan and whether supporting it will be a lot more work from now on.
We did not really expect to have a discussion that would be worth keeping longer than one hour (after edits) but Edwin has been such a great source of information and very helpful to discuss in details many aspects of all these topics that we felt it was worth extending the final size of the podcast a little.
Before jumping into some specific details of what we discussed, it’s useful to put things on a map to get a sense of space. Feral Interactive folks are based in the UK, in the outskirts of London, as you can see from the below map.
There is a yearly well known event happening very close to Feral offices - the Wimbledon International Tennis competition. It’s really just a stone’s throw away from their workplace (less than a kilometer away), maybe they suffer from additional traffic when that’s the case. Anyway, Feral folks are located in a rather unsuspecting building. As you can see they are not in some kind of tower of a very large corporation. This gives you a sense of size and what kind of company we are talking about. It may not look like it but this is where the magic happens!
If you were to pass in that street you would probably rather notice the sports cars dealer on the other side of the road. Maybe this is where the inspiration for porting GRID Autosport came from ?
Now let’s come back to the meat of the subject. While the podcast goes at length to discuss many topics, here are some extracts that you may find worth considering. First, about the overall growth of the Linux Gaming Market:
Edwin: Windows, Mac and Linux are all growing in terms of Install base on Steam. That’s what people need to keep in mind - it’s not just the percentages. The Linux Market share on Steam is about 1%, Mac is about 4%. They are relatively stable around that. But obviously more people join Steam every day. […] Just look at 2 years ago how many games existed. When we released XCOM 2 years ago I think there was only just another game you could call truly triple A. And since then, Feral has released another 16 games in the past 2 and half years, the Open Source Mesa drivers have gone from supporting OpenGL3.3 to OpenGL 4.4 when we released Warhammer. As a Linux platform we have come a hell of a long way in the last 2 years. It’s more about trying to keep this momentum going day by day, month by month. I don’t think we are going to wake up in the morning and wake up with a Linux market the size of Playstation. […] It will slowly grow over time. […] It grows bit by bit, word of mouth, it’s not going to be this massive switch. […] It’s just one of those things that just takes time. What everyone can do in the community is to slowly work on the part they are interested in and polish and make them a little bit better.
While there are many positive signs of a growing Linux Market, Edwin was cautious too and mentioned it would not be a good thing to get too many games at once. Here’s why.
Edwin: I think what people should not expect, that even with Vulkan there will be suddenly an explosion of Linux games. Because if there are too many games, none of them will make enough money to cover costs and make people want to make the next one. I think the number of games will grow as Linux itself as a platform grows. Over the last couple of years that growth has been quite nice.
Vulkan has been hailed as the next great solution to improve Linux support in the long run and make more ports happen, but it’s not as simple as what one would think initially, and regardless of the API chosen for rending graphics, there is still going to be a large amount of work required.
Edwin: Most games that are released on Unity do not modify the engine, and if you don’t modify the engine, […] you can export it to the different platforms. Why Porting companies like us exist… even if some parts of the game are cross-platform, the entire game is not. An easy way of explaining this is… you have got compiler differences, […] you have all this kind types of math libraries, middleware that might work differently on different platforms, MSVC will compile with different compile flags, certains things might not line up… there are just so many little things. This is a good example why… some people say when Vulkan comes it will suddenly make everything like twice as easy to do! I mean, if a game has a Vulkan renderer, yeah that is great because there is certain amount of work we won’t have to do, but we will still have to fix all the Vulkan specific issues for the platform […] A good example is the XboxOne and Windows use like 95% the same API, yet you still have an entire team to make the Windows version of the game. So if you think about it, Vulkan is just one part, you still are going to need a whole team to do everything else.
Another aspect which is not always discussed in details is the fact that even cross-platforms engines can be modified to target a specific platform, making porting to other platforms a lot more difficult (or resource intensive). This does not impact indie titles that much, but it seems to be very common for AAA games:
Edwin: When indie developers make a game they dont want to spend all their efforts making a game engine. They leave the engine code vanilla. They spend most of their time on what will make the most difference on their product, which is the gameplay and the graphics. […] If you have a look at a really complex game, […] any triple-A game, they would have gone into the game engine and they would have modified the engine to do some really cool stuff specifically for that game. Some games may have some really wide open areas so they may have tweaked how things work inside the engine to get better effects, or there may be a game that has loads of water effects, so they rewrote an entire part of that game code to get better water effects. When they rewrite that, they will be rewriting it to optimize it to the maximum for the platform they are targetting. If you try to optimize it so that it works on everything then you will end up with the slowest solution than if you are only optimizing for the platform you are aiming at.
As you may be aware, whenever a new Feral port is released a lot of folks will run benchmarks to compare how well the port runs versus Windows. For Feral this is an important metric, but how good the gaming experience is is another one they consider as well. And in the end of the day, they have limited time and resources and have to decide where they should prioritize their time and efforts.
Edwin: You have to decide what you want to do. Do you want to make it a great experience for the larger amount of people, or do you want to chase the benchmarks ? For a larger part of the time, getting a good experience and good benchmarks is pretty much the same, but once you get to that range of 70% of the benchmarks, then it starts to get a more interesting question… removing stalls and stutters is a more important thing to do for the experience. Equally […] if the benchmark on Linux is a 90fps and on Windows is 105, you are not going to tell the difference. In that case, is it better for us to spend the time to optimizing the intel graphics card so it can get to 20 to 35 ? Because that makes a huge amount of people being able to play the game now, and who will really enjoy it. […] It’s about being as smart as possible to give the best experience to the most amount of people.
Coming back on Vulkan, Edwin feels that this is definitely what most game ports will use in the future, while there may be still be questions whether to use Vulkan or OpenGL in the meantime for 2017~2018.
Edwin: We try to use the best API for that particular title on that platform. Once we get Vulkan working we can look at OpenGL, we can look at Vulkan and we can pick the one that gives the best performance and use that one. Based on what everyone is saying, within a few years that is probably always going to be Vulkan, because that is where all the new game design and game engines are going.
As you probably know, Vulkan is not supported on MacOS, where their own version of a low-level graphics API is called Metal (incompatible) - since Feral has been usually producing ports for Mac and Linux at the same time, we were wondering if that would represent more work in the future to support Metal and Vulkan instead of looking at OpenGL only for both platforms. Turns out, it won’t make too much of a difference.
Edwin: To a degree yes, but on the Mac we were using OpenGL 4.1 maximum, and on Linux we had 4.5. One thing which happens with graphic drivers in general, the graphics drivers will always have a different fast path, on every different vendor, and every different platform. We already tune our games [accordingly] for Mac and Linux. So yes [Vulkan] is going to be more work, but that’s what we have always done anyway, we spend time tuning each platform to get the best performance on that platform. So now we will just be tuning using two different APIs instead of using half the same API but having to tune them separately. There was quite a lot of differences especially recently on OpenGL on Mac and OpenGL on Linux. 4.1 does not have compute shaders support for example, we had to use compute shaders on Mac using OpenCL which is quite a different process compared to Linux already.
Regarding Vulkan it’s still early days to know whether it should result in major changes in terms of performance on Linux, and we should probably wait see several titles using it before making a clear opinion about it.
Edwin: When Vulkan was first announced drivers were much more experimental. By waiting a little we wanted to make sure that our first Vulkan release would be a definitive improvement over what we could have done with OpenGL. There is no point in targeting some new API if you cut your audience down to 10% of what it was before. Especially on Mac and Linux where you already have a smaller user base, you really want to offer your game to the largest amount of people. If you remember […] for OpenGL it took quite a while to use the latest specs and for the drivers to be stable. […] It’s important as a community not to say “Vulkan is great” or “Vulkan is bad” just based on one game. It’s going to be one of those things where you look back in a year and say “wow look at how far we have come”. It will be the same as the Mesa drivers - you won’t notice the progress because it will be small steps, constantly. What the drivers for Vulkan really need is multiple titles, to have a lot of things to test against. OpenGL now has hundreds of different things to run against so it’s quite easy to find regressions and edge cases. If you have only 2-3 examples it’s hard to nail down which one of them is doing it the right way or the wrong way, whether or not you are testing all the possible ways of doing things.
We also asked Edwin if he was himself proud of a particular port he worked on - and one from early 2016 came to mind.
Edwin: If I had to pick one… XCOM2. Because we released XCOM2 the same day as Windows. The amount of work and testing and coordination and all of the help we got from 2K and from Valve to make it possible, that was really awesome. And also the feedback we have got after the release. People seem to really love it as well. It was one of those things were the super long hours, trying to get it done until the last minute… it all made it worthwhile. You work on a game for months and months, and when you get it out there, there is always a feeling “will people like this?”
Note that in a separate part of the podcast Edwin mentions that they will try again to have same-day release ports in the future, or at least reduce the time between the Windows release and the Linux one.
Once again you can hear about all the above topics in more details in this podcast (MP3/OGG) and you can register to our podcast RSS feed as well to ensure you miss none of our upcoming interviews.
Many thanks to PSP for joining this podcast and to Edwin from Feral for his availability.