Hacker News new | past | comments | ask | show | jobs | submit login

From what I gather, Game Porting Toolkit is two things - a fork of Wine, and their own adaptation/extension of open source projects for DirectX compatibility. Some observations:

Windows compatibility:

* Windows platform compatibility is achieved with a slightly patched version of Codeweavers' Wine fork - virtually all of the hard work of Windows compatibility has been achieved by the Wine developers and Codeweavers and was already available open source before today.

* Interestingly, Apple is distributing this thing as a Homebrew library. Has Apple ever done this before? [1]

DirectX compatibility:

* In addition, outside of the core Wine based stuff, there's a framework called D3DMetal.framework. This is a DirectX 9-12 compatibility layer akin to DXVK used in Proton as a compatibility layer from DirectX 9-11 to Vulkan. This is what seems to be the game changer here compared to before. Before today, running DirectX on macOS was possible but lost a lot of performance and compatibility needing to go through Apple's old OpenGL support or a third party Vulkan intermediary layer in MoltenVK. This is direct (heh) first party Direct3D to Metal translation.

* Actually, it's more than "akin to DXVK". The D3DMetal.framework contains copyright attribution to DXVK as required under their MIT license. It's quite likely Apple ported a lot of DXVK to Metal. It's worth noting that DXVK itself doesn't support Direct3D 12 though, Proton uses another LGPL2.1 licensed library called VKD3D for that.

* However, D3DMetal.framework is very much not open source itself. Its license is actually very restrictive, seemingly only permitting use for game development/QA use cases. [2]

* The restrictive license seems to make it harder for someone like Valve to use this akin to how they use Proton on Linux in a sanctioned way. Apple seems intent on preventing developers from dumping their games on macOS with just their compatibility layer. It definitely won't stop hobbyists making better tools to continue run Windows games on Macs though.

* The fact that D3DMetal.framework appears to support DirectX 9 and 10 is interesting. No new commercial efforts use those anymore, so that's just there for what? Allowing homebrewers to run their 00s era Windows games?

[1]: https://github.com/apple/homebrew-apple/tree/main/Formula

[2]: It contains a license with the following language - "you are granted a limited, non-exclusive, non-transferable, personal copyright license to (i) install, internally use, and test the Apple Software for the sole purpose of developing, testing, or evaluating video games for use on Apple-branded products".




It's sad that D3DMetal isn't open source. Worth noting that this stuff is exactly why people should strongly consider using a copyleft license. It's pretty annoying that nobody can build on top of Apple's work here or incorporate any improvements into DXVK, but that's the license the DXVK project chose.


I don't care much for it being open source or not, it's just a shame Apple is making attempts to limit its use cases through licensing [1]. It's on brand for Apple and totally expected, but still sad. It's not going to stop a bunch of homebrew efforts springing up around it, but it will likely be enough to stop third party app stores like Steam from opening up a huge game library on the Mac in a straightforward way like what happened with Proton.

[1] The license is probably actually meaningless in a lot of jurisdictions, but it still has a chilling effect for commercial parties using it. That's probably exactly what Apple intends.


Well, i'm pro copyleft but in this case i have to disagree. This way Apple could develop D3DMetal much faster, and attrbution is given. If DXVK where GPL3 it might have happened years later if ever.


Huh, why are you saying Apple could develop D3DMetal much faster because DXVK was MIT-licensed? Literally nothing would've changed up until now if DXVK had been GPL-licensed, the only difference is that now that they've made it publicly available, they'd have had to license D3DMetal under a GPL-compatible license. Where does the extra delay come in?


They can weaponize it against Valve. Helping displace steam for relatively little effort bumped it up in priority.


Is it faster to build it to weaponize it against Valve than it is to build it without the weaponization?


There's only so much developer time and management focus. "This will help us cement our monopoly on software distribution without being too obvious to regulators" is a good pitch.

PS. I'm sure the people who pitched it and their managers are all sufficiently skilled at lying and lying to themselves to not put it or even think in those terms.


You can ship macOS native games on Steam as well. People need to stop throwing conspiracy theories. Their main motivation is to make sure games are native to macOS so they can take advantage of system-native features, which Win32-translated games won't. Otherwise games running on Macs will always be kind of janky and run slower than Windows.


So now they are propping up an ecosystem on which open computing will always be a second rank citizen at best. I wonder if they are all happy about it in retrospect, wine got patches, DXVK gets to be a brick in the wall of Apple's garden (if Valve can't distribute it, it's useless to them in the grand scheme of things, normal people want a one click install).

Monetarily good for the devs who ended up on Apple payroll, another nail in the coffin for competition and open computing at the same time.


> Windows platform compatibility is achieved with a slightly patched version of Codeweavers' Wine fork

If by "slightly patched" you mean "DirectX 12 support on Apple Silicon was added, then sure.

Codeweavers recently announced their own effort to support DirectX 12, but so far only one game, Diablo II Resurrected, works with it.


No, I mean slightly patched. The list of patches is included in the Homebrew formula [1].

The D3DMetal framework and its DirectX 12 support are independent of that Wine work.

[1]: https://raw.githubusercontent.com/apple/homebrew-apple/main/...


If you ignore the part where they added DirectX 12 support, it's only slightly patched?

You do you.


They said that’s independent of the Wine fork


> The fact that D3DMetal.framework appears to support DirectX 9 and 10 is interesting.

Lots of popular games are DX9 or 10. Rimworld, for instance, is high in the Steam charts and is DX9.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: