License is extremely restrictive
Opened this issue · 2 comments
Per https://learn.microsoft.com/en-us/gaming/gdk/_content/gc/input/overviews/input-overview :
GameInput is the recommended API for all new code, regardless of the target platform
If this is Microsoft's goal, the license (https://github.com/microsoft/GDK/blob/Main/LICENSE-EN-US.MD) is unsuitable - some highlights:
(i) “Microsoft Windows Platform” means personal computers or other devices running Windows OS where a Microsoft Windows Title can run and be distributed to customers by Microsoft, its Affiliates and/or a Licensed Publisher.
(j) “Microsoft Windows Title” means a software product intended to run on the Microsoft Windows Platform and be distributed to customers by Microsoft, its Affiliates and/or a Licensed Publisher.
. Licensee shall be permitted to use the GDK solely to develop and test such Microsoft Windows Titles for the Microsoft Windows Platform.
In particular, this appears to mean the GDK is unusable by:
- libraries/middleware
- any software that doesn't wish to be extremely tightly coupled to Microsoft-approved distribution methods. For example, I can not use it in anything I wish to distribute via Github, Steam, or my own website
(1) Use the GDK internally only and solely for the Purpose
This - along with several other uses of the word 'internal' - appear to additionally ban any open source software - regardless of license - from using the GDK.
For GameInput specifically, there's also https://www.nuget.org/packages/Microsoft.GameInput/0.2303.22621.3038/License
- b) ii-ii) are likely problematic for open source software under most common licenses. 2) c) ii) seems to ban use in any software under a GPL-like license, or that uses any other software under a GPL-like software.
Specifically for GameInput, this appears to partially be a documentation issue: while all the documentation and repositories point either to this repository or nuget, GameInput.h is included in the Windows SDK v10.0.26100.0 , where it appears to be under significantly less restrictive terms than either this repository or the nuget package
This does however also require the DLL, which is not part of the Windows SDK. This appears to be included with some versions of Windows, but the version requirements do not appear to be documented anywhere, so using the Windows SDK is not currently practical.