By supporting Direct3D 12, Godot gains support for multiple new platforms, such as:
- Windows Store (UWP).
- Windows on ARM.
- GDK.
- XBox —which can’t be supported officially by Godot, but for which Direct3D 12 support is essential—.
Depending on the complexity of the scene, effects used, etc., this first version of the renderer performs generally worse than the Vulkan one. In some tests, D3D12 has not been able to deliver more than 75% of the Vulkan frames per second. In some other, D3D12 has been able to outperform Vulkan by a small margin. Performance improvements will be ironed out over time.
Expect it to come in Godot 4.3
What’s with the xbox comment? Why can’t it be officially supported?
I’m not keen on the specifics but part of the reason W4 exists is because the Godot Foundation can’t just pass around console SDKs. Only publishers and larger companies can use them and they’re usually under NDA.
So your options are going to a publisher like W4 Games (which is an entity by Godot’s founders) to handle that for you, or you can try porting it yourself and going through all the legal shenanigans.
What about homebrew games? I thought xbox had something like that.
You can turn on “dev mode” in your xbox console to be able to mess around with it and run homebrew, but that still doesn’t mean you’re allowed to publish your game to Xbox I don’t think.
You can’t get access to the SDK without a license. A license takes moments to get but makes it so you can’t just pass it around. Unreal is the same way but they have plugins to add the SDK support for unreal
Xbox dev mode lets you run UWP apps but you don’t get the Xbox SDK or the lower-level APIs, nor can you publish it without getting access to the SDKs first.
I think it’s because you can’t build for Xbox without Microsoft signing the binary. This is one of the reasons the Godot team founded W4 Games.
They claim that they cannot support any consoles for legal reasons: https://godotengine.org/article/godot-consoles-all-you-need-know/
it is impossible for Godot to include first-party console support out of the box. Even if someone would contribute it, we simply could not host this code legally in our Git repository for anyone to use.
Maybe that’s true, I’m not a lawyer. But Godot’s founders own one of the companies that provide console support: https://lonewolftechnology.com/
It could be a conflict of interest or an honest way to provide console support in Godot while also being compensated for their work on Godot. After all, food on the table is not open source.
The full list of Godot companies providing console support is here: https://docs.godotengine.org/en/stable/tutorials/platform/consoles.html
Everything is locked down and filled with NDAs when it comes to console development. To access the xbox game development documentation - you need to sign an NDA (https://learn.microsoft.com/en-us/gaming/gdk/_content/gc/getstarted/gc-getstarted-toc). To access the SDK (https://www.microsoft.com/en-us/software-download/gdk) you need to be a “Registered Dev Center Partner” which requires a publisher, fee payment, and agreement (https://learn.microsoft.com/en-us/windows/apps/publish/partner-center/open-a-developer-account). BUT even more specifically section 3 of the public GDK license agreement (https://github.com/microsoft/GDK/blob/Main/LICENSE-EN-US.MD) gives an idea of what you are allowed to do with that SDK code once given access and you can only use the code for “internal” use and only make one copy for backup use. This isnt even getting into how using the GDK makes your app subject to the usage agreement (https://support.microsoft.com/en-us/windows/usage-rules-for-digital-goods-rules-83812b1f-1ecd-9a46-d3a7-ad1eadce49d1).
I wonder what 19 lines they removed. Could be breaking change!
Since when was directx open source?
I want to encourage people to value software freedom. I am unsure of the effect of supporting proprietary platforms has on that. This feels uncomfortable.
So dont use it?
This comment every time 😐
What else do you want to happen? DX is essential for porting to xbox and some versions of Windows. It’s not about open source, devs need this. By your logic should everyone just make a Linux build and nothing else because they’re proprietary and evil?
One dev succeeding without those won’t prove all other devs can but I hope if I do succeed that will convince some devs maybe they don’t “need” proprietary solutions.
I am uncertain if building just for Linux would be better or worse became there is some merit to uninformed users having free software on their proprietary devices.
Maybe it helps to think of it as a transitional state?
Perhaps this may help people learn of Godot, and maybe see that they could be playing some game made by Godot on open platforms. Vulkan does a good job though so I think it would be better if devs stopped depending on directX/box.
@tabular still, it’s just an api. Freedom is also ability to use windows if you want. Besides, what if someone wants to use ReactOS?
You should be free to choose something which isn’t in your own best interests.
I feel bad even giving a Windows build as I am responsible for enabling that self injury, but hope their use of free software will help them switch in the end.