Game Development Community

Torque Network Library License

by Mason McParlane · in Torque Game Engine · 03/16/2012 (9:51 pm) · 6 replies

Assume that I want to create a multiplayer game that links against TNL. Would I need to provide a link to all of my sourcecode for the game client? Can I still profit from such a game? I have to say that the legalese of the GPL has me puzzled. It seems kind of crazy!

I pulled this from wikipedia:



Communicating and bundling with non-GPL programs

The mere act of communicating with other programs does not, by itself, require all software to be GPL; nor does distributing GPL software with non-GPL software. However, minor conditions must be followed that ensures the rights of GPL software is not restricted. The following is a quote from the gnu.org GPL FAQ, which describes to what extent software is allowed to communicate with and be-bundled-with GPL programs:

'What is the difference between an �aggregate� and other kinds of �modified versions�?

An �aggregate� consists of a number of separate programs, distributed together on the same CD-ROM or other media. The GPL permits you to create and distribute an aggregate, even when the licenses of the other software are non-free or GPL-incompatible. The only condition is that you cannot release the aggregate under a license that prohibits users from exercising rights that each program's individual license would grant them.

Where's the line between two separate programs, and one program with two parts? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged).

If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.

By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.



So, in order for me to use TNL without releasing the source for my game implementation I guess I need to create a local IPC mechanism to interface with the TNL codebase?

#2
03/17/2012 (9:53 am)
If it is statically linked, you can implement GPL code without open-sourcing the rest of your codebase. You cannot dynamically link it, however. The LGPL accommodates dynamic linking.

You can also contact us at licensing@garagegames.com for a commercial quote for TNL.
#3
03/17/2012 (2:49 pm)
@David,
I don't think that is correct. The GPL covers both static and dynamic linking. If you link at all you must have a GPL compatible license for the remaining code.

LGPL just makes an exception for dynamic linking only. In LGPL if you dynamic link then you can still use whatever license you want for your code.

@Thomas,
GPL is here to stay and has a significant foothold on the computer science world. It would be a good idea for any programmer to understand the basics of the GPL family of licenses.

"Assume that I want to create a multiplayer game that links against TNL." If you mean link as in a linker then you must use the GPL or a GPL compatible license for your code. If by link you mean network connection, then no, you can use whatever license you want.
#4
03/17/2012 (8:56 pm)
David:

Does the closed license for TNL apply to the same codebase as OpenTNL on sourceforge?


Frank:

Thanks for the clarification!
#5
03/18/2012 (11:51 am)
That's right, Frank. GPLv2 added dynamic linking. It used to not cover it and caused much licensing misery. My mistake.

Yes. It does not include the TNL2 work that Mark has done on github.
#6
03/20/2012 (7:20 pm)
Thanks David! I'll investigate both :)