2

Am developing an Unity game where I require the functionality of this tool (which is written in Unity itself) at runtime: https://boundingboxsoftware.com/materialize/ It essentially processes images/textures. Speed is not upmost concern.

Correct me please if I'm wrong, but due to the licence, I cannot simply include the code as part of the game but I have to make it independent and "replaceable" so that the game itself does not need to fall under GPL as well.

Have thought of the following approach:

  1. Strip that project off its UI and make it a headless Unity application (normally used for server backends) with a command line interface. The command inputs would be the path of an input image file, and output images as well as params.
  2. Pack this executable as well as its sourcecode (under GPL) with the game (which has a different licence).
  3. In the actual game, when the functionality is needed, write out the texture to an image file, launch the external executable and read in the produced new textures.

This means anyone can take that sourcecode and compile a new headless Unity executable. Therefore would this be a way to comply with the copyleft licence?

An alternative that comes to mind is to compile the functionality as a pure C# DLL and provide the sourcecode of that with the the game. However while surely smaller filesize, that adds headache for the intended Windows, Linux and Mac cross compatibility. Any other viable approaches?

1 Answer 1

1

This means anyone can take that sourcecode and compile a new headless Unity executable. Therefore would this be a way to comply with the copyleft licence?

Assuming that you don't need to read the GPLed source code to produce a replacement (i.e. you use standard file formats and no (complex) internal knowledge in the parameters), then that is indeed a way to comply with the GPL license.

1
  • Interesting catch. If the requirements regarding the parameters etc. are "complex", may I provide examples/documentation to cover that? Otherwise without looking at the source code, I don't think one could even see what command line arguments are expected (unless you do reverse engineering by replacing the executable with something that prints the commands etc.).
    – DT Dev
    Commented Nov 23, 2023 at 16:01

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