I recently spent some time with the Framework 13 laptop, evaluating it with the new Intel Core Ultra 7 processor and the AMD Ryzen 7 7480U. It felt like the perfect opportunity to test how a handful of games ran on Windows 11 and Fedora 40. I was genuinely surprised by the results!
…
The Framework 13 is perfectly capable of gaming even with its integrated graphics, provided you’re willing to compromise by lowering the resolution and quality presets for more demanding games. (It’s also a testament to how far AMD’s APUs have come in the past decade.)
Summary of results:
- Shadow of the Tomb Raider: Linux wins
- Total War: Warhammer III: Windows wins
- Cyberpunk 2077: Linux wins
- Forza Horizon 5: Windows wins
These results are an interesting slice of the Linux vs Windows gaming picture, but certainly not representative of the entire landscape. A few shorts years ago, however, I never would have dreamed I’d be writing an article where even two games on Linux are outperforming their Windows counterparts.
To add a more technical explanation, the main point is about the expectation on how it behaves and not what it really does. To get windows to do something, you read the specification (interface) and make a call against it. Windows interprets your request and does what you wanted. You do not care how it works but just that it works. As a developer, you can also switch to the other side and make your own program that interprets these calls and translates, them for linux.
Legally (I am not a lawyer), the specification is a fair game. The spicy part is how it is done and copying that gets you in trouble.
Of course, this is also extremely simplified since linux and windows differ wildly in many regards. Also a “specification” is often incomplete or the implementaion bleeds into the real world use. This makes it not reliable to look at it alone and so, often the “original” implementation has to be observed on how it behaves.
As a more relatable example, think about websites. On the one hand, it does not matter which browser you use. It “just” has to display the page and act accordingly. On the other side, it does not matter what server sends you the page. It could be a pre-computed static page, served via a proxy server or dynamically generated by any of the different programming languages.
Edit: grammar