top | item 22171241

Rocket League left behind on macOS and Linux due to DirectX 11 shift

145 points| Impossible | 6 years ago |gamasutra.com | reply

222 comments

order
[+] Jerry2|6 years ago|reply
Epic is probably one of the biggest enemies of Linux since they're killing Linux support of every game/product they buy [1]. And while games aren't as important as some business/productivity applications, people do get lots of enjoyment from playing an occasional game. It's a great stress relief. And now even those little indulgences are being taken away.

Epic's CEO, Tim Sweeney, is extremely negative on Linux if you check out his Twitter feed [2] and I get a feeling from reading his comments that he despises Linux with passion.

[1] https://news.ycombinator.com/item?id=19844241

[2] https://twitter.com/timsweeneyepic/status/964284402741149698...

[+] mroche|6 years ago|reply
When reading the context of the statement itself, it isn't that bad. He was concerned that Microsoft would introduce restrictions that place inhibitors on other vendors hardware with the introduction of a Pro operating system. The statement itself isn't the best, but his stance was that as a community Windows developers and users should push back against such changes.

An employee at Epic has mentioned that if someone with Linux development skills was interested, they would be more than happy to bring them on to develop a EGS application for Linux. The thread can be found here: https://twitter.com/CanalOCaraDoTI/status/110621899365072896... (scroll to the top for the beginning).

[+] bob1029|6 years ago|reply
I honestly cannot blame someone in that business for hating linux. The number of variables to test for if you only care about windows gamers is staggering. Linux is 10x harder than windows if you care about supporting any arbitrary distribution and driver stack. I think if users were willing to load a linux VM for each game they'd like to play, this would be more manageable from a game developer's perspective.

I understand SDL2 exists. I understand that Valve has "mostly" pulled off linux/macos support. But, is it really worth it from a business perspective for all game developers to support linux? How big and wide do your margins need to be before it makes financial sense to fully support both operating systems? How many features (or even titles) will stay in the backlog because your developers are busy chasing down the 5000th weird linux network/GPU/sound bug that only occurs on this one kinda-old version of Ubuntu?

[+] alephr|6 years ago|reply
Is that tweet really "extremely negative" towards Linux? All he says is that he doesn't want to abandon Windows but instead push back on changes to it he doesn't like; he doesn't make any judgements about Linux. The reality is there are many barriers to Linux replacing Windows as a desktop platform for users today so it's not surprising that someone who runs a business that depends on users doesn't want to push for a huge switch to Linux if it's not necessary. If a company not wanting to act outside it's interests makes it Linux's "biggest enemy" then it will be a very long time before it succeeds as the major desktop platform.
[+] AnIdiotOnTheNet|6 years ago|reply
It's not hard to hate Linux (Desktop) when you develop proprietary software since Linux seems to go out of its way to make it as difficult to deploy proprietary software as it possibly can [0]. Libraries are constantly changing underneath you in incompatible ways, there are several hundred "distributions" to deal with, etc.

[0] And frankly it is only slightly easier if you write FOSS software.

[+] cliftonk|6 years ago|reply
1. It seems as if he's addressing the context of the discussion (switching to Linux from Windows) rather than saying anything particularly negative about Linux.

2. I've been making some UE4 projects recently (as im getting back into game development as a hobby) and the toolchain to cross compile to linux is well made and easy to use (and even easy to dockerize).

I think unreal engine support of linux is probably the better barometer of Epic's stance towards linux than their not-so-fully-featured launcher/store (which is many years behind steam).

[+] MFogleman|6 years ago|reply
Rocket League's creator, Psyonix, was bought by Epic last year. The is concern/belief that this move is a precursor to making Rocket League an Epic Store exclusive, as the Epic store is Windows only.

Psyonix stated that they would offer refunds for Linux/ macOS users. In the first few days post announcement, everyones' refund was being denied. It appears that this has since been resolved. I received my refund yesterday.

[+] kyriakos|6 years ago|reply
If user base on those platforms is very small then it makes no sense for the developers to spend resources to keep it updated. At the end of the day its about demand and supply.
[+] notinventedhear|6 years ago|reply
I was _so_ excited when Rocket League first came to Linux, but that was several years before Proton[1] was released.

But according to [2] the game runs really well on Linux via Proton. Personally, I don't see any problem using Proton to play the game on my Linux gaming-rig.

[1]: https://github.com/ValveSoftware/Proton

[2]: https://www.protondb.com/app/252950

[+] kgwxd|6 years ago|reply
The concern is that Epic will add EAC and that Proton is going to cause you to get banned or they pull the game from Steam and move it to EGS which doesn't run on Linux, and likely never will. So the question becomes why should I put more effort into a game that's likely not going to be available to me in the very near future?
[+] wlesieutre|6 years ago|reply
Epic acquired Kamu, makers of Easy Anti Cheat, for use in Fortnite. EAC is known to block Linux players using Proton, and there's decent odds Epic adds EAC to Rocket League.
[+] MFogleman|6 years ago|reply
Proton is pretty great, but there are hardware limitations. Im running a pretty old video card. I can run games like Deep Rock Galactic on Windows, but it wont work on Linux as Proton needs newer linux drivers, which don't support my card, in order to run that game.
[+] protanopia|6 years ago|reply
Proton works great for single player games but isn't that great of an idea for multiplayer games. Their anti-cheat system could end up banning proton users. I believe this has happened to Destiny 2 and GTA:O players.
[+] kgwxd|6 years ago|reply
This is what I hate about ever-changing games. If it's such a big change, just make a new game, Rocket League 2. I'm sure people will still complain for some other reason, but no one looses what they paid for.
[+] kevingadd|6 years ago|reply
These days even if it's a sequel it might just be a repackaged update. Overwatch 2 is just Overwatch with additional stuff on top, for example - supposedly they both can play in the same matches on the same servers.
[+] sangnoir|6 years ago|reply
They'll still not want to kill the servers for the old game and the net result is the same - users stuck with an old game that can't go online.
[+] Operyl|6 years ago|reply
I’d be normally more upset about this, but the last sentence is a biggie in this situation. Psyonix is offering full refunds for the base game (which is better than nothing, although I wish it included DLC etc) to anyone, even outside of the two week window.
[+] ben1040|6 years ago|reply
The refund process is a mess. I followed the directions on the Reddit page last night and got an email from Steam saying they’re refusing the refund because it’s been more than two weeks.

Other people on the comments have said similar things.

[+] threatripper|6 years ago|reply
SuperTuxKart (https://supertuxkart.net) is a free racing game similar to Mario Kart and it also has a "Soccer" mode where you play in an arena with a ball and two goals like in Rocket League.
[+] csande17|6 years ago|reply
I love SuperTuxKart. It's the first game I install on any new computer, and I've beaten the story mode several times. I usually focus on the racing modes, but I've tried Soccer as well.

SuperTuxKart is not an alternative to Rocket League! If you go into it expecting anything Rocket League has -- polished realistic-looking graphics, physics that let you jump and tilt and drive up the walls of the stadium, a thriving online play community, a matchmaking system -- you're going to be disappointed.

[+] vernie|6 years ago|reply
This is the "just use GIMP" of games.
[+] lullibrulli|6 years ago|reply
While true in theory, the gameplay vastly differs to say the least.
[+] neura|6 years ago|reply
It's both surprising and unsurprising to me how many comments here are focused on EGS (which is not what the article is about) and almost nobody is talking about how Rocket League's macOs and Linux players make up less than 0.3% of the players, combined. SMH
[+] user_50123890|6 years ago|reply
^ developer time is worth crazy much, it's just irresponsible to waste lots on it on a 0.3% of the users.

just go ask the actual playerbase if they'd prefer the devs working on linux/macos ports or actual gameplay/issues affecting the average player and see the answer.

[+] therealmarv|6 years ago|reply
Wow, in the past it was 1 or 2 different 3D architectures. Now we have 3 of them:

DirectX on Windows, Metal on macOS, Vulkan/OpenGL4 on Linux

[+] kitsunesoba|6 years ago|reply
However, it’s worth noting that Vulkan, Metal, and modern DirectX are so similar to each other that translation layers are extremely thin and have a performance penalty somewhere between negligible and nothing. That’s a dramatic improvement from where things were before OpenGL and DirectX had no interchangeability at all.
[+] kevingadd|6 years ago|reply
Don't forget consoles, though I've heard reports that you can use some variant of GL on Switch. PS4 requires a custom backend unless you license some sort of middleware. XBox left Direct3D 9 behind a long time ago (which is probably one reason to shift onto Direct3D 11 - to share more code between PC and XBox)
[+] carlosdp|6 years ago|reply
Vulkan/OpenGL are multiplatform
[+] aaron-santos|6 years ago|reply
> Unfortunately, our macOS and Linux native clients depend on our DX9 implementation for their OpenGL renderer to function.

I'm not a gamedev and just have some hobby xp in DX and OpenGL, but I don't begin to understand why an OpenGL renderer would in any way depend on DX. Is this just code for "we have such few Mac and Linux users that it isn't worth our time to support OpenGL"?

[+] larkost|6 years ago|reply
They wrote the game targeting DX9, and then wrote a custom shim to translate from DX9 to OpenGL calls. Now they are transitioning to DX11 to get some newer features, and have evaluated the amount of work that it would take to either update that shim layer for DX11 -> OpenGL/Vulcan for Linux, or DX11 -> Metal for MacOS (remember, Apple is depreciating OpenGL on their platforms).

If linux and MacOS combine account for less than 0.3 percent of their revenues... then even as a MacOS guy I have to see their logic... there is little chance of recouping the heavy lift that they would have.

[+] ilikehurdles|6 years ago|reply
They probably use some outdated translation layer that converts DX9 calls to OpenGL ones so that they didn't have to maintain two renderers or use a higher level 3rd-party engine that abstracts over those calls. Newer games using Steam's Proton, like Sekiro, look and perform nearly equivalently to their Windows DX11 counterparts. I know Proton isn't exactly an apples-to-apples comparison, but it's an example off the top of my head. I guess CS:GO is another more apt one.
[+] plopz|6 years ago|reply
I would imagine the game is using dx9 and for linux/macos it would run through a dx9 -> opengl translation layer.
[+] Rannath|6 years ago|reply
AFAIK: The way DX9 works for Windows software running under Wine, is that wine has a layer that intercepts all DX9 calls and retranslates them into OpenGL. There is no equivalent for DX11.
[+] thrower123|6 years ago|reply
I'm always amazed by the longevity of DirectX 9. It was a truly excellent graphics API. DirectX 11 had more features, and was in some ways better designed, but it was always really painful to have to reimplement some of the things that were stripped out of the D3DX utility libraries that formerly were part of the SDK.
[+] a13n|6 years ago|reply
Honestly the game was not playable on macOS. If you wanted to play on your MacBook you had to run Windows with bootcamp, which you can still do. So I doubt this change will really impact anyone.

Can anyone talk about how it plays on Linux? I can’t imagine a huge playerbase there.

[+] thethrowboat|6 years ago|reply
60 fps@1440p with gtx 1060 on linux, can't remember if it was limited to 60 fps, but that was good enough for me. Never tried in windows.
[+] ch_123|6 years ago|reply
Maybe I am missing some context here, but why would a game studio make a backwards-compatibility-breaking change to the engine a five year old game? I know that it's a popular game, but this sounds like an excuse to me.
[+] Kapura|6 years ago|reply
Rocket league is an active multiplayer game that falls under the "Games as a Service" umbrella. There are limited time events, and new aesthetic upgrades being added to the game at a regular clip. Because of that, it's not a "five year old game" but rather a "game in active development."

Think about it like a game like World of Warcraft. It wasn't built once and then released, but rather new content is being produced for it constantly, so the game engine itself needs to be improved at every level as consumer hardware changes and improves.

[+] Pfhreak|6 years ago|reply
It's backwards compatible for 99.4% of their users. Maybe there is future feature work they want to do, but are limited by DirectX9. Maybe they got tired of working with a 20 year graphics library and it's cheaper in the long term for them to update to the latest.
[+] Wowfunhappy|6 years ago|reply
What I find a bit odd about this is the existence of the Switch version.

Surely the Switch's graphical power, presumably it's not going to get a bunch of fancy new DX11-esque features. I imagine they'll do the minimum to keep the Switch compatible with other clients in multiplayer.

But if they're keeping multiplayer compatible with an older Switch codebase, why not keep it compatible with older Mac and Linux branches?

[+] cwt137|6 years ago|reply
The article makes it sound like they were running DX9 in Linux and MacOS. If true, how is this so? Is there some type of X11 extension that implements DX9 or something?
[+] iuweriopu|6 years ago|reply
Not really, if you read carefully they are saying that their OpenGL renderer is very similar to the DirectX 9 one (probably because feature parity between these two APIs), but they have difficulty matching DirectX 11 features with OpenGL.

Like a database ORM which can have Postgres/MySQL as the backend, but then you want to replace Postgres with BigTable. It will be very hard to keep the MySQL support.

[+] gpderetta|6 years ago|reply
They probably have their own abstarction layer that implements the subset of DX9 they are using on top of opengl. This is very common on linux ports as it is hard to justify the cost of a full rewrite of the graphic engine.
[+] ubercow13|6 years ago|reply
It's called wine. But I have no idea if they were using it.
[+] jannes|6 years ago|reply
Does anyone know why DirectX 11 is so much better than DirectX 9?

Looks like they were using some kind of translation layer that was translating DX9 calls to OpenGL.

[+] monocasa|6 years ago|reply
DirectX9 is ancient, like somewhere between an original Xbox and an Xbox 360 in features. It's very difficult to use any modern graphics techniques with it. DirectX 11 is the most recent version of that classic style of graphics APIs, with DX12 being to DX11 sort of what Vulkan is to OpenGL. If I had a legacy DX9 codebase and I wanted to use some features of newer GPUs than what existed in 2002, I would convert over to DX11.
[+] kevingadd|6 years ago|reply
More modern programming interface that matches the hardware better.

Newer shader model support + newer shader compiler

Newer/more powerful debugging tools

Access to large new features like compute shaders, texture arrays, uniform buffers, etc

Access to new surface formats to enable features like VR and HDR

Better API performance + access to performance-enabling features like multi-threading

Direct3D 9 is nearly 20 years old. OpenGL has at least been receiving new extensions on a regular basis (though people are finally shifting to Vulkan) - with the exception of a few things shoved in by driver vendors via back doors, D3D9 has not changed at all.

Driver compatibility for D3D9 is also very bad at this point - the driver vendors don't give a shit about breaking existing software that uses it. I still occasionally hit driver bugs when working on old code that targets 9. Code targeting 11 will have fewer problems.

[+] TazeTSchnitzel|6 years ago|reply
Well… Linux and macOS users can try it under WINE, perhaps?
[+] ErneX|6 years ago|reply
The game ran pretty bad on macOS though. Same computer with a GTX 1080 runs the game on win10 at hundreds of FPS with everything maxed vs barely able to run the game on macOS with all the detail on minimum.