Valve Breaks the Shackles of Proton
boilingsteam.com
boilingsteam.com
Steam itself still looks be 32-bit on macOS:
lipo -info /Applications/Steam.app/Contents/MacOS/steam_osx
Non-fat file: /Applications/Steam.app/Contents/MacOS/steam_osx is architecture: i386Wish my C chops were better! Anyway, nice work. Envious of the wood shop.
https://www.phoronix.com/scan.php?page=article&item=wlinux-w...
In most tests, WLinux and WLinux Enterprise simply performed inline with the other Linux distributions benchmarked.
Performance is pretty much at par (and in some cases better than Linux).
Do you guys envision a long term disruption in this space ?
Well.. filesystem performance is just bad under WSL period. Much worse than native NTFS or ext4 on the same hardware. It's so far from both that saying it's closer to one or the other doesn't _really_ make sense.
It has the benefits of easing someone into Linux so they can migrate to Linux full time.
But it doesn't resolve any of the same problems as "Why support Linux gaming in general?" Because the biggest one is the whole Microsoft thing.
But I guess Valve is flush with cash to throw at their hobby projects.
Nowadays Windows on ARM is basically the second coming of Windows RT, a massive failure. The biggest difference is that this time they decided to not produce a million devices too many.
I've been very impressed with what I've used so far. Most recently I've had an unofficially supported game (Skyrim) successfully query my hardware and accurately set the graphics settings.
In my case there's a game where the Linux version always crashes after about 30 minutes, and I hope it'll run smooth enough with Proton.
I feel like the last time I tried to fix this I discovered the mod to fix it was only for the 'Special Edition' or something which I didn't have.
> Compatibility tool for Steam Play based on Wine and additional components
> Proton is a tool for use with the Steam client which allows games which are exclusive to Windows to run on the Linux operating system. It uses Wine to facilitate this.
> Most users will prefer to use Proton provided by the Steam client itself. The source code is provided to enable advanced users the ability to alter Proton. For example, some users may wish to use a different version of Wine with a particular title.
1) The changes seem to be designed to help shoddy Linux ports--e.g. those that haven't been updated in awhile or that have very poor performance. I worry that developers will see this as an alternative to native Linux ports, and instead of getting awesome games that work on Linux without WINE (see: Beamdog's awesome Enhanced Editions of classic Interplay/Bioware/Black Isle RPGs), we'll simply see all Linux games running in WINE containers. WINE is great, but it's not perfect. When Proton was first enabled, I tried running System Shock Enhanced Edition and it crashes immediately. System Shock Classic, on the other hand, is certified for OSX and Linux and runs properly (although for all I know SSC might just be a tweaked WINE container).
2) Not all games work with WINE. That's why there's the WINE compatibility list, along with community forums dedicated to making tweaks to get the games running. I fear that throwing everything at WINE effectively puts the onus of getting the game working onto the WINE community, rather than the game's developers. I suppose in Best Case scenario (after native Linux builds, of course), game developers could contract out the CrossWeavers guys to help get their specific game working within WINE and that might still be cheaper than the resources required to build the game natively. But whether they'll actually do that remains to be seen.
That's reasonably easy to test, which is very important.
I have zero problems with this as an approach - but I always favor pragmatism over purism.
I want my games to work on my linux box so I can ditch the win10 partition, whether they do that through a native port, WINE, Proton, or some satanic ritual... I don't really care.
If Proton is better than most shoddy ports, makes financial sense for devs, and unlocks games for me... Who gives a flying fuck if no one is making native linux builds?
We've already seen users shift from Windows to Mac, iOS and Android. It's unclear how the landscape might change in the future so rather than encouraging developers to split their efforts between a myriad of platforms or API, maybe we establish an abstracted platform that they target and then each respective platform can support that?
Obviously Microsoft, Sony, and Nintendo aren't going to get behind that but since the Xbox already shares an API layer with Windows 10, and Microsoft is committed to maintaining compatibility longer, then perhaps that's the target going forward?
WebAssembly is this, basically.
Here's a spoiler: we still write native applications.
There is active and intentional hostility by many platforms to avoid this happening. Making cross platform development harder makes sense if you want to hold developers hostage in your environment and make the effort to work anywhere else a substantial investment.
Apple, Microsoft, Sony, and Nintendo all do this. It was really a sea change for Nintendo to support Vulkan on the Switch. Sony said they would, but never did. Microsoft adamantly uses DX as a lock in tool for the Xbox. Apple made Metal to make cross compatibility between iOS and anything else a huge pain.
At least for games, right now, you cannot do anything but write custom handler code for the Xbox and PlayStation. SDL doesn't support them, their devkits are proprietary, and the Switch is only better because Icculus ported SDL to it. You want to use Vulkan because it has the most API surface, but it only works everywhere but Xbox because there is no Vulkan -> DX wrapper.
So if you want a write once run everywhere game the best combo is SDL + Vulkan working on Windows, Android, and Linux natively. On iOS and OSX with MoltenVK wrapping the Vulkan. On Switch by PMing Ryan Gordon for the secret Switch SDL. But never on Xbox or PS4 in any form, there is no way to be compatible with them.
Which is probably why DirectX is still so entrenched. UWP + DX11 means Windows (7+) and Xbox support, DX12 means Windows 10 and Xbox One support. DX11 is now also starting to mean Linux and maybe even OSX support. That covers more of the market than SDL and Vulkan does despite it all being proprietary and Microsoft only because... thats where about half the market is by itself.
That all being said most of this is moot. Almost no modern game is being made in isolation. Everything is using Unreal 4 or Unity (or hopefully even Godot). All of those are available to varying degrees of completeness everywhere. You don't write your shaders in HLSL, you write them in your engine wrapper shader language. Once your game is done you then chose to press the deploy button to whatever systems you want. But then it turns out these humongous code monsters called game engines end up having a lot of esoteric bugs and breakages across platforms that drive developers not to support anything but high volume targets - ie, the consoles and Windows, maybe Android and iOS.
Most will happily discuss about issues with publishers, game design ideas, making a successful game and how to take advantage of the IP to branch into other areas like movies or toys, and taking advantage of the hardware to the max in some cool ways, demoscene style, how to get that exclusivity deal offer from publishers.
Even Vulkan on the Switch feels like testing waters, as Sony did with GL ES 1.0 + Cg on the PS 2, as the main 3D API is NVN.
It is quite easier to check this by going through the talks available publicly on the GDC Vault.
Not really. Mobile games are a new segment, not really a replacement.
Mac has little appeal to gamers. They could, they don't care. It's better to be neat looking.
And that's currently the case. I have been playing a little bit of No Man's Sky these days on WINE. Amazing game, I'm always at 60fps too.
If Proton bridges the gap to the point where people are 1) more willing to be on Linux and 2) less willing to deal with dual-booting for the few games that don't work without it, then maybe the number of Linux-exclusive gamers will grow. That's when you'd see significant attention paid to proper Linux builds. (There are of course other impediments to people switching over to Linux full-time besides games support, so I don't think the Year of Desktop Linux is quite imminent yet.)
I do think there is more overlap between those who buy the game to play on Windows, and those who would be willing to at least give it a try on Linux. All the stats I see seem to treat them as a disjointed set of users.
You should worry that developers will not see this as an alternative to native Linux ports. Ongoing support for Linux just isn't worth it, it has been proven time and time again. If developers instead focused on Proton/WINE as a platform they might get some real value with only minor effort.
The problem with Linux users is that they're the armchair developers in every comments section, complaining that some port is bad because it's "not native" or not 100% as good as the Windows version. You just have to ignore that.
So I am very grateful for the results we see from Valve. Ultimately, we might see fewer native Linux ports on the one hand, but on the other hand, we might see more people using Linux as gaming is becoming a lot easier now.
1. If A is negotiating with B, but they have an alternative option which is C, then A will never accept B giving them a worse deal than C; and B will know that, and realise they have to do better than C.
2. For this reason, if A wants a better deal from B, they have to improve on C - and that's true even if they don't plan to rely on C.
For example, an employee (A) who wants to be paid more by their current employer (B) might interview with another company (C) and use the offer from C to negotiate a higher salary from B.
Likewise, Valve fears that Microsoft will eat their cake. MS could lock down their platform, and force all software sales through a store where they take a 30% cut, just like iOS and Android do already.
Investing in Linux gaming is Valve's BATNA: If Microsoft makes Windows worse for Valve than steam boxes are, Valve can start pushing steam boxes hard; and the better steam boxes are, the more effective and credible this alternative is, and hence the more leverage Valve has over MS.
[1] https://en.wikipedia.org/wiki/Best_alternative_to_a_negotiat...
The other option would be to put some pressure onto Apple to get their stuff in order - and finally release new desktop Macs that are upgradeable as well as allow NV/AMD to release their own GPU drivers.
Yet gamers have similar demands (in terms of performance) to the core demographic of Apple users pre-iPhone: professionals in the 3D/animation/audio creative scene. The question is, will Apple ever think about this market again or concede victory to Windows? They haven't shown much progress the last few years, but on the other hand if there's one group which is willing to shell astronomic sums on highest end Apple equipment it's creatives.
Not true. They advertize games very vocally in iOS AppStore. I know that's not what you meant, but in the largest context a "gamer" is not an enthusiast, but just a person who likes to play a game now and then.
In the context of Valve customers potentially willing to install Linux however, it's pretty clear what is meant.
Now that Bungie is independent again, maybe the post-Jobs Apple could finally come to embrace gaming? Throwing thousands of dollars at completely overbuilt gaming rigs and their associated cosmetics is pretty common, you think they'd be an attractive mark for a lifestyle-brand company like Apple.
Look at the sales of LED RAM.
I think Apple might want a piece of a market that's willing to overspend. They don't have to buy in to the aesthetic and culture of current "hardcore gamers", they can provide an alternative style and culture that expresses different values, like sophistication and creativity. I'm sure a lot of people would like an alternative to the Red Bull'd-up pseudo-hacker look.
> I'm sure a lot of people would like an alternative to the Red Bull'd-up pseudo-hacker look.
Are those people buying LED RAM even though it's not what they really want?
With Linux, Valve has the control. If they were getting really serious with this, I'd expect them to take full control over the hardware they're selling too, but for the moment, this is still a pretty solid BATNA-threat for them.
This isn't theoretical, right? It was stated upfront as a plan for Windows 10 and it inspired Valve to invest in Linux/SteamOS/Steam Box ecosystem.
However, the switch to restrict installation to Store only is now also available in other versions of Windows.
[0] https://en.wikipedia.org/wiki/Windows_10_editions#Discontinu...
I intend to use it with ebook DRM crackers, mod managers for Beat Saber and ESO, maybe even non-Steam VR titles, like the Vive store. Maybe some of the crappy desktop clients for enterprise webapps that I need for work too.
please don't, not through steam. i'm sure steam collects some statistics on how people are using proton, and if they start seeing stuff like this show up they might start locking it down again.
you might be able to run proton stand-alone for stuff like this if you really want to. https://github.com/ValveSoftware/Proton
Which specifically? Calibre's?
PlayOnLinux is a great Wine prefix manager, don't use the install scripts. It requires you to know what a wine prefix is and how to configure things.
- installing different wine versions
- run an exe in the selected profile
- open a linux shell in the selected profile
- setting command line arguments from GUI
- setting command to run before app starts
- open winecfg, the registry for selected profile
I do not run popular games, so I do not need the Lutris scripts, though once I read one such script and run the steps manually
Lutris may be better for newbs that do not need the features I mentioned.
Huh, I never considered the possibility that an Unreal engine game would have such a difference depending on the operating system. Does anyone know why this is a problem for Ark, but not other games? I know Ark is particularly janky in general.
Supporting Proton/Wine or offering up something more official would allow them to offload that work to the community, and those who need or value that backward compatibility.
I'm rather disappointed in the industry's reluctance to engage with Vulkan. DX12 certainly hasn't been a runaway success either, with many devs sticking on DX11, but it seems more inevitable.
Maybe Sony can shift the balance, following Nintendo's lead by finally picking an open API (no they didn't support OpenGL on the PS3, it was a proprietary subset)... But I'd never put money on it happening.
Vulkan is stuck on C API levels, requires an expertise level that many devs aren't willing to deep dive into, it is an extension fest, with Android and GNU/Linux being the major deployment targets.
On Android it is actually an optional API since version 7, so an OEM can even release an Android 9 device without Vulkan support if they so wish and the version fragmentation is all over the board.
https://vulkan.gpuinfo.org/vulkansupport.php#android_devices
Nintendo also has their own API, NVN.
Unless there is market pressure for Microsoft to support OpenGL on the store, they most likely will not address it.
I've even tried running Steam in a Debian-based Docker container (planning a write up on this for https://blog.jeaye.com/), to see if having libtxc-dxtn-s2tc0 around would fix the problem. Alas, though I got everything running through Docker, the problem persisted (thus helping confirm it's more likely related to my nvidia driver).
Now with the latest Steam, I was able to just uninstall Rocket League, install it again with Proton enabled, and jump right in. The workshop maps render properly, the game still plays at 120 FPS, and apparently controller vibration wasn't working before, since now it rumbles every time I boost. Thank you, Valve!
Other than legacy enterprise stuff, gaming is the one area where consumers continue to be tied to Windows. It seems like a no brainer for Microsoft to lock down that market. The average Joe/Jane that needs to do write some emails, pay bills etc. is fine nowadays with an iPad, Chromebook, etc.
I am curious if game studios share Valve's desire for a free and open Desktop Gaming OS. I understand Valve is concerned about M$ demanding a 30% cut or locking them out of the walled garden, but game developers still just see Linux gaming as a curiosity. Proton may improve the market share, but it also kills any incentive to develop a Linux-native version.
Publishers release on Steam for Windows because they have to, not because they want to. To them, their "opponent" isn't Microsoft locking down the platform in the future but Valve controlling a lions share of that rent seeking profit from game sales today.
We can rant about how they should just distribute flatpaks of their games and use that as the runtime but at this point Valve has "claimed" the Linux space where widespread hardware adoption would probably come with SteamOS where they can never ship a game from their own store.
Sadly, I gave up, and installed Windows on my PC, entirely replacing Linux.
I think I gave Linux gaming a good try. Some of the titles in my catalog had native ports, which generally worked well.
Some Windows titles ran under Proton (or Wine) and worked well. (Dear Ester, Valve titles obviously)
Other Windows titles had issues, ranging from the minor (glitches: The Witcher 1, GTA IV) to significant (no controller support: BioShock 1).
In some cases, as with Elder Scrolls: Skyrim, the original release runs under Proton (no controller support though), but the Special Edition currently has game-breaking issues. And installing mods for Skyrim was going to be even more of a challenge than usual.
I was spending more time trying to get things running than actually playing games, so I gave up and switched.
Sorry...
The amusing part is that I don't remember what the patch actually does. I mean, it replaces a bunch of opcodes with NOP, but I have no idea what. I vaguely recall spending a day in IDA Pro to find those bytes, but nothing about the details.
The really amusing part is that game developers haven't figured out what the problem is, either, and so my who-knows-what-it-does patch is a semi-officially blessed solution for now:
https://steamcommunity.com/app/61500/discussions/0/215439774...
Works like charm.
From what I understand, Microsoft could have totally kept 16bit application compatibility in 64bit Windows, but didn't for some reason. Apparently someone out there even compiled a version of NTVDM that works on Win 10 64-bit using leaked code or something.
This was requested by the DXVK developers specifically because it's was the last piece required to completely support Witcher 3.
Mesa and Nvidia had drivers support on the day (or shortly after) the extension was published.
On the flipside, many of the games I run are from the DX9 era, and I've been using wine-d3d9[] with a high degree of success.
[]https://packages.gentoo.org/packages/app-emulation/wine-d3d9
Edit: in response to ekianjo below, I can't reply: Thank you, I wasn't aware of that. I thought it was coupled with Steam tightly. I have even found a Gentoo overlay with a Proton ebuild. I'll give it a spin; I'm not a huge fan of the Linux desktop but I'm tired of Windows 10 chapping my hide with its endless stream of background processes consuming the resources of my computer while I'm trying to do something else.
I've not had much success with WINE for gaming, nor with Proton. I used to play some "Tom Clancy" games using WINE (Origin, I think it was; bought a couple of other games Rayman and something else) but the distributor changed the launcher and it never worked again. I couldn't for the life of me work out why they didn't advertise the fact their launcher worked on WINE, v. simply, nor why they would then squander that advantage by breaking that compatibility (some update loop, apparently it could be worked around but my WINE-fu wasn't up to the task).
In my case many moons ago not pirating movies and games would have just meant reading more books.
Also the total disconnect between quality and price play a role sometimes.
You've got games like Witcher 3, Red Dead Redemption 2, etc. that are basically epics: you could play them for months (amount of time spent gaming dependent). They're not epic naturally, the teams that put them together made them that way. So in that sense, I feel like you'd still come out okay shelling out for a game like that.
Likewise, graphical fidelity is approaching insane levels. Sure, applications assist in this, but at the end of the day, the developer is still spending a ton of time getting various things right visually. As such, I don't mind shelling out for that.
Dunno, as far as AAA games go, gamers have decided graphics and length of playtime are important. As an example of then vs now, Zelda used to be a game you could beat in a few hours. Breath of the Wild? Not so much. Both of these take increased development time which no one is doing for free. For them to bump up those two, price needs to go up. If it remains the same, honestly, it will eventually be unsustainable.
Even as someone who abhors copyright as it stands, I can tell you this is bullshit thinking.
Game sallers profit from piracy the same way Microsoft and Mathworks would profit from a small population of pirated copies.
you could say the same for mods, If I can mod any game in skyrim why bother having any other game on steam.
Also for most markets the number of people that buy a game after piracy is greater than the number of pirates that would have bought the game anyway (no source on this) especially if mods are hard to impossible to pirate.
Also in addition to the extremely weak arguments I have provided something similar happens in movies: https://gizmodo.com/the-eu-suppressed-a-300-page-study-that-...
UPDATE: I won't claim this is an absolute, I imagine that at least a few (indie)games were deeply damaged by piracy, especially if they were hard to buy legally or not on steam. As I said my intention is not to justify piracy, just to understand its context and consequences
At this point, and I've said this multiple times, I really wish Microsoft had a way to create a universal launcher/downloader where if I bought a game on Uplay, it shows up in said launcher and can be downloaded from Uplay's servers. Likewise Steam and the rest. This would be better than a Movies Anywhere style program as the various storefronts don't carry almost identical libraries of games. This is a big area where console gamers win: universal game management.
If you don't actually want a game in the form a distributor gives it to you at the price they ask then no, you aren't a lost sale pirating it.
At that, its not some moral black and white. I use IsThereAnyDeal to price track the games I want and only buy them at all time low prices. Mostly because I still have hundreds of titles to get around to but end up programming, drawing, or reading way too much HN all the time to get around to them.
It doesn't matter if I give a developer $1 or $0 if its still not enough to keep the lights on. The same thing happens with music and movies - you need either a sufficiently large or rich enough audience to keep your studio in the green.
Its probably way too deep for the bottom of a thread on Proton but I'm realizing that no matter how copyright is written in the post-Internet era it will always be an appeal for donation. Just because I haven't pirated a game in a decade doesn't make me "moral" or the pirate "immoral" - I only buy games now because its convenient on GOG and Steam to just have them in one place and not have to keep track of independent installers from torrents and to token support Linux developers. But I'm just an increment on a Linux sales column - I'm not actually making them anything close to reasonable revenue for the number of Linux gamers there are, and my marginal impact compared to someone who would have just grabbed it off PirateBay is completely negligible.
I'll keep buying Linux ports to... collect them? But I'm still not a valuable purchase. I'm waiting often years until its under $5 and even then I sometimes say "eh, I'll get it when its cheaper". But its not some moral high ground, and it barely impacts any bottom line - all game developers depend on first week sales at full price. Nothing else keeps the lights on, you will never see revenue volume close to that again. Buying it years later for $2 on sale is practically putting loose change in a beggars cup.
Just get a humble monthly subscription. For $12 a month you will never have to worry about not having enough games even if you only play on linux.
It can seem to be - on my Windows 10 box, a Steam update can take half an hour or more (on the Mac, it'll never be more than a couple of minutes.)
Often it'll get stuck downloading updates to games which means you can't play them until it unsticks.
I appreciate that these are almost certainly Windows 10 issues (since a lot of other stuff is similarly afflicted) but most people will blame Steam.
This hasn't been my experience at all. On my Windows 10 box with an aging third gen i5, a 50Mbps connection, and an SSD, Steam client updates rarely take more than a minute or two.
The problem with Windows 10 seems to be that it's wildly inconsistent and susceptible to the tiniest variations.
Proton is just a fork of WINE[0], with a gaming focus and some Steam-specific compatibility additions.
- DXVK, a translation layer for DX10/11 to Vulkan
- ESync
- Wine
- Proper overlay support within Steam
- Official Steamworks support without need to also run Windows version of Steam.
Most games on Steam use Steamworks for multiplayer and while there was steam bridge before, but it's wasn't official.
If I reimplemnt libmath myself, then do some trickery to make MathApp use my version did I emulate your library or reimplement it? IMO I reimplemented it and it is very possible that my implementation could be less buggy and faster in some cases.
My understanding is that it doesn't do any of this. Windows programs generally don't make direct syscalls, they're undocumented and only used by Microsoft-written DLLs. Wine provides a re-implementation of these DLLs suitable for Unix-like systems. The code of the program itself is untranslated and runs as-is with no performance loss.
WINE is an emulator to the same extent libc is an emulator, then.
You could also call a drop in libc replacement that not only implements the standard but also the quirks and extensions of a specific implementation, an emulator.