Skip to main content
added 779 characters in body
Source Link
Theraot
  • 27.5k
  • 4
  • 52
  • 79
  • A game development library, is a library intended to be used by game developers as a part of their game.

  • A game development framework, is also a library, which also covers most of the needs of game development and provides extension points for the game specific code to be added.

  • A game engine is at least a few components:

    • An executable runtime, which is what actually make the games run.
    • An authoring tool (game development environment or editor) which is used to create games.
    • A building tool, which converts the projects made with the authoring tool into the final game (which uses the executable runtime).

    I'd argue that what makes engine the engine is the executable runtime. Addendum: I'm not trying to define what features you would expect an engine to have, but what is the bare minimum to make the category.

One possible way to work around this is to create the games as a separate package (including scripts and other assets), which the runtime loads. This way the package can be under a license unrelated to the runtime. Addendum: While I frame this is a workaround for copyleft, this is how many non-copyleft game engines work, both open source and closed source.

It is also worth noting that LGPL might allow developers to use the code as a library... Which means that to allow game developers to use any license on their game, you might make your code as a library under LGPL that game developers can load it oninclude with their code... Meaning that it would be closer to a game development framework than to an game engine.

Be aware that this answer is not a replacement to reading the aforementioned licenses or asking a lawyer.


Addendum on adding an exception to GPL: I agree that parts of the code can be exempt from the license. However, the way I read the question the exception would have to be based on usage (using it for creating game vs using it for creating game engines). I want to reiterate that I'm not a lawyer to emphasize that I do know if such exception would be compatible with GPL. Please hire a lawyer instead of relying on comments on the internet alleging it to be possible or not.

  • A game development library, is a library intended to be used by game developers as a part of their game.

  • A game development framework, is also a library, which also covers most of the needs of game development and provides extension points for the game specific code to be added.

  • A game engine is at least a few components:

    • An executable runtime, which is what actually make the games run.
    • An authoring tool (game development environment or editor) which is used to create games.
    • A building tool, which converts the projects made with the authoring tool into the final game (which uses the executable runtime).

    I'd argue that what makes engine the engine is the executable runtime.

One possible way to work around this is to create the games as a separate package (including scripts and other assets), which the runtime loads. This way the package can be under a license unrelated to the runtime.

It is also worth noting that LGPL might allow developers to use the code as a library... Which means that to allow game developers to use any license on their game, you might make your code as a library under LGPL that game developers can load it on their code... Meaning that it would be closer to a game development framework than to an game engine.

Be aware that this answer is not a replacement to reading the aforementioned licenses or asking a lawyer.

  • A game development library, is a library intended to be used by game developers as a part of their game.

  • A game development framework, is also a library, which also covers most of the needs of game development and provides extension points for the game specific code to be added.

  • A game engine is at least a few components:

    • An executable runtime, which is what actually make the games run.
    • An authoring tool (game development environment or editor) which is used to create games.
    • A building tool, which converts the projects made with the authoring tool into the final game (which uses the executable runtime).

    I'd argue that what makes engine the engine is the executable runtime. Addendum: I'm not trying to define what features you would expect an engine to have, but what is the bare minimum to make the category.

One possible way to work around this is to create the games as a separate package (including scripts and other assets), which the runtime loads. This way the package can be under a license unrelated to the runtime. Addendum: While I frame this is a workaround for copyleft, this is how many non-copyleft game engines work, both open source and closed source.

It is also worth noting that LGPL might allow developers to use the code as a library... Which means that to allow game developers to use any license on their game, you might make your code as a library under LGPL that game developers can include with their code... Meaning that it would be closer to a game development framework than to an game engine.

Be aware that this answer is not a replacement to reading the aforementioned licenses or asking a lawyer.


Addendum on adding an exception to GPL: I agree that parts of the code can be exempt from the license. However, the way I read the question the exception would have to be based on usage (using it for creating game vs using it for creating game engines). I want to reiterate that I'm not a lawyer to emphasize that I do know if such exception would be compatible with GPL. Please hire a lawyer instead of relying on comments on the internet alleging it to be possible or not.

When you make a model in Blender, despite blender being under GLPGPL, the model is not. Similarly when you make a program with GCC, despite GCC being under GPL, the program is not. This is because the model and the program, do not include any part of the code of Blender or GCC respectively... But that is not how game engines work.

One possible way to work around this is to create the games as a separate package (including scripts and other assets), which the runtime loads. This way the package can be under a license unrelated to the runtime.

Notice that the mentioned package would have to be created in ana standard format for the runtime to load it, and if said runtime is open source, the code to load said package is open source. Thus, the code of the game is practically revealed regardless. Similarly, we can argue that whatever runs on the end machine could be reverse engineered anyway (given enough time, effort and resources). But not necessarily legally.

When you make a model in Blender, despite blender being under GLP, the model is not. Similarly when you make a program with GCC, despite GCC being under GPL, the program is not. This is because the model and the program, do not include any part of the code of Blender or GCC respectively... But that is not how game engines work.

One possible way to work around this is to create the games a separate package (including scripts and other assets), which the runtime loads. This way the package can be under a license unrelated to the runtime.

Notice that the mentioned package would have to be created in an standard format for the runtime to load it, and if said runtime is open source, the code to load said package is open source. Thus, the code of the game is practically revealed regardless. Similarly we can argue that whatever runs on the end machine could be reverse engineered anyway (given enough time, effort and resources). But not necessarily legally.

When you make a model in Blender, despite blender being under GPL, the model is not. Similarly when you make a program with GCC, despite GCC being under GPL, the program is not. This is because the model and the program, do not include any part of the code of Blender or GCC respectively... But that is not how game engines work.

One possible way to work around this is to create the games as a separate package (including scripts and other assets), which the runtime loads. This way the package can be under a license unrelated to the runtime.

Notice that the mentioned package would have to be created in a standard format for the runtime to load it, and if said runtime is open source, the code to load said package is open source. Thus, the code of the game is practically revealed regardless. Similarly, we can argue that whatever runs on the end machine could be reverse engineered anyway (given enough time, effort and resources). But not necessarily legally.

Source Link
Theraot
  • 27.5k
  • 4
  • 52
  • 79

I'm not a lawyer, this is not legal advice.

When you make a model in Blender, despite blender being under GLP, the model is not. Similarly when you make a program with GCC, despite GCC being under GPL, the program is not. This is because the model and the program, do not include any part of the code of Blender or GCC respectively... But that is not how game engines work.

To be able to properly answer this question I need to define Game Engine, game development and game development framework.

For the purposes of this answer, I'll define them like this:

  • A game development library, is a library intended to be used by game developers as a part of their game.

  • A game development framework, is also a library, which also covers most of the needs of game development and provides extension points for the game specific code to be added.

  • A game engine is at least a few components:

    • An executable runtime, which is what actually make the games run.
    • An authoring tool (game development environment or editor) which is used to create games.
    • A building tool, which converts the projects made with the authoring tool into the final game (which uses the executable runtime).

    I'd argue that what makes engine the engine is the executable runtime.

Now, while the final game created with a game engine would likely not include any code from the authoring tool, or the building tool, but it would include the runtime. And so we have to consider the license of the runtime when licensing the games. So let us talk about the runtime...

The game engine runtimes are not libraries, so (unlike game development libraries and frameworks) they provide the entry point. Also (unlike game development libraries, but similarly to frameworks) they have extension points where code created by the game authors can execute. This means that the code of the game is a plugin to the game engine, and not the other way around.

So if the final executable of the game includes the runtime (it is bundled in the same program), we can consider the games created with a game engine to be derived software to the game engine runtime, meaning that licenses such as GPL which apply to derived software (a.k.a. viral licenses) would carry from the game engine to the game.

One possible way to work around this is to create the games a separate package (including scripts and other assets), which the runtime loads. This way the package can be under a license unrelated to the runtime.

Notice that the mentioned package would have to be created in an standard format for the runtime to load it, and if said runtime is open source, the code to load said package is open source. Thus, the code of the game is practically revealed regardless. Similarly we can argue that whatever runs on the end machine could be reverse engineered anyway (given enough time, effort and resources). But not necessarily legally.

It is also worth noting that LGPL might allow developers to use the code as a library... Which means that to allow game developers to use any license on their game, you might make your code as a library under LGPL that game developers can load it on their code... Meaning that it would be closer to a game development framework than to an game engine.

Of course, if the definitions used in this answer do not align with the software you have you have in mind, I hope at least to have given you a working model to reason about this.

Be aware that this answer is not a replacement to reading the aforementioned licenses or asking a lawyer.