I'm thinking about making my own video games and want them to be open source and on game consoles as well. I know that GPL is not an option because companies like Nintendo and Microsoft don't allow GPL plus license incompatibility with stuff like signing an NDA. All I want is that you must make public the source code at all times. Which license should I pick?
If you are the copyright holder1 of all the code you wish to release apart from that owned by Microsoft/Nintendo, you have a couple of options here:
- Release your code under the GPL, but with an exception allowing linking with console manufacturer's code.
- Dual license your code. The version that you give to the console manufacturers can be binary-only, and you can publish a separately licensed version under the GPL. This GPL published version may not be very useful as it won't really produce a working executable, but this would allow anybody else to port your game to a different platform, or just to pick out sections of your code for use in their GPL programs.
The most important thing to note here is that you cannot use any "regular" GPL code if you do this, as you do not have the right to add the exception or dual license that code. Also, while both these ideas work in terms of the GPL, you would have to check whether the console manufacturers would be happy with them; that's not something we can advise on.
1. Or you can get the agreement of all the copyright holders.