2
\$\begingroup\$

I have recently been studying and working on implementing my own game engine. I am interested in making my work open source so that others may use and modify it freely. However, I also want to make sure any modified or improved versions of my engine would also be free to use or modify. This led me to believe a copyleft license would be most appropriate. However, despite wanting all future versions and modifications to the engine source code to be open source, I want people to be able to sell or profit off the games made with the engine. In other words, while the source code of the engine for the sake of the engine itself should remain open source, anything made with the engine for the sake of being played should be allowed to be closed source. Is there an appropriate license for this?

The reason I include the architecture tag is to also ask: If no simple license exists, then is there a way to architect my engine such that what I want to accomplish with licensing is possible? For instance, if my engine uses a scripting language with some entity component system written in the engine's compiled code, then maybe the scripts (which a gameplay programmer using my engine would write to dictate game logic) would be allowed to be closed source? But then anyone playing the game would still require the compiled engine in order to run said scripts. I do not know if this particular example could work, but it is just to give an idea of what I am getting at.

\$\endgroup\$
4
\$\begingroup\$

You will want the GNU Lesser General Public License, or LGPL.

This enables commercial games to use your engine, and keep the game's source code closed.

It would also make sure that improvements to the engine would make it back to you.

Note that the game will have to make available dynamically linked executables. They can ship static linked binaries to customers, but not if there is no way for the customer to obtain an improved engine library and used it with the game by downloading a dynamically linked binary.

So if they ship statically linked game, they should also provide a link for downloading a game that is dynamically linked to your engine. This should not be much of an obstacle for the game developer.

For choosing an Open Source license, refer to https://choosealicense.com/

\$\endgroup\$
1
\$\begingroup\$

In addition to LGPL (which permits closed source code to link the your open source code), you also have the option of releasing code under more than one license.

You could also create your own license, though I would strongly recommend working with / contracting such things to those who are well versed in such matters. A software license is essentially a contract & you should treat it accordingly.

Ultimately, the specifics of which license (or combination of licenses) is most appropriate depends on a mixture your desired business, your target market & your personal / professional stance on the licenses themselves.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.