Game Development Community

Question regarding acceptability of use of MIT/BSD licensed code in contributions

by Peter C · in Torque 3D Professional · 02/28/2013 (4:01 pm) · 11 replies

Hello, I'm currently looking at doing some work in improving Torque3D in ways to hopefully allow for easier implementation of threading, a plug-in system, and an entity-component system. There are currently a few things I would like to base the implementation on that are BSD and MIT licensed to make life easier. I was wondering if I use these libraries to implement the functionality, would there be any problems down the line merging it in to the mainline?

Thanks,
Peter

#1
02/28/2013 (4:12 pm)
The worst thing that would happen is you remain a fork. I would imagine though that those licenses are compatible with the license of T3D so it should not have issues with merging. The source files that have the third party code would most likely keep the existing license they already have in a lib directory. I think other code is already like that in the engine.
#2
03/01/2013 (8:02 am)
MIT and BSD are both extremely permissive. There shouldn't be any problem adding code under those licenses into the official repo. It is a license like the GPL (or LGPL if not implemented correctly) that can cause problems down the road for people who do not wish to release their source code.

Of course, beyond that the MIT license is also GPL compatible, though that is more of a one-way road from that point on and the license should be converted to GPL if any GPL code is integral to the engine and unable to be removed.
#3
03/01/2013 (12:28 pm)
Alright, thanks for the information. I'm going to look in to ways to implement the functionality I am planning soon. Also, if I may ask, I notice that there are markings saying that parts of the component system are to be depreciated in the source code. Is that still the case, or would it be plausible to start off with expanding on that to implement components for the entity system, and then refactoring as time goes on?
#4
03/06/2013 (12:22 pm)
@Peter:
What code specifically are you concerned about?

- Dave
#5
03/09/2013 (10:42 pm)
I'm thinking of using some libraries to assist in implementing a entity-component system. The libraries are as follows:

Signals and slots implementation for use in communication between components:
https://github.com/pbhogan/Signals

Task based threading implementation for use in implementing threading:
http://code.google.com/p/cpptask/

Note, I would consider this, but C++11 support comes in to question on most compilers:
https://github.com/Amanieu/asyncplusplus

There is also this code which I am considering basing the entity system implementation on:
https://github.com/vinova/Artemis-Cpp
#6
03/10/2013 (12:59 am)
https://github.com/pbhogan/Signals
Torque3d includes a signal system. It is based on FastDelegates, and signals may return bool. I think Torque3D signals is a better choice.

http://code.google.com/p/cpptask/
I love: Parallel-For algorithm :D

https://github.com/Amanieu/asyncplusplus
C++11: It would be necessary to eliminate support VS2008/VS2010

https://github.com/vinova/Artemis-Cpp
I think it would be better to look first Torque 2D Behaviors (based SimComponent). Some members of GG have expressed their predilection for adding signals to Torque2D behaviors. Any improvement could help the 2 engines. If you decide to try this route, count on me to help you.
#7
03/10/2013 (8:59 am)
@Peter
You should be good using all of those in open and closed-source projects.
#8
03/11/2013 (7:59 am)
@Peter:
Sorry, I actually wanted to know what component code in Torque 3D you were concerned was going to be depreciated?

Thanks!

- Dave
#9
03/11/2013 (8:14 am)
I think it referred to this comment:
ConsoleDocClass( SimComponent,
				"@brief Legacy component system, soon to be deprecated.\n\n"
				"Not intended for game development, for editors or internal use only.\n\n "
				"@internal");
#10
03/11/2013 (10:52 am)
@Luis that is the exact comment that made me think it was deprecated.
#11
03/12/2013 (11:40 am)
@Pater:
Well, we don't currently have any plans to remove SimComponent. In fact, it would be nice to expand on it like was done for 3 Step Studio and Torque 2D.

- Dave