It's not realy a "compatibility layer". proton or wine basically just provides APIs on Linux that Microsoft does provide on Windows. There is nothing being emulated, it's basically just developing the Windows C-API, the DirectX-Api &c. a second time. Thats not over head. It's just making the APIs a second time. And I have to say , while the Windows C-API is old, it's extremely well kept backwards compatible. Backwards compatible software is something that was impossible before flatpack or similar efforts. I realy think MS deserves gratitude for their housekeeping of the Windows C-Api ! It's just a pure win to have this API on Linux. Games are just apps. Why not make the same app for several systems in the same way with the same tools?
@@TremereTT Backwards compatible software was quite possible before flatpack, but it did require installing multiple versions (ie, and older glibc) of a library, often outside of the package manager as those are designed to keep a system strictly current. The only software that is truly not backwards compatible on linux is anything relying on kernel functionality that no longer exists. One thing I do truly appreciate though, is the fact that even my old games work on linux, when they no longer function on windows (I can't even install kings quest on windoze these days, much less expect it to run)
Native sounds nice and all but has anyone actually tried to run an unmaintained commercial Linux native game a few years after support has ended? Good luck with all those libs you are no longer gonna have or have the correct versions for. I just had to jump through hoops to get the Linux build of X3 working. Where as with Wine/Proton I can much more easily "package" the game up in a prefix that will run pretty much anywhere wine is without dependencies. I find this a much better solution that has preservation benefits. The Sims 2. Ever tried installing The Sims 2 and all it's expansions? Let me tell you there are a LOT of those. Takes a while but I have not had to reinstall it for years now. I just take the prefix with me with all the stuff preinstalled. Archive that onto my NAS and I have now preserved that for me pretty good xD. A lot of this can be solved with modern packaging formats like flatpaks and stuff but I think asking that too might be too much lol. I would really like to see an easy way to package up a wine prefix + the runtime and everything into an appimage like package that I can just run on any x86 machine.
I was originally going to talk about the Sega and I forgot to change the name of the CPU. I can't believe I missed that. I've been writing this script for 4 months. 🤦
I was going to say the same thing. When he was showing the assembler language code, I was like "that's 6502!" I should know. I taught myself 6502 machine language/assembler programming on my Apple ][. Man, I miss the days of Apple when they were all about being open about their tech. I had the Apple ][ redbook that mapped out all of the memory space of the Apple ][ system monitor/ROM, etc. I even later got a Z80 card as well for it and ran CP/M for awhile. I had the Orca Macro Assembler and the Aztec C compiler environment. The Apple ][ is what got me into programming and it's been my job every since I graduated with a degree in computer science. Still love it to this day.
This, not even a coder but sega thing makes sense. Tho motorola based mega drive was bigger than z80 based master system/mark3. Then again Genesis has all the same hardware and is backwards compatible
@@SumeaBizarro I never owned the MS, but I did purchase the Genesis when it came out and loved it! Owned both the OG NES and the Genesis system. I also then purchased the MS adapter so I could play MS games as well.
"Natural Selection 2" btw. is a great case study. They went all the way to a native linux build and at some point reverted to supporting linux via proton for the exact reasons you mentioned.
I've been a linux gaming supporter since 1998... Bought any game with native linux support. Currently I can only run those games using proton. You can't run the windows version of these games on windows 11, but you can run them on proton. You can't run the linux version either. So in the end, the only ABI/API that survived is win32 on proton. Not on windows, on proton only.
Win32 has become a kind of lingua franca for software. If I want to run an old Linux package (let's say from the 2000s, for instance) then I don't even bother because the library dependencies are never going to be satisfied. I just download the win32 exe, run it through Wine, and most stuff just runs immediately. Given the focus on old games through dxvk, I'm wondering if Linux will quickly become better than Windows for old win32 software.
Native linux games do work at any point in time if they are compiled all statically. It is not the default for most compilers, though, so we got into this mess.
Same reason I can use Microsoft Office 95 on Linux and not on windows 10/11. It’s also REALLY snappy too! I’d say it’s better than OpenOffice or FreeOffice, but the file types are too old to use for anything outside of a quick word doc.
@@DiThi Now try installing an .rpm from 1998. You are in for some pain, my friend! ;-) Honestly, I hate our stubborn reliance on the repo system -- it's as if we all decided to pretend dependency hell doesn't exist and that we've never had our package manager crap out on us, leaving a knackered system. I know Flatpaks aren't perfect, but I'm so glad we've finally started adopting 3rd party packaging. I never want to troubleshoot a package repository ever again in my life.
@@phoenixrising4995 What I'm referring to is that proton is the stop gap measure to get everyone onboard. But because of the path of least resistance. There is a danger of becoming the go to default.
@@gardiner_bryant they won’t care, it’s not that developers don’t know how, it’s more about reducing expenses. Why maintain 2 build when you can maintain 1. This is why Vulkan needs more of a push instead of Linux native builds.
Nice that valve created proton, it made gaming easier to come into in Linux. Unfortunately some companies is aggressively including some features which are not compatible with Linux (e. g. Kernel level anticheat) and some games has broken compatibility (e.g. EA Sports wrc) or rockstar introduced easy anticheat which is compatible with Linux but rockstar broken something and don't want to fix it. Hope that MS would get third party things away from kernel. Crowd strike should be a lesson for MS.
I'd say less a lesson for Microsoft and more a lesson for everyone. First, people shouldn't have accepted Crowd Control just pushing software updates without internal testing, and everyone should have realized Kendall l kernel level security is dangerous. It never should have gotten here.
I mostly game on Mac. Steam hardware survey doesn't account for this as the survey fails to detect the hardware then using CrossOver, so the 1.29% on Steam Survey is definitely misleading, as most Mac gamers are on CrossOver or Game Porting Toolkit or Parallels (CrossOver is the biggest by far, it is essentially our SteamOS with Proton). Anyway there are a lot of us out there, and there are a lot of people on Linux and there are folks on ChromeOS. There is potentially a future of smartphone users. So yes I think rather than trying to get developers to spend money on smaller platforms of which there are many, we should be asking them to just make their games use as many common standards as possible so translation layers are more compatible. We can all benefit from this including the devs, which won't be throwing money down a pit. This can lead to a future where Linux is more dominant or Mac gaming sees more adoption, and then at that point it will make sense for developers to pursue native games on those platforms.
Game developers should be making native Linux games... Proton is genuinely amazing on it makes so many games just run. But we should not have a totally windows centric gaming world. Especially as it's soon to be totally awash with adverts... AI and spying... Just yuck
I agree but how do we encourage developers to make Linux Versions a lot of the time they just don't want to. hell studios like Bungie would even ban you if you dare use Linux on their games.
Yes, but with Windows so entrenched and Linux being such a small percentage of the OS market, making native Linux versions doesn't make much sense, just from a programming standpoint.
Proton is truly a blessing and the progress needed for me to be able to switch completely to Linux. Also, I don't think we should demand anything as Linux users. At the same time, however, I hope for a future in which we no longer need Proton. In particular, for larger titles, or the most important larger engines, it should be a goal to support cross-platform standards such as Vulkan and to provide build tools that work for the different platforms with as little extra code as possible. The goal should be to develop the game in such a way that it also runs on Linux (beside Windows, XBox, etc.), rather than to port it. One more thing: I think some of the requirements for a Linux game developer are exaggerated. For example, I would like an explanation of why you need a kernel developer to release a Linux game. Does this relate to the development of anti-cheat tools? Isn't that more of a specialized discipline where even a larger developer buys tools from external sources, some of which are also available across platforms?
Unreal supports the Vulkan backend, we just need to convince developers to use it. It will probably happen as mobile platforms become more viable and don’t support directx natively. It’s kind of like how Linux got support for many USB class compliant audio interfaces working, due to Apple not allowing separate drivers to be made messing with the IOS images.
I'm a developer and there are so many things in this video that is not quite true, but I just accept that as poetic freedom. I don't expect anyone goes to youtube for actual information.
Care to elaborate? Not coming at you sideways, just want to pick a dev's brain! I'm just getting into this field (cybersecurity) kinda late in life (32 lol) too, so the more I learn the better!
I think the best solution would be a common runtime (like steam kind of provides already) that is supported on all operating systems. But we all know how well industries like adopting a universal standard :/
? ? And then what, we can play Clash of Kings on our Linux devices? Don't get me wrong, it's good to extend support to ARM and even support Android. But it won't be a game-changer, and doesn't solve any of the fundamental issues that exist right now with Proton. Which is mostly related to kernel-level anti-cheat, which won't be solved by any compatibility layer no matter how powerful it may be.
@@Sjoerd1993 Having Proton on ARM is specifically a big deal for is for laptops and portable gaming pcs (steam deck, ROG Ally, etc). Being able to build them with ARM processors means you would get SIGNIFICANTLY better performance per watt; meaning better temps and a lot longer battery life.
I can't wait for ARM desktops/servers. ARM is the future of ALL computers, not just mobile devices. Also, running windows software/games with Proton (yes you can do it with Proton, it's called protonhax I think) on a pi would be pretty awesome!
This is caused by a complete denial of compatibility from the anti-cheat system itself, not from some difficulty in translating the instructions. When you eliminate the need for compatibility layer, like with emulation, often the anti-cheat will /still/ disallow you from playing. "Why," you may ask? Idk... But many anti-cheats /do/ allow compatibility layers like Wine because of how noisy the Linux community can be, it's just that that support is disabled for undisclosed security reasons for games like Fortnite (Tim Sweeney is my favorite example) or that other popular one that I forgot
That is because games are allowing game companies to hook into their kernels. Gamers need to start rejecting companies and games that insist on this unsafe practice. More gamers need to refuse to play games with these types of anti cheat. Frankly you can't be sure the companies making those games or the companies making the anti cheat components aren't browsing your drives or worse. Its interesting that basically all the anti cheat companies that use these methods are founded/staffed by Ex Black hat types. If a game wants kernel level access... don't play it.
Well you learn something new everyday. I thought I knew what a compatibility layer is, but apparently I did not. All I knew was that it wasn't emulation.
When Proton first came out I actually saw people saying "This will discourage people from making native Linux ports, so I'm against this." 🤦 I personally love the fact that I'm running a Windows game on a system it wasn't designed for -- it's subversive. And people are missing out on the bigger picture: Proton is slowly becoming a drop-in replacement for Windows. Don't forget, Proton can be used for more than just games. You can run any app you like through it, including regular Windows desktop apps. The NES uses a 6502, the rival Sega Master System had a Z80. :-P
@@GrzesiekJedenastkaProton is more like Wine + many other goodness. It's a superset of Wine, so to speak. It does contain a forked version of Wine, but Valve has been a good open source contributor to the upstream Wine as well.
Talos Principle 2 developers stated they offer no support for Linux, and the game runs perfectly with Proton. I played the whole game including DLC, amazing performance, zero complaints here.
Let's not also forget that Valve themselves recommended to game developers to NOT make native Linux ports when Steam Deck was originally announced, and instead rely on Proton for these exact reasons. Also, I have found that for some games, the native Linux build is simply not updated when the Windows version is patched. Some games have broken functionality in their Linux ports (for instance Getting Over It with Bennett Foddy), and often times cloud saves do not work between Windows and native Linux ports (i.e. Blasphemous). For both of these examples going into their Steam settings and forcing Proton (and by extension making Steam install the Windows port instead of the Linux one) actually solves both of these issues. The Windows ports are updated and patched more frequently, and are generally more stable, leading to a better user experience under Proton than native Linux builds. I can foresee perhaps a future where PC ports, as well as console ports could be written for platform agnostic APIs, and the games themselves just run as a containerized application in Windows, Linux, Mac or consoles. It seems to me like we are not too far off from that point even now.
As a Linux user, I hope developers start to get on board with gaming. Proton and Steam have made great strides in Linux gaming and it is greatly appreciated by Linux users. I hope there is a day when I will not have to check for compatibility before I purchase a game.
Wine is not an emulator, but it has many, MANY things that are emulated. That doesn't mean it's slow, of course, it's emulation of features that barely have an impact in performance. In some cases it even has _better_ performance under this emulation because there are some bottlenecks that may no longer be there. For example, some syscalls may be emulated with fewer calls (or none), and disk operations may be faster because the underlying file system is just better. DX11 was THE reason of the performance and compatibility problems with Wine because there was no clean way to translate it to OpenGL. While Vulkan has the common denominator features for all higher level APIs, as well as being super similar to DX12.
I think there's some important information that most people miss or don't know : Proton is WINE, with Valve's patches/improvements. WINE also benefits greatly from the work others are doing to improve the compatibility layer. And WINE is an acronym for: WINE Is Not An Emulator.
Fun thing is that, some Windows games will work on current Linux versions, but not on Current Windows versions since proton only translates into an API it can translate to any older windows edition that was once translated.
The problem with native Linux Games is, that the market share is very low. For developers, it's easier to target Windows and support other OS via Proton (Wine).
Thank you for this video! Coming more from the business/consumer side of tech, this answered a lot of questions that I've had for a while. It's not often a video gets a rewatch, but this will be one. Liked, subbed, and soon to be: a dudelings player.
The main issue with Vulkan is that it's a really low-level API. Something that takes only 10 instructions in OpenGL will take hundreds of instructions in Vulkan. That is why game engines target higher-level APIs such as OpenGL or DirectX, because it's just too painful otherwise.
Nice summary. I'm not sure how a compatibility layer can become a baseline, however. It's not something you program to, it's something that translates code you've programmed for.
you have to understand this: Linux offer better performance in games... but devs dont know how to "develop for Linux" (is not that hard... but they are just "not good"). Proton offers a perfect solution "out of the box" who don't demand big compromises of resources and mach (even surpases) the mediocre results of natives Windows games. This is good enough for users to stop using that crappy OS (sadly get worse day by day) and switching 100% to Linux. In a future (interesting not far), competition will push devs to reach the best performance ... and everyone here knows Linux offers that
@@elbuglione And yet most Devs don't seem to have a problem releasing games for FreeBSD, albeit Sony's fork of it. Makes me think it's more of a case of whatever middleware they're using not targeting Linux. But given there are so many Linux distros, I wonder if it's possible to make the games work on each and every one of them.
@@martinh4982 yes, they has....indeed in PS3 era, SONY has a major problem to reach devs. Nowadays, devs only port on Playstation because its has a second biggest platform in the world. the problem of "distro choice" is problem close to been resolved... we have to wait what will do VALVe with full release of SteamOS or will make a mayor flip to ArchLinux.
Proton is native Linux games Proton converts Windows games to "native" Linux games on the fly. Native, because games talk directly to the hardware after the conversion and no emulation on CPU is performed. Important to note, that the Windows game is not native, but becomes native after the WINE translation. It's just not saved, so every time you play it needs to be converted; kind of like a JIT, Just in Time interpreter.
The biggest problem is that there are bugs in the games which only make the game crash on Linux. And hence another application specific bug workaround is added to wine. But that is what makes wine better than windows.
If the game has been made for Windows, then crashing on Linux is not an application specific bug. Wine making a specific workaround for it is compatibility.
Wine and Windows are not comparable Wine is a drink , made from Grapes Windows are a hole usually in a wall , with glass most of the time, to allow light in and out Wine is better than Windows to get Drunk., but Wine is useless to see what is outside. oh wait you talking about Software, fair enough
An extra pointer lookup is just several CPU cycles. With 1 GHz clock speed, that's in the order of nanoseconds, not even microseconds, much less milliseconds. Basically it's so negligible it won't affect performance.
The performance impact is so incredibly negligible when you think about the logic that went behind the system deciding to make the call (if blah then check arguments for validity and maybe CALL with 1 -> all Wine has to do is see CALL and do MYCALL with 1). Besides, more heavy systems like the rendering system are not only boosted by Vulkan, but the lookups in question are put into the CPU/GPU's memory (as they do on every OS), negating that already negligible performance cost
It should be emphaszed (to avoid misunderstandings) that the regular user can also directly interface with both the kernel and the hardware by using systemcalls (kernel) and for example assembly (CPU). Practically speaking most regular users don't do that because it is much easier to just use API's and systemlibraries, let those do the heavy lifting but if you want to explore how it all works then you want to play with that. Withn emulation you simulate the hartdware in software, your real hardware has to do a lot of extra work to pretend to run on that simulated hardware. You can't understand this without studying some CPU-architecture. wine and dxvk simply translate instructions from one set of libraries to another. For example, the instruction could be to solve a quadratic equation, on both Linux and Windows we have functions avaialble which will do that for us, wine could then simply figure out which functions on Linux should be used to get the same result as what Windows does. That is pretty easy to understand for anybody who has learned a tiny bit of programming.
No. It's just easier for proton to run it because it's the same API on both operating systems. Also a good note is that Vulkan enabled systems are by far not as Ubiquitous as DirectX systems. Because DirectX is from the mid 90s and only GTX 600 series/ HD 7000 series and up have Vulkan support.
It is not really about Proton, Proton just uses wine and dxvk. wine comes from an external company, dxvk is a fusion of d9vk and dxvk, these were projects which were started by teens to just play their particular game(s), at first, then eventually it got pretty complicated and Valve offered to hire them and put extra developers on it to support these guys. Both dxvk and wine translate functions from Windows (in the case of wine dll=>so) to functions which we have on Linux (so and Vulkan) so that we get the same output for the same inputs. Proton just uses these tools and adds to that some scripting to make sure that everything is intalled what you need (like C# libraries) and that certain files are created, because some games need additional files on your winedrive (an example is The Witcher2, it won't start without certain files in your 'Windows' user-Documents path. Simple enough for Valve, the tricky part is to work it out for thousands of games, that took a lot of time.
I wouldn't say "Proton uses WINE" I would say, "Proton IS WINE" because it is Valve's fork of WINE. As in, they are the same thing but with Valve's tweaks and additions mixed in. When you install Steam on Linux, you do not need to also install WINE separately nor is one a dependency of the other. Edit: Also, Proton-GE is also WINE but with Valve's AND GloriousEggroll's tweaks and additions.
@@Alex_whatever Fair point but it also uses dxvk and has some additional scriptiing, right? It is more like Lutris in that sense but with Valve's fork from wine and dxvk all contained in one directory (name it a container if you like). I tried out Proton-GE multiple times when I was not happy with the result from the regular version, for me so far it never made a difference. However, in general (I have played Deadlock though) I play older games (I wait for a lower baseprice, good discount and all DLC's included), for newer games it probably makes more difference.
The 6502 vs z80 flame wars have been stoked. Somewhere, somebody is building a nerd gulag for you to mine the metals necessary to create new 8bit processors.
Nice Video this is very informative for everyone who's got some ambition to make the switch to Linux. I've already made a comment somewhere on reddit about the topic and IMO just let devs make games for windows by default. I don't care if on Linux we are going to use compatibility layers forever. It just works perfectly in so many cases. Portproton and UMU is there for us to make use of Proton outside of Steam. it's quite a ride with Linux with a power user mindset, but for any normal user getting windows games to launch so easily with Proton is outstanding and just tells the long tale of how easy Linux Gaming is. ex.: SH2 Remake just came out. I'm on Mint 22 so I don't even have the latest Nvidia driver. I didn't even think about if it's going to run. Turns out it runs perfectly. but it has to be said NOTHING is perfect Linux Gaming still has it's short comings and might not be for everyone to thinker around when something just doesn't work OOB. So while Linux has it's own set of issues and is not always perfect, neither is Windows.
There have also been cases where developers start out with a native Linux build, but it's so much work running two builds (Windows and Linux), that they just abandon Linux. It's better in many cases just to have a single code base and test on Proton.
Hey Gardiner, Big fan of everything Proton has done for Linux and completely with you on that. I did watch a video the other day from The Linux Experiment. Nick mentioned about how Microsoft could potentially block Proton or make changes to render it useless if they decided to. Never thought about it like that or even if they could but would love to hear your thoughts on it.
I fully agree with you and given that Valve also aims to port Proton to ARM, everyone outside the Windows cosmos might benefit from it long term. Be it Linux, macOS, Android, iDevice OS or what have you. Companies that actively block Proton from working harm us more than they do good, but given how much money OEMs still make by listening to Microsoft and Jensen, I could very well see them going for similar routes. No seriously, even for Windows itself Wine/Proton is a good thing as we have seen with Intel ARC which barely ran any game initially until Intel went for the DXVK route.
Rather then linux only games, i'd prefer if we had a company / platform which supported the scenario of preservation beyond supported lifetime... the antithesis of Nintendo if you will. So for example it could state in the license terms: When purchasing any title for this platform from a vendor you agree to a limited license agreement to not modify or redistribute source (with whatever provisions for DLC's). The license period can be undefined at the time of purchase ie. up to the game studio to announce its expiration, ideally when the game itself isn't going to receive any more "official support". After the license period has expired the conditions also expire ie. people can create 3rd party workarounds / services to keep these (now legacy) games running as intended to be experienced by the original developers. This also covers emulation and enhancements to a degree (texture packs, etc.)
Since the games I play all have no anti cheat, I'm 100% certain that by next year Proton will be able to run every single game that I play. And that will be the time I migrate wholly to Linux, leaving Windows 10.
Game aimed at Proton -> Works on x86 Works on Arm Works on windows Works on Linux Works on Android Works on ARM Windows Works on MacOS? (Ok maybe maybe no on that one). Make Proton the master race... Gaming FreeBSD distros.... why not. Proton is how game developers escape all OS jails without having to recompile, tweak, optimize or even support OS level stuffs. Imagine console ports... that aren't ports at all.
Nah, it won't ever be ther base line for gaming when more and more companies are making sure linux gaming is not supported like with gta 5 even after 11 years. Good luck with gta 6 ever running on that.. lol.. Until that ever happens which it won't then linux gaming is just an ok thing while possible
Never say never. And while this anecdote about GTA is true, it is Just one Game. If you Look at the Other thousands of Games the Overall Situation is quite amazing already. Gaming on Linux is a Thing now, thats new and only slowly growing; but its growth Continues, Performance is on Par with Windows already and continuing to get better. Similar for compatibility. And the anti Cheat Problem will at some Point vanish as soon as enough people have switched.
I think the bigger question than why not support Linux builds should be, why not use Vulkan instead of directx and build to proton for maximum performance? Unreal supports Vulkan and most devs can poop out a binary pretty easy. ID tech engines are Vulkan or OpenGL based as well. That’s what Linux gamers should be pushing. Also, it would make it easier for devs to port to mobile later on if they do choose.
Great video, and on point. (other than the z80 in a nintendo bit lol). Until we have a big enough market share to be a profitable market share, the most we can ask for it to play nice with proton, or vulkan. I am hoping that with the fragmenting of hardware (arm based machines are chipping away at the x86 market) that studios will start to play nicer with translation layers to begin with, as I think the gaming ecosystem as a whole is about to see fragmentation that is close to what we used to have before pc clones consolidated the pc gaming architecture. The thing about ARM solutions, when everyone can make their own chip, everyone can make their own implementation... it's gonna get messy. All that said, a shout out to the WINE project (which proton relies heavily upon), Valve, and all the studios that play nice with our translation layers so we can game and not run windoze.
Thank you for spending some time on this. I fully agree with you. I game exclusively on Linux, and my old gaming rig is competing with (and sometimes exceeding) the performance of my friend's much beefier gaming rig. I find that most games that work, work as well or better than on Windows. The anti-cheat thingy is extremely annoying (but not of huge significance for me). I accept having to use Proton, but no Tux no bucks!
Games that work in the first place would be a big step. Most things not running under Proton also barely work under Windows. One of my favorite examples is Warcraft 3 and Warcraft 3 Refunded Edition One of them works, and still runs in vanilla wine. The other is a broken mess barely held together by duct tape. When we play it we first make sure no one is playing reforged graphics because the list of bugs is too big too address. You basically never now what will even be displayed or just crash the game.
No ... Win32 + DX IS the platform. Proton is just an implementation of it on Linux! Thanks to everyone that made win32+dx the best open source gaming platform!
Frankly, since games are usually proprietary anyway, it doesn't matter really whether they are speaking win32 or X11. (Native Wayland ones could have some advantages tho…)
Windows being based on DOS isn't entirely true. Windows NT is a very different system to DOS, it has an entirely different kernel and may as well be a different OS all together. Although Windows 2000 and 98 look very similar on the surface, underneath they are entirely different. NT had to provide a compatibility layer to DOS early on for user adoption; so stuff like the drive letters and filesystem structure were made the same for compatibility’s sake. In any case though, modern UNIX-like systems are still vastly better designed than Windows NT 🙂
With Java and OpenJDK, I only needed to make 1 change for my Linux window system to correctly setup my window. Idk if that is universal across Linux(I have Mint).
With Proton being this good, we can today have dedicated Linux VMs with a dedicated OS for each game release. It's only like 200 MB extra overhead and then qemu takes care of all the compat :) Also; One other reason why you do NOT want Linux native games, is that Linux has no problem leaving behind ancient tech. This means old gems like Neverwinter Nights and Unreal Tournament 2004 are unplayable today, despite having native ports. Linux is just not binary compatible. Period.
So, what you're saying is that Proton is an API..... that is what it's doing. It's an API for running windows games on Linux. Which by definition all APIs are "Native". Proton IS Native.
Economics make Linux game development a massive headache for devs, so PROTON is the best way forward at the moment due to the different size in userbase of Windows users vs Linux users. So as long as MS doesn't deliberately try to block Linux gaming within Windows then PROTON will continue to be Linux users best option, once Linux gains enough userbase then they will want to sort out the anti-cheat themselves so we just need to increase our numbers :)
On a 3rd Gen i5, wine used half the CPU. On my 5900HX, It uses only a tenth. If you have an older machine, I would get the perspective that proton is slow.
Overall an excellent video explaining what all this is. WINE - W ine I s N ot an E mulator I wonder if WINE started as WIN dows E mulator. :D And later changed the name. I mention this, because Proton includes WINE.
More games working on Linux means more people will choose to Linux as a viable option. More people using Linux will mean developers will maybe, eventually, have more incentive to create native games for Linux. But before any of that happens, you have to get the numbers up, and this is how you do it, using Proton. At the very least, at the end of the day today, we can play games now, and that's pretty cool! It's certainly been cool enough to get friends and family to switch over to Linux. So I think it's been a success so far.
@@AstraPlanetshine people still won't pick Linux even if it's much more viable. Because they firmly believe windows is better even when it's clearly not the case.
It already does. EAC and BattleEye do exactly that. The problem specifically is kernel-level anticheat. Which, apart from being a terrible idea, requires the anticheat developers to write kernel modules for Linux, and the user in turn installing those to their own system. Basically granting a gaming company complete right to your devices on a hardware level. It's madness, which is not really different for Windows either by the way.
Before proton game developers needed to actively convert everything for Linux and keep it up to date. Now game developers just need let Valve takes care of most the support themselves. And despite all this some developers rather spend money and time to make sure that you can't run their games under Linux: I guess that our kind and our money is just not welcome. 🙄
I see Proton as a transitional piece of software. It's good for now, but it's always going to have an overhead, and thus will be obsolete once the tools that support linux as a compilation target get mature enough. Similar to how golang supports native compilation to multiple OSes and architectures, without having to do anything extra.
Having to maintain multiple binaries with their dependencies will consume time and effort. If the game dev targets Wine, that's a well defined dependency. Unless you really require the smallest latency, e.g. for "e-sports", the overhead of Wine will be negligible as the majority of time consumed will be on the GPU. We're talking about latency in the order of hundreds of thousands of CPU cycles here. At 1 GHz that's in the order of microseconds.
but still, Windows being synonomous as "PC" platform sucks so much. But I guess proton compatibility is far more preferrable than switching to (or even dual-booting) Windows
A compatibility layer emulates software, rather than hardware. But don't let people hear you say that software that emulates is an emulator, or they will wine.
to put it simply, i want dev´s to make game´s and programs for Linux, without layers on layers in emulators for MS C+ code and so on. so even if proton is good, i sitll dont want it. i want dev´s to make it for US! 20 years ago, i would happily tinker to emulate Windows on my Fedora OS. But i am old now, i dont want to tinker anymore. and most of all, i want to leave MS. only reason i run Win11 today is Vegas Pro, and Helldivers 2. Games breaks with every update. i dont want to tinker every update anymore...
i guess i got the short end of the stick with Satisfactory running at 1/4 of the performance on Linux/Proton... (30 FPS and extremely stuttery) tho i hope that things progresses enough so that those edges cases stops popping up and even kernel anti cheat can work and be aware it is on Linux and still performs it's task!
WINE (and Proton which is based on it) are crutches. Very useful crutches, but crutches nonetheless. Would I rather be able to run a game under Proton than not run it at all? Of course. Would I prefer a native linux build, supported at the same level (IE: patched at the same time, kept up to the same standard as the Windows version, supported just as well as the Windows version)? Of course. Do those things add up to an additional support cost to the publisher? Probably (unless they hire folks who are well-versed in both sides, who would likely cost more). Do I think that's worthwhile? Of course. Unless linux is natively supported, at the same level as Windows, it'll always be a second-class citizen. But, for now, Proton is doing a good job of being the crutch that makes more folks *able* to switch away from Windows, which is nothing but a good thing. Hopefully as MS puts their foot further and further into their users nether regions, forcing more and more ads and siphoning more and more data, more will make that switch. And, if enough make that switch *maybe* we can get native support eventually. That should be the goal, anyway.
Well, thanks for the explainer. As I am unfortunately still enjoying League of Legends and Valorant ... looks like I am not moving my Gaming Machine to Linux. Proton looks cool though.
What I would be happy to see, if at all possible (I'm no developer), it's Linux builds that are "prewraped" proton builds of their games. By taking Linux support in their hands, in this way, these devs would prove us that they really care about Linux and/or the Steam Deck.
@@sergeykish That's true, but we also see games getting broken after an update because devs don't test against Proton. Somehow, I would like to know which devs take care about Proton, before throwing my money at them. Some form of official Proton support is required, imo.
As of my experience with Linux on my gaming desktop it just works and much faster than windows In gaming i have not seen much of an issue and i played many games on lunch day like ffxvi Like a dragon gaiden and 8 Tekken 8 Tbf i only been on Arch but it works very well
TBH I prefer proton over native.. native games end up being dependency HELL as the port ages... Just saying as I have alot native games but play the proton versions because majority of them do not work or work as well as the game in proton even when they work
I want to believe that linux is better in gaming or at least on par with windows. But from my experience in using linux, I've had worse performance. I can play ff16 at max settings on win10. However on linux, it cant render things properly and the fps is less than 20, even on low.
Patrons get beta access to my new game Chess Mess. Details here: www.patreon.com/posts/113479246?
*My Game*
❯ Dudelings: Arcade Sportsball: store.steampowered.com/bundle/41202/Dudelings_Arcade_Sportsball_Deluxe_Edition/?
❯ Dudelings on Google Play: play.google.com/store/apps/details?id=io.heavyelement.dudelings&pcampaignid=yt-every-video
❯ Dudelings on Itch.io: heavy-element.itch.io/dudelings
*Affiliate links*
Best Steam Deck Accessories:
❯ SanDisk 1 TB card: amzn.to/3z8mMfH
❯ Steam Deck Dock: amzn.to/3PDjgkt
❯ Steam Deck accessories: amzn.to/4c2XKkM
❯ DualSense: amzn.to/3WR1u1R
❯ Gulikit KK3 Max controller amzn.to/4dqRaoC
❯ DualSense Edge: amzn.to/4cuzIyd
❯ 8Bitdo Pro 2: amzn.to/46R7hcz
❯ Amazon Suggested Products: amzn.to/4fAha2h
It's not realy a "compatibility layer". proton or wine basically just provides APIs on Linux that Microsoft does provide on Windows. There is nothing being emulated, it's basically just developing the Windows C-API, the DirectX-Api &c. a second time. Thats not over head. It's just making the APIs a second time. And I have to say , while the Windows C-API is old, it's extremely well kept backwards compatible. Backwards compatible software is something that was impossible before flatpack or similar efforts. I realy think MS deserves gratitude for their housekeeping of the Windows C-Api !
It's just a pure win to have this API on Linux. Games are just apps. Why not make the same app for several systems in the same way with the same tools?
@@TremereTT Backwards compatible software was quite possible before flatpack, but it did require installing multiple versions (ie, and older glibc) of a library, often outside of the package manager as those are designed to keep a system strictly current. The only software that is truly not backwards compatible on linux is anything relying on kernel functionality that no longer exists. One thing I do truly appreciate though, is the fact that even my old games work on linux, when they no longer function on windows (I can't even install kings quest on windoze these days, much less expect it to run)
Made for Windows ❌
Made for Proton ✅
The real horror for Microsoft: STANDARDIZED PUBLIC APIs
@@Bokto1Oh riight I totally forgot those, how does all this .net and directx stuff work on Linux?
A native linux game is great when it happens, but I'm perfectly content as long as nothing is done to prohibit a game from working via proton.
Native sounds nice and all but has anyone actually tried to run an unmaintained commercial Linux native game a few years after support has ended? Good luck with all those libs you are no longer gonna have or have the correct versions for. I just had to jump through hoops to get the Linux build of X3 working. Where as with Wine/Proton I can much more easily "package" the game up in a prefix that will run pretty much anywhere wine is without dependencies. I find this a much better solution that has preservation benefits.
The Sims 2. Ever tried installing The Sims 2 and all it's expansions? Let me tell you there are a LOT of those. Takes a while but I have not had to reinstall it for years now. I just take the prefix with me with all the stuff preinstalled. Archive that onto my NAS and I have now preserved that for me pretty good xD. A lot of this can be solved with modern packaging formats like flatpaks and stuff but I think asking that too might be too much lol.
I would really like to see an easy way to package up a wine prefix + the runtime and everything into an appimage like package that I can just run on any x86 machine.
@@TheLukemcdaniel Would every DRM free Windows game work?
@@Falsechicken there's crossover for that
@@imnotusingmyrealname4566 drm free is icing on the cake, yes
yeah like Rockstar who stopped me enjoying gta5 on steam deck.
The NES did not have a z80 CPU, it was based on the 6502.
I was originally going to talk about the Sega and I forgot to change the name of the CPU. I can't believe I missed that. I've been writing this script for 4 months. 🤦
I was going to say the same thing. When he was showing the assembler language code, I was like "that's 6502!" I should know. I taught myself 6502 machine language/assembler programming on my Apple ][. Man, I miss the days of Apple when they were all about being open about their tech. I had the Apple ][ redbook that mapped out all of the memory space of the Apple ][ system monitor/ROM, etc.
I even later got a Z80 card as well for it and ran CP/M for awhile. I had the Orca Macro Assembler and the Aztec C compiler environment. The Apple ][ is what got me into programming and it's been my job every since I graduated with a degree in computer science. Still love it to this day.
This, not even a coder but sega thing makes sense. Tho motorola based mega drive was bigger than z80 based master system/mark3. Then again Genesis has all the same hardware and is backwards compatible
@@SumeaBizarro I never owned the MS, but I did purchase the Genesis when it came out and loved it! Owned both the OG NES and the Genesis system. I also then purchased the MS adapter so I could play MS games as well.
Sega? I thought the z80 was the processor used in the Game Boy am I wrong? Or were they used in both?@@gardiner_bryant
"Natural Selection 2" btw. is a great case study. They went all the way to a native linux build and at some point reverted to supporting linux via proton for the exact reasons you mentioned.
I've been a linux gaming supporter since 1998... Bought any game with native linux support. Currently I can only run those games using proton.
You can't run the windows version of these games on windows 11, but you can run them on proton. You can't run the linux version either.
So in the end, the only ABI/API that survived is win32 on proton. Not on windows, on proton only.
Win32 has become a kind of lingua franca for software. If I want to run an old Linux package (let's say from the 2000s, for instance) then I don't even bother because the library dependencies are never going to be satisfied. I just download the win32 exe, run it through Wine, and most stuff just runs immediately. Given the focus on old games through dxvk, I'm wondering if Linux will quickly become better than Windows for old win32 software.
Native linux games do work at any point in time if they are compiled all statically. It is not the default for most compilers, though, so we got into this mess.
Same reason I can use Microsoft Office 95 on Linux and not on windows 10/11. It’s also REALLY snappy too! I’d say it’s better than OpenOffice or FreeOffice, but the file types are too old to use for anything outside of a quick word doc.
@@johnknight9150it already is better for running old Windows software.
@@DiThi Now try installing an .rpm from 1998. You are in for some pain, my friend! ;-)
Honestly, I hate our stubborn reliance on the repo system -- it's as if we all decided to pretend dependency hell doesn't exist and that we've never had our package manager crap out on us, leaving a knackered system.
I know Flatpaks aren't perfect, but I'm so glad we've finally started adopting 3rd party packaging. I never want to troubleshoot a package repository ever again in my life.
7:07 liking the smash button for the algorithm.
Proton is in effect Xwayland of pc gaming.
Well It’s looking like Proton 10 might be native Wayland. No xwayland and be will be built against sdl3
@@phoenixrising4995 What I'm referring to is that proton is the stop gap measure to get everyone onboard. But because of the path of least resistance. There is a danger of becoming the go to default.
If people don't understand Proton, there's a high probably they have no idea what Wayland (or X) is. Haha
@@gardiner_bryant they won’t care, it’s not that developers don’t know how, it’s more about reducing expenses. Why maintain 2 build when you can maintain 1. This is why Vulkan needs more of a push instead of Linux native builds.
@@gardiner_bryant This is true. However I couldn't, not see the parallels between the two.
Best bet for developers is to not block linux intentionally. With everything else community will come up itself.
Nice that valve created proton, it made gaming easier to come into in Linux. Unfortunately some companies is aggressively including some features which are not compatible with Linux (e. g. Kernel level anticheat) and some games has broken compatibility (e.g. EA Sports wrc) or rockstar introduced easy anticheat which is compatible with Linux but rockstar broken something and don't want to fix it. Hope that MS would get third party things away from kernel. Crowd strike should be a lesson for MS.
I'd say less a lesson for Microsoft and more a lesson for everyone. First, people shouldn't have accepted Crowd Control just pushing software updates without internal testing, and everyone should have realized Kendall l kernel level security is dangerous.
It never should have gotten here.
I mostly game on Mac. Steam hardware survey doesn't account for this as the survey fails to detect the hardware then using CrossOver, so the 1.29% on Steam Survey is definitely misleading, as most Mac gamers are on CrossOver or Game Porting Toolkit or Parallels (CrossOver is the biggest by far, it is essentially our SteamOS with Proton). Anyway there are a lot of us out there, and there are a lot of people on Linux and there are folks on ChromeOS. There is potentially a future of smartphone users. So yes I think rather than trying to get developers to spend money on smaller platforms of which there are many, we should be asking them to just make their games use as many common standards as possible so translation layers are more compatible. We can all benefit from this including the devs, which won't be throwing money down a pit. This can lead to a future where Linux is more dominant or Mac gaming sees more adoption, and then at that point it will make sense for developers to pursue native games on those platforms.
Game developers should be making native Linux games... Proton is genuinely amazing on it makes so many games just run. But we should not have a totally windows centric gaming world. Especially as it's soon to be totally awash with adverts... AI and spying... Just yuck
I agree somewhat, I think proton is great and a fine platform to target but more native linux games are needed
Exactly 💯💯
I agree but how do we encourage developers to make Linux Versions a lot of the time they just don't want to. hell studios like Bungie would even ban you if you dare use Linux on their games.
Yes, but with Windows so entrenched and Linux being such a small percentage of the OS market, making native Linux versions doesn't make much sense, just from a programming standpoint.
It's literally built into most game engines, why even not do that
Proton is truly a blessing and the progress needed for me to be able to switch completely to Linux. Also, I don't think we should demand anything as Linux users. At the same time, however, I hope for a future in which we no longer need Proton. In particular, for larger titles, or the most important larger engines, it should be a goal to support cross-platform standards such as Vulkan and to provide build tools that work for the different platforms with as little extra code as possible. The goal should be to develop the game in such a way that it also runs on Linux (beside Windows, XBox, etc.), rather than to port it.
One more thing: I think some of the requirements for a Linux game developer are exaggerated. For example, I would like an explanation of why you need a kernel developer to release a Linux game. Does this relate to the development of anti-cheat tools? Isn't that more of a specialized discipline where even a larger developer buys tools from external sources, some of which are also available across platforms?
Unreal supports the Vulkan backend, we just need to convince developers to use it. It will probably happen as mobile platforms become more viable and don’t support directx natively. It’s kind of like how Linux got support for many USB class compliant audio interfaces working, due to Apple not allowing separate drivers to be made messing with the IOS images.
7:06 Like that smash button
I'm a developer and there are so many things in this video that is not quite true, but I just accept that as poetic freedom. I don't expect anyone goes to youtube for actual information.
Care to elaborate? Not coming at you sideways, just want to pick a dev's brain! I'm just getting into this field (cybersecurity) kinda late in life (32 lol) too, so the more I learn the better!
I think the best solution would be a common runtime (like steam kind of provides already) that is supported on all operating systems. But we all know how well industries like adopting a universal standard :/
Yup it would just be Yet another Standard that only 5 peiple or so use 😂
Soon Android is coming to Proton and Proton is coming to ARM. It's game over.
? ?
And then what, we can play Clash of Kings on our Linux devices?
Don't get me wrong, it's good to extend support to ARM and even support Android. But it won't be a game-changer, and doesn't solve any of the fundamental issues that exist right now with Proton. Which is mostly related to kernel-level anti-cheat, which won't be solved by any compatibility layer no matter how powerful it may be.
@@Sjoerd1993 Having Proton on ARM is specifically a big deal for is for laptops and portable gaming pcs (steam deck, ROG Ally, etc). Being able to build them with ARM processors means you would get SIGNIFICANTLY better performance per watt; meaning better temps and a lot longer battery life.
@@blaze595true and Microsoft is working on Windows for ARM based processors.
I can't wait for ARM desktops/servers. ARM is the future of ALL computers, not just mobile devices. Also, running windows software/games with Proton (yes you can do it with Proton, it's called protonhax I think) on a pi would be pretty awesome!
... Proton can only emulate windows. It was designed to emulate ONLY windowns. Emulation of Android works completely differently from Windows.
The problem with compatibility layer is, it is kinda tricky to run online game with anti cheat software.
This is caused by a complete denial of compatibility from the anti-cheat system itself, not from some difficulty in translating the instructions. When you eliminate the need for compatibility layer, like with emulation, often the anti-cheat will /still/ disallow you from playing. "Why," you may ask? Idk... But many anti-cheats /do/ allow compatibility layers like Wine because of how noisy the Linux community can be, it's just that that support is disabled for undisclosed security reasons for games like Fortnite (Tim Sweeney is my favorite example) or that other popular one that I forgot
That is because games are allowing game companies to hook into their kernels. Gamers need to start rejecting companies and games that insist on this unsafe practice. More gamers need to refuse to play games with these types of anti cheat. Frankly you can't be sure the companies making those games or the companies making the anti cheat components aren't browsing your drives or worse. Its interesting that basically all the anti cheat companies that use these methods are founded/staffed by Ex Black hat types. If a game wants kernel level access... don't play it.
The best Online games of today have a Native Linux support.
Indeed.. everyone is talking about the next big online title: Deadlock
Well you learn something new everyday. I thought I knew what a compatibility layer is, but apparently I did not. All I knew was that it wasn't emulation.
When Proton first came out I actually saw people saying "This will discourage people from making native Linux ports, so I'm against this." 🤦 I personally love the fact that I'm running a Windows game on a system it wasn't designed for -- it's subversive. And people are missing out on the bigger picture: Proton is slowly becoming a drop-in replacement for Windows. Don't forget, Proton can be used for more than just games. You can run any app you like through it, including regular Windows desktop apps.
The NES uses a 6502, the rival Sega Master System had a Z80. :-P
Why would you use Proton, a Wine fork for Steam, to run desktop software rather than just Wine?
@@GrzesiekJedenastka You can use both. :-) They're optimised a bit differently, so if it doesn't work in one, it might work in the other.
@@GrzesiekJedenastkaProton is more like Wine + many other goodness. It's a superset of Wine, so to speak. It does contain a forked version of Wine, but Valve has been a good open source contributor to the upstream Wine as well.
Talos Principle 2 developers stated they offer no support for Linux, and the game runs perfectly with Proton. I played the whole game including DLC, amazing performance, zero complaints here.
Let's not also forget that Valve themselves recommended to game developers to NOT make native Linux ports when Steam Deck was originally announced, and instead rely on Proton for these exact reasons. Also, I have found that for some games, the native Linux build is simply not updated when the Windows version is patched. Some games have broken functionality in their Linux ports (for instance Getting Over It with Bennett Foddy), and often times cloud saves do not work between Windows and native Linux ports (i.e. Blasphemous). For both of these examples going into their Steam settings and forcing Proton (and by extension making Steam install the Windows port instead of the Linux one) actually solves both of these issues. The Windows ports are updated and patched more frequently, and are generally more stable, leading to a better user experience under Proton than native Linux builds. I can foresee perhaps a future where PC ports, as well as console ports could be written for platform agnostic APIs, and the games themselves just run as a containerized application in Windows, Linux, Mac or consoles. It seems to me like we are not too far off from that point even now.
Loved that homestar runner voice
As a Linux user, I hope developers start to get on board with gaming. Proton and Steam have made great strides in Linux gaming and it is greatly appreciated by Linux users. I hope there is a day when I will not have to check for compatibility before I purchase a game.
Wine is not an emulator, but it has many, MANY things that are emulated. That doesn't mean it's slow, of course, it's emulation of features that barely have an impact in performance. In some cases it even has _better_ performance under this emulation because there are some bottlenecks that may no longer be there. For example, some syscalls may be emulated with fewer calls (or none), and disk operations may be faster because the underlying file system is just better.
DX11 was THE reason of the performance and compatibility problems with Wine because there was no clean way to translate it to OpenGL. While Vulkan has the common denominator features for all higher level APIs, as well as being super similar to DX12.
Earlier versions of Windows were based on DOS. But after Windows NT that changed.
Fantastic video Gardiner! Loved all the effort in the visuals, it really shines through!
I think there's some important information that most people miss or don't know : Proton is WINE, with Valve's patches/improvements. WINE also benefits greatly from the work others are doing to improve the compatibility layer. And WINE is an acronym for: WINE Is Not An Emulator.
WINE is actually an acronym for W W W W W W W W W W W W....
Fun thing is that, some Windows games will work on current Linux versions, but not on Current Windows versions since proton only translates into an API it can translate to any older windows edition that was once translated.
The problem with native Linux Games is, that the market share is very low. For developers, it's easier to target Windows and support other OS via Proton (Wine).
Thank you for this video! Coming more from the business/consumer side of tech, this answered a lot of questions that I've had for a while. It's not often a video gets a rewatch, but this will be one. Liked, subbed, and soon to be: a dudelings player.
Yo your homestar runner at the beginning there was pretty damned good
We need more games that use open standards like Vulkan instead of proprietary APIs like DirectX.
The main issue with Vulkan is that it's a really low-level API. Something that takes only 10 instructions in OpenGL will take hundreds of instructions in Vulkan. That is why game engines target higher-level APIs such as OpenGL or DirectX, because it's just too painful otherwise.
@@PanduPoluan thank you very much for the insightful comment!
Nice summary. I'm not sure how a compatibility layer can become a baseline, however. It's not something you program to, it's something that translates code you've programmed for.
I mean Windows is going to die and Linux will become the standard OS. But game devs won't end up learning Linux.
you have to understand this: Linux offer better performance in games... but devs dont know how to "develop for Linux" (is not that hard... but they are just "not good").
Proton offers a perfect solution "out of the box" who don't demand big compromises of resources and mach (even surpases) the mediocre results of natives Windows games.
This is good enough for users to stop using that crappy OS (sadly get worse day by day) and switching 100% to Linux.
In a future (interesting not far), competition will push devs to reach the best performance ... and everyone here knows Linux offers that
@@elbuglione And yet most Devs don't seem to have a problem releasing games for FreeBSD, albeit Sony's fork of it. Makes me think it's more of a case of whatever middleware they're using not targeting Linux. But given there are so many Linux distros, I wonder if it's possible to make the games work on each and every one of them.
@@martinh4982
yes, they has....indeed in PS3 era, SONY has a major problem to reach devs.
Nowadays, devs only port on Playstation because its has a second biggest platform in the world.
the problem of "distro choice" is problem close to been resolved... we have to wait what will do VALVe with full release of SteamOS or will make a mayor flip to ArchLinux.
You could convince people to use Vulkan instead of Direct X and the translation is effectively native and you get a perfectly working Windows build.
"I believe it will soon be the baseline for PC gaming as a whole". Why?
Hey, thanks for posting this video; very insightful and interesting
Proton is native Linux games
Proton converts Windows games to "native" Linux games on the fly. Native, because games talk directly to the hardware after the conversion and no emulation on CPU is performed. Important to note, that the Windows game is not native, but becomes native after the WINE translation. It's just not saved, so every time you play it needs to be converted; kind of like a JIT, Just in Time interpreter.
It’s the Java of gaming but way more performant
The biggest problem is that there are bugs in the games which only make the game crash on Linux. And hence another application specific bug workaround is added to wine. But that is what makes wine better than windows.
If the game has been made for Windows, then crashing on Linux is not an application specific bug. Wine making a specific workaround for it is compatibility.
Wine and Windows are not comparable
Wine is a drink , made from Grapes
Windows are a hole usually in a wall , with glass most of the time, to allow light in and out
Wine is better than Windows to get Drunk., but Wine is useless to see what is outside.
oh wait you talking about Software, fair enough
An extra pointer lookup is just several CPU cycles. With 1 GHz clock speed, that's in the order of nanoseconds, not even microseconds, much less milliseconds. Basically it's so negligible it won't affect performance.
Thanks for the explanation.
It's like a photon but with cool glasses and leather gloves
Thank you for this video, it was incredibly helpful.
Superb summary
in order to use the map you need to use a map; thats *at least* an extra pointer lookup.
The performance impact is so incredibly negligible when you think about the logic that went behind the system deciding to make the call (if blah then check arguments for validity and maybe CALL with 1 -> all Wine has to do is see CALL and do MYCALL with 1). Besides, more heavy systems like the rendering system are not only boosted by Vulkan, but the lookups in question are put into the CPU/GPU's memory (as they do on every OS), negating that already negligible performance cost
It should be emphaszed (to avoid misunderstandings) that the regular user can also directly interface with both the kernel and the hardware by using systemcalls (kernel) and for example assembly (CPU). Practically speaking most regular users don't do that because it is much easier to just use API's and systemlibraries, let those do the heavy lifting but if you want to explore how it all works then you want to play with that. Withn emulation you simulate the hartdware in software, your real hardware has to do a lot of extra work to pretend to run on that simulated hardware. You can't understand this without studying some CPU-architecture. wine and dxvk simply translate instructions from one set of libraries to another. For example, the instruction could be to solve a quadratic equation, on both Linux and Windows we have functions avaialble which will do that for us, wine could then simply figure out which functions on Linux should be used to get the same result as what Windows does. That is pretty easy to understand for anybody who has learned a tiny bit of programming.
Not gonna lie, the Homestar Runner voice at the beginning made me snicker out loud
So if a game uses Vulcan then it pretty much almost already is native is what it sounds like
No. It's just easier for proton to run it because it's the same API on both operating systems. Also a good note is that Vulkan enabled systems are by far not as Ubiquitous as DirectX systems. Because DirectX is from the mid 90s and only GTX 600 series/ HD 7000 series and up have Vulkan support.
It is not really about Proton, Proton just uses wine and dxvk. wine comes from an external company, dxvk is a fusion of d9vk and dxvk, these were projects which were started by teens to just play their particular game(s), at first, then eventually it got pretty complicated and Valve offered to hire them and put extra developers on it to support these guys. Both dxvk and wine translate functions from Windows (in the case of wine dll=>so) to functions which we have on Linux (so and Vulkan) so that we get the same output for the same inputs. Proton just uses these tools and adds to that some scripting to make sure that everything is intalled what you need (like C# libraries) and that certain files are created, because some games need additional files on your winedrive (an example is The Witcher2, it won't start without certain files in your 'Windows' user-Documents path. Simple enough for Valve, the tricky part is to work it out for thousands of games, that took a lot of time.
I wouldn't say "Proton uses WINE" I would say, "Proton IS WINE" because it is Valve's fork of WINE. As in, they are the same thing but with Valve's tweaks and additions mixed in.
When you install Steam on Linux, you do not need to also install WINE separately nor is one a dependency of the other.
Edit: Also, Proton-GE is also WINE but with Valve's AND GloriousEggroll's tweaks and additions.
@@Alex_whatever Fair point but it also uses dxvk and has some additional scriptiing, right? It is more like Lutris in that sense but with Valve's fork from wine and dxvk all contained in one directory (name it a container if you like). I tried out Proton-GE multiple times when I was not happy with the result from the regular version, for me so far it never made a difference. However, in general (I have played Deadlock though) I play older games (I wait for a lower baseprice, good discount and all DLC's included), for newer games it probably makes more difference.
homestarrunner is that your???
Great jeorb
Was anyone else as entertained by that intro as I was? 😅 I think Gardiner should always voice comments like this.
The 6502 vs z80 flame wars have been stoked. Somewhere, somebody is building a nerd gulag for you to mine the metals necessary to create new 8bit processors.
One of your best videos yet.
Nice Video this is very informative for everyone who's got some ambition to make the switch to Linux.
I've already made a comment somewhere on reddit about the topic and IMO just let devs make games for windows by default.
I don't care if on Linux we are going to use compatibility layers forever. It just works perfectly in so many cases. Portproton and UMU is there for us to make use of Proton outside of Steam.
it's quite a ride with Linux with a power user mindset, but for any normal user getting windows games to launch so easily with Proton is outstanding and just tells the long tale of how easy Linux Gaming is.
ex.: SH2 Remake just came out. I'm on Mint 22 so I don't even have the latest Nvidia driver. I didn't even think about if it's going to run. Turns out it runs perfectly.
but it has to be said NOTHING is perfect Linux Gaming still has it's short comings and might not be for everyone to thinker around when something just doesn't work OOB.
So while Linux has it's own set of issues and is not always perfect, neither is Windows.
There have also been cases where developers start out with a native Linux build, but it's so much work running two builds (Windows and Linux), that they just abandon Linux. It's better in many cases just to have a single code base and test on Proton.
The NES used a modified MOS 6502 processor, not a Zylog Z80
Hey Gardiner,
Big fan of everything Proton has done for Linux and completely with you on that.
I did watch a video the other day from The Linux Experiment. Nick mentioned about how Microsoft could potentially block Proton or make changes to render it useless if they decided to. Never thought about it like that or even if they could but would love to hear your thoughts on it.
I fully agree with you and given that Valve also aims to port Proton to ARM, everyone outside the Windows cosmos might benefit from it long term.
Be it Linux, macOS, Android, iDevice OS or what have you. Companies that actively block Proton from working harm us more than they do good, but given how much money OEMs still make by listening to Microsoft and Jensen, I could very well see them going for similar routes.
No seriously, even for Windows itself Wine/Proton is a good thing as we have seen with Intel ARC which barely ran any game initially until Intel went for the DXVK route.
Rather then linux only games, i'd prefer if we had a company / platform which supported the scenario of preservation beyond supported lifetime... the antithesis of Nintendo if you will.
So for example it could state in the license terms:
When purchasing any title for this platform from a vendor you agree to a limited license agreement to not modify or redistribute source (with whatever provisions for DLC's).
The license period can be undefined at the time of purchase ie. up to the game studio to announce its expiration, ideally when the game itself isn't going to receive any more "official support".
After the license period has expired the conditions also expire ie. people can create 3rd party workarounds / services to keep these (now legacy) games running as intended to be experienced by the original developers. This also covers emulation and enhancements to a degree (texture packs, etc.)
Since the games I play all have no anti cheat, I'm 100% certain that by next year Proton will be able to run every single game that I play. And that will be the time I migrate wholly to Linux, leaving Windows 10.
Game aimed at Proton -> Works on x86 Works on Arm Works on windows Works on Linux Works on Android Works on ARM Windows Works on MacOS? (Ok maybe maybe no on that one). Make Proton the master race... Gaming FreeBSD distros.... why not.
Proton is how game developers escape all OS jails without having to recompile, tweak, optimize or even support OS level stuffs.
Imagine console ports... that aren't ports at all.
Nah, it won't ever be ther base line for gaming when more and more companies are making sure linux gaming is not supported like with gta 5 even after 11 years. Good luck with gta 6 ever running on that.. lol.. Until that ever happens which it won't then linux gaming is just an ok thing while possible
Never say never. And while this anecdote about GTA is true, it is Just one Game. If you Look at the Other thousands of Games the Overall Situation is quite amazing already. Gaming on Linux is a Thing now, thats new and only slowly growing; but its growth Continues, Performance is on Par with Windows already and continuing to get better. Similar for compatibility. And the anti Cheat Problem will at some Point vanish as soon as enough people have switched.
Honestly, the closest we can get is a wasm based runtime similar to JVM based games
Share the video? I'm gonna archive it bro this is really good
I think the bigger question than why not support Linux builds should be, why not use Vulkan instead of directx and build to proton for maximum performance? Unreal supports Vulkan and most devs can poop out a binary pretty easy. ID tech engines are Vulkan or OpenGL based as well. That’s what Linux gamers should be pushing. Also, it would make it easier for devs to port to mobile later on if they do choose.
Im guessing in future arm or riscv, whstever the next architecture is, is gonna just be easily ported to using proton
Great video, and on point. (other than the z80 in a nintendo bit lol). Until we have a big enough market share to be a profitable market share, the most we can ask for it to play nice with proton, or vulkan. I am hoping that with the fragmenting of hardware (arm based machines are chipping away at the x86 market) that studios will start to play nicer with translation layers to begin with, as I think the gaming ecosystem as a whole is about to see fragmentation that is close to what we used to have before pc clones consolidated the pc gaming architecture. The thing about ARM solutions, when everyone can make their own chip, everyone can make their own implementation... it's gonna get messy. All that said, a shout out to the WINE project (which proton relies heavily upon), Valve, and all the studios that play nice with our translation layers so we can game and not run windoze.
Thank you for spending some time on this. I fully agree with you. I game exclusively on Linux, and my old gaming rig is competing with (and sometimes exceeding) the performance of my friend's much beefier gaming rig. I find that most games that work, work as well or better than on Windows. The anti-cheat thingy is extremely annoying (but not of huge significance for me). I accept having to use Proton, but no Tux no bucks!
Games that work in the first place would be a big step. Most things not running under Proton also barely work under Windows.
One of my favorite examples is Warcraft 3 and Warcraft 3 Refunded Edition
One of them works, and still runs in vanilla wine.
The other is a broken mess barely held together by duct tape. When we play it we first make sure no one is playing reforged graphics because the list of bugs is too big too address. You basically never now what will even be displayed or just crash the game.
No ... Win32 + DX IS the platform. Proton is just an implementation of it on Linux! Thanks to everyone that made win32+dx the best open source gaming platform!
7:07
Like that Smash Button
Well said sir
Frankly, since games are usually proprietary anyway, it doesn't matter really whether they are speaking win32 or X11. (Native Wayland ones could have some advantages tho…)
Windows being based on DOS isn't entirely true. Windows NT is a very different system to DOS, it has an entirely different kernel and may as well be a different OS all together. Although Windows 2000 and 98 look very similar on the surface, underneath they are entirely different. NT had to provide a compatibility layer to DOS early on for user adoption; so stuff like the drive letters and filesystem structure were made the same for compatibility’s sake. In any case though, modern UNIX-like systems are still vastly better designed than Windows NT 🙂
With Java and OpenJDK, I only needed to make 1 change for my Linux window system to correctly setup my window. Idk if that is universal across Linux(I have Mint).
With Proton being this good, we can today have dedicated Linux VMs with a dedicated OS for each game release. It's only like 200 MB extra overhead and then qemu takes care of all the compat :)
Also; One other reason why you do NOT want Linux native games, is that Linux has no problem leaving behind ancient tech. This means old gems like Neverwinter Nights and Unreal Tournament 2004 are unplayable today, despite having native ports.
Linux is just not binary compatible. Period.
So many tried to make a posix-like standard for win32, its fitting that Gabe left Microsoft and succeed at this
So, what you're saying is that Proton is an API..... that is what it's doing. It's an API for running windows games on Linux. Which by definition all APIs are "Native".
Proton IS Native.
So it’s translating mulitple windows protocols.
Edit: and its better with vulkan
Economics make Linux game development a massive headache for devs, so PROTON is the best way forward at the moment due to the different size in userbase of Windows users vs Linux users. So as long as MS doesn't deliberately try to block Linux gaming within Windows then PROTON will continue to be Linux users best option, once Linux gains enough userbase then they will want to sort out the anti-cheat themselves so we just need to increase our numbers :)
On a 3rd Gen i5, wine used half the CPU. On my 5900HX, It uses only a tenth. If you have an older machine, I would get the perspective that proton is slow.
Overall an excellent video explaining what all this is.
WINE - W ine I s N ot an E mulator
I wonder if WINE started as WIN dows E mulator. :D And later changed the name. I mention this, because Proton includes WINE.
More games working on Linux means more people will choose to Linux as a viable option.
More people using Linux will mean developers will maybe, eventually, have more incentive to create native games for Linux.
But before any of that happens, you have to get the numbers up, and this is how you do it, using Proton.
At the very least, at the end of the day today, we can play games now, and that's pretty cool! It's certainly been cool enough to get friends and family to switch over to Linux. So I think it's been a success so far.
@@AstraPlanetshine people still won't pick Linux even if it's much more viable. Because they firmly believe windows is better even when it's clearly not the case.
Couldnt find the smash button. Need a translation layer for that. STUB
My problem is when it will support anticheat ?
It already does. EAC and BattleEye do exactly that.
The problem specifically is kernel-level anticheat. Which, apart from being a terrible idea, requires the anticheat developers to write kernel modules for Linux, and the user in turn installing those to their own system. Basically granting a gaming company complete right to your devices on a hardware level. It's madness, which is not really different for Windows either by the way.
Before proton game developers needed to actively convert everything for Linux and keep it up to date. Now game developers just need let Valve takes care of most the support themselves.
And despite all this some developers rather spend money and time to make sure that you can't run their games under Linux: I guess that our kind and our money is just not welcome. 🙄
The problem is NVIDIA driver keep broken on 3rd party softwares
100% correct
I see Proton as a transitional piece of software. It's good for now, but it's always going to have an overhead, and thus will be obsolete once the tools that support linux as a compilation target get mature enough. Similar to how golang supports native compilation to multiple OSes and architectures, without having to do anything extra.
Having to maintain multiple binaries with their dependencies will consume time and effort. If the game dev targets Wine, that's a well defined dependency.
Unless you really require the smallest latency, e.g. for "e-sports", the overhead of Wine will be negligible as the majority of time consumed will be on the GPU. We're talking about latency in the order of hundreds of thousands of CPU cycles here. At 1 GHz that's in the order of microseconds.
but still, Windows being synonomous as "PC" platform sucks so much. But I guess proton compatibility is far more preferrable than switching to (or even dual-booting) Windows
A compatibility layer emulates software, rather than hardware. But don't let people hear you say that software that emulates is an emulator, or they will wine.
to put it simply, i want dev´s to make game´s and programs for Linux, without layers on layers in emulators for MS C+ code and so on.
so even if proton is good, i sitll dont want it. i want dev´s to make it for US! 20 years ago, i would happily tinker to emulate Windows on my Fedora OS. But i am old now, i dont want to tinker anymore. and most of all, i want to leave MS. only reason i run Win11 today is Vegas Pro, and Helldivers 2.
Games breaks with every update. i dont want to tinker every update anymore...
i guess i got the short end of the stick with Satisfactory running at 1/4 of the performance on Linux/Proton... (30 FPS and extremely stuttery) tho i hope that things progresses enough so that those edges cases stops popping up and even kernel anti cheat can work and be aware it is on Linux and still performs it's task!
WINE (and Proton which is based on it) are crutches. Very useful crutches, but crutches nonetheless.
Would I rather be able to run a game under Proton than not run it at all? Of course. Would I prefer a native linux build, supported at the same level (IE: patched at the same time, kept up to the same standard as the Windows version, supported just as well as the Windows version)? Of course. Do those things add up to an additional support cost to the publisher? Probably (unless they hire folks who are well-versed in both sides, who would likely cost more). Do I think that's worthwhile? Of course.
Unless linux is natively supported, at the same level as Windows, it'll always be a second-class citizen. But, for now, Proton is doing a good job of being the crutch that makes more folks *able* to switch away from Windows, which is nothing but a good thing. Hopefully as MS puts their foot further and further into their users nether regions, forcing more and more ads and siphoning more and more data, more will make that switch. And, if enough make that switch *maybe* we can get native support eventually. That should be the goal, anyway.
Linux is great, but I will admit, there are some games with my 5600 that I will get over 200 FPS on Windows and on Linux I barely get 80fps.
Well, thanks for the explainer.
As I am unfortunately still enjoying League of Legends and Valorant ... looks like I am not moving my Gaming Machine to Linux. Proton looks cool though.
What I would be happy to see, if at all possible (I'm no developer), it's Linux builds that are "prewraped" proton builds of their games.
By taking Linux support in their hands, in this way, these devs would prove us that they really care about Linux and/or the Steam Deck.
Proton improves over time, snapshot does not. Testing and support would be enough.
@@sergeykish That's true, but we also see games getting broken after an update because devs don't test against Proton. Somehow, I would like to know which devs take care about Proton, before throwing my money at them. Some form of official Proton support is required, imo.
As of my experience with Linux on my gaming desktop it just works and much faster than windows
In gaming i have not seen much of an issue and i played many games on lunch day like ffxvi
Like a dragon gaiden and 8
Tekken 8
Tbf i only been on Arch but it works very well
Dumb take, if you do not raise your voice nothing will change.
TBH I prefer proton over native.. native games end up being dependency HELL as the port ages... Just saying as I have alot native games but play the proton versions because majority of them do not work or work as well as the game in proton even when they work
There's nothing wrong with asking a developer for a native Linux port. Your opinions suck. I can't wait to not play chess mess.
I want to believe that linux is better in gaming or at least on par with windows. But from my experience in using linux, I've had worse performance. I can play ff16 at max settings on win10. However on linux, it cant render things properly and the fps is less than 20, even on low.