5

Background:

I'm writing a game engine (a set of libraries actually) that simplifies game development with C# language (OK it is yet another game engine :). My plan is to make it as free as possible. MIT License looks as a best choice. What I call a game engine will consist of a set of libraries that cover game subsystems (Graphics, Audio, Input, Math, etc...) I plan to use NOT MODIFIED OpenAL (-Soft) library for sound. It is redistributed under LGPL license. Sound subsystem of the game engine will consist of two libraries:

  1. Almost raw bindings to OpenAL native library.
  2. Some high level interface to produce sounds in a game (it uses the library #1 internally).

A developer (who uses the engine) will be able to choose option #1 or option #2 depending of his/her knowledge in game development.

Redistribution model:

  1. All the source files of all libraries of the game engine written by my will be uploaded to GitHub under the MIT license.
  2. All the libraries written by me in binary form will be available as nugget-packages under the MIT License. Native library OpenAL will be available as an additional multi-platform nugget package redistributed under the LGPL license.
  3. All the engine libraries in binary form and the native OpenAL lib in binary form will be available as a single download redistributable under the MIT License with mention that it uses OpenAL library redistributed under LGPL license.

Doubts:

I have read the LGPL license many times. I searched the forums. But I'm still not sure that I understand it correctly. Pls help me answer the following questions.

Questions:

  1. May I create a multi-platform nugget-package which contains a compiled version of LGPL library (OpenAL) and add it to the official nugget repository?
  2. If Yes then What is minimal set of requirements should I met to do it completely legal?
  3. May I redistribute C# OpenAL bindings (without the native lib) under the MIT License? C# bindings mimics the OpenAL API header files almost one to one.
  4. May I redistribute the game engine libraries written by me and the native OpenAL library in binary form under the MIT License?
  5. If Yes, then what is minimal set of requirements should I met to do it completely legal?
  6. What requirements should be met to legally redistribute the games (in binary form) which use the described game engine (and the OpenAL native library inside)?

1 Answer 1

2
  1. May I create a multi-platform nugget-package which contains a compiled version of LGPL library (OpenAL) and add it to the official nugget repository?

The LGPL license does not forbid this, but there might be additional considerations. It would be best if the maintainers of that OpenAL implementation make such an official release in the nugget repository, or that you do so on their behalf (and with their agreement).

  1. If Yes then What is minimal set of requirements should I met to do it completely legal?

The minimal requirements depend a bit on the exact LGPL version, but at least you must include a copy of the license text and an indication how and where users can obtain a copy of the source code of the package.
With LGPLv2.1 it could be the case that you would have to host the source code as well, but that is not all that clearly specified.

  1. May I redistribute C# OpenAL bindings (without the native lib) under the MIT License? C# bindings mimics the OpenAL API header files almost one to one.

If those C# bindings were created by effectively translating the native OpenAL header files, then it can be argued that the C# bindings are a derivative work and that they must also be distributed under the LGPL license.

  1. May I redistribute the game engine libraries written by me and the native OpenAL library in binary form under the MIT License?

No. You may distribute the game engine libraries in binary form under the MIT license, but a binary distribution of the OpenAL library must be done under the LGPL license.

  1. If Yes, then what is minimal set of requirements should I met to do it completely legal?

The minimal requirements to comply with the MIT license is that you include the license text with your distribution.

The LGPL license has the additional requirement that you inform the users where they can obtain a copy of the source code.

  1. What requirements should be met to legally redistribute the games (in binary form) which use the described game engine (and the OpenAL native library inside)?

The games can be distributed under any license (including a closed-source license), provided that

  • the MIT and LGPL license texts are distributed in the documentation, with an indication which parts are subject to the LGPL license (i.e. the OpenAL library). It is preferred that a similar indication is given for the libraries under the MIT license, but that is not a requirement.
  • the LGPL parts can be replaced by the user of the game. This is most easily achieved by dynamically linking to the relevant libraries.
2
  • Bart, thank you very much for the full and useful answer. I forgot to mention in p.4 that the engine is distributed in binary form under MIT but the native OAL lib is under LGPL. [Re]distributing rules for the MIT licensed code are pretty clear and straightforward. Can you pls ask a question in p.5 the part that is related to redistribution of the LGPL library in binary form as part of the engine. Sep 9, 2020 at 10:15
  • 1
    @PavelMelnikov, I updated my answer. Sep 9, 2020 at 11:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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