microsoft / GDK

Microsoft Public GDK
http://aka.ms/gamedevdocs
Other
1.51k stars 102 forks source link

License is extremely restrictive #72

Open fredemmott opened 2 months ago

fredemmott commented 2 months ago

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:

(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.

fredemmott commented 2 months ago

For GameInput specifically, there's also https://www.nuget.org/packages/Microsoft.GameInput/0.2303.22621.3038/License

2) 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.

fredemmott commented 2 months ago

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.