Using some Celestia data and code for a freeware gamedev

General discussion about Celestia that doesn't fit into other forums.
Topic author
Mutos
Posts: 75
Joined: 15.07.2002
With us: 22 years 4 months
Location: France

Using some Celestia data and code for a freeware gamedev

Post #1by Mutos » 16.12.2007, 19:43

Hi all,


I'm currently beginning a freeware game development for an Elite-like/RTS game about the captain of a spaceship in a universe I wrote, named "Hoshikaze 2250". This game will be developped in partnership with EPITECH, a French IT school, as an End-of-Studies Project for a team of 6 students. I've already developped some code chunks for this project, but nothing of importance, due to lack of time. Now with that partnership, we're giving ourselves the objective of building a fully functionnal game by the end of February, 2009.

I used Celestia as a source of inspiration in building the Hoshikaze 2250 universe. Now I'm thinking about using textures and 3D models from Celestia for representing planets and orbital objects, like asteroids. I also thought of using the Celestia data formats (SSC and STC) to store stellar and orbital data, using only partially filled data. In fact we plan to only use 1-star systems and 2D orbital paths. But this would enable us to reuse existing datasets and derive parsing code from existing Celestia code.

So I ask you here, first Chris Laurel and then all Celestia contributors, about if we may or not do that, and if positive, in which terms. The game being a freeware, I think there is nothing wrong at redistributing data taken from Celestia as no-one will make any profit with them.

We are thinking about explicitely mentionning in the game credits Celestia and Chris themselves, plus individual contributors of images and models I would use. We also plan to include links in the gamedev site and game doc, leading to the Celestia portal and major contributor sites.

Thanks in advance for your answer and see you soon !
Benoit 'Mutos' ROBIN
http://spacesims.hoshikaze.net

Avatar
selden
Developer
Posts: 10192
Joined: 04.09.2002
With us: 22 years 2 months
Location: NY, USA

Post #2by selden » 16.12.2007, 22:01

Mutos,

Free does not mean you can do anything you want with it: Celestia is copyright by Chris Laurel and licensed to you under the GNU Public License v2 -- you agree to abide by it when you click on the "agree" button when you install Celestia.

My understanding is that the license allows you to use Celestia in your own code, but that when you redistribute it, you must make all of the source code available. But you should read the license for yourself.

The English version is available at http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
Selden

Christophe
Developer
Posts: 944
Joined: 18.07.2002
With us: 22 years 4 months
Location: Lyon (France)

Post #3by Christophe » 16.12.2007, 22:38

Small correction here Selden, Celestia is copyrighted by its authors, that includes but is not limited to Chris, despite what the readme still says.

That's for the code, for textures you should refer to the readme, some of them come from NASA and so are freely useable even for closed or commercial software. The datasets are collections of factual elements, as such they are not copyrightable and can be reused freely. However since people spend time collecting them and maintaining them if you do reuse them then crediting the source is "recommended".
Christophe

Avatar
selden
Developer
Posts: 10192
Joined: 04.09.2002
With us: 22 years 2 months
Location: NY, USA

Post #4by selden » 16.12.2007, 23:00

Christophe,

One has to go by what is written.

Also, although the textures are based on freely redistributable images, the textures which are actually included with Celestia are not those original textures: they've been modified and are what are called "derivative works". Similarly, although the information itself is not copyrightable, the text using it in the SSC, STC and DSC files is. As a result, all of the files which are included with Celestia all are covered by GPLv2.
Selden

Christophe
Developer
Posts: 944
Joined: 18.07.2002
With us: 22 years 4 months
Location: Lyon (France)

Post #5by Christophe » 16.12.2007, 23:49

selden wrote:One has to go by what is written.

Copyright protection is automatic, no writen notification is required although that may help in court. The current copyright notice is irrelevant since none of the authors have made a copyright assignment to Chris.

selden wrote:Also, although the textures are based on freely redistributable images, the textures which are actually included with Celestia are not those original textures: they've been modified and are what are called "derivative works". Similarly, although the information itself is not copyrightable, the text using it in the SSC, STC and DSC files is. As a result, all of the files which are included with Celestia all are covered by GPLv2.


It's not clear from the readme which textures were or were not modified. So yes, it would be safer to go to the original source rather than use the textures part of Celestia. Note also that at least for a time some of our textures were not under the GPL since the JPL's licence required permission for commercial use (see Debian bug 174456). Some of the models also appear to be under a free for non commercial use type of licence.

Regarding the datafiles, yes I guess you could claim that they are actual programs executed by Celestia and covered by the GPL, but the format being public as well as all the information they contain, it being "factual", you would have a hard time winning a copyright infringement case.
Christophe

Avatar
selden
Developer
Posts: 10192
Joined: 04.09.2002
With us: 22 years 2 months
Location: NY, USA

Post #6by selden » 17.12.2007, 00:14

Christophe,

With regard to the textures, at the very least their sizes have been modified. They are *not* the original images.
Selden

Topic author
Mutos
Posts: 75
Joined: 15.07.2002
With us: 22 years 4 months
Location: France

Post #7by Mutos » 17.12.2007, 04:30

Hi all,


Thanks Selden and Christophe for your answers, I see you've found a host of issues ^-^ First, let's begin with the simplets... Gving proper credits and stating licences is normal and I don't see any issue here. There's no need of anything written to do this, it's just proper, normal human behavior ^-^ That's precisely why I post here to accurately know what applies and what doesn't.

Now GPL. It's classical licence here, and thanks for the link, I re-read it and particularly the passage about the "derivative work as a whole". Here is the main problem I see : the whole derivative work has to be made GPL.

For our project, an AI company agrees to give us its SDK for free, but an NDA must be signed and the AI code must be protected. It has nothing to do with Celestia-derived code but it excludes parts of the game from the GPL. So I though about using GPL/LGPL for the non-AI parts and a closed licence for the AI part. So we would leave the AI engine void with available header files allowing a coder to develop an alternate engine.

So I come to conclude that only Chris himself could allow me to make use of Celestia-derived parts, by granting me a derivative but less constrained licence. It could be made freeform under article 10 of GPL, or to stay on GNU licences, LGPL would do the job of leaving the Celestia-derived parts free while allowing me to protect the AI SDK : http://www.gnu.org/licenses/lgpl.html.

Do you think I may write directly to him referring this thread, or do I stand a chance he may reply directly here ?

Edit 1 : as for the actual sources from which the code/data comes from, I assume Chris has the appropriate information and that quoting Celestia credits will refer to all sources. Is it right ?

Edit 2 : I just found in the GPL the following text, that can be used to combine GPL-licensed with limited proprietary modules. In the same way, to use this for Stars of Call, I would have to get Chris' approval :
Linking ABC statically or dynamically with other modules is making
a combined work based on ABC. Thus, the terms and conditions of
the GNU General Public License cover the whole combination.

In addition, as a special exception, the copyright holders of ABC give
you permission to combine ABC program with free software programs or
libraries that are released under the GNU LGPL and with independent
modules that communicate with ABC solely through the ABCDEF interface.
You may copy and distribute such a system following the terms of the
GNU GPL for ABC and the licenses of the other code concerned, provided
that you include the source code of that other code when and as the
GNU GPL requires distribution of source code.

Note that people who make modified versions of ABC are not obligated
to grant this special exception for their modified versions; it is
their choice whether to do so. The GNU General Public License gives
permission to release a modified version without this exception; this
exception also makes it possible to release a modified version which
carries forward this exception.


Edit 3 : apologies for using the French word "licence" in place of the English one "license". I'll be more careful in the future ^-^

Edit 4 : under the terms of the GPL, another way to make it run would be to have an AI engine in its own independant process, comminicating by way of sockets or pipes. But it has 2 major drawbacks. The first to me is that, in my perception, it is a mere cheat to escape proper licensing questions and it's better to address them and explicitely state appropriate terms. The second is of course performance, but nowadays it may not still be an issue.
Benoit 'Mutos' ROBIN

http://spacesims.hoshikaze.net

Christophe
Developer
Posts: 944
Joined: 18.07.2002
With us: 22 years 4 months
Location: Lyon (France)

Post #8by Christophe » 17.12.2007, 11:24

Mutos wrote:So I come to conclude that only Chris himself could allow me to make use of Celestia-derived parts, by granting me a derivative but less constrained licence. It could be made freeform under article 10 of GPL, or to stay on GNU licences, LGPL would do the job of leaving the Celestia-derived parts free while allowing me to protect the AI SDK : http://www.gnu.org/licenses/lgpl.html.

Let me reinstate here again that Chris is not the sole copyright holder, getting an approvable from him will only get you halfway there. You need to find the copyright holders of all the files you'd like to use, for that you have to check the readme, the file headers, and the CVS history (which is probably where you will get the most comprehensive information).

Then you need to get permission from all those persons. Yes, switching license is difficult.

Mutos wrote:Do you think I may write directly to him referring this thread, or do I stand a chance he may reply directly here ?

The developers mailing list is a good way to directly contact all the currently active authors.

Mutos wrote:Edit 1 : as for the actual sources from which the code/data comes from, I assume Chris has the appropriate information and that quoting Celestia credits will refer to all sources. Is it right ?

Yes, the readme is where all that information is currently kept.

Mutos wrote:Edit 2 : I just found in the GPL the following text, that can be used to combine GPL-licensed with limited proprietary modules. In the same way, to use this for Stars of Call, I would have to get Chris' approval

What you need is the opposite, isn't it? You need to be able to include currently GPLed files in a closed software, to that end I think it would be easier to get that limited number of files released under an alternative compatible license, say BSD or LGPL, rather than adding an exception clause to Celestia as a whole. That would also be far easier since you will need to get approval from fewer people.

Mutos wrote:Edit 3 : apologies for using the French word "licence" in place of the English one "license". I'll be more careful in the future ^-^

Same here, although licence is an accepted variant in English.

Mutos wrote:Edit 4 : under the terms of the GPL, another way to make it run would be to have an AI engine in its own independant process, comminicating by way of sockets or pipes. But it has 2 major drawbacks. The first to me is that, in my perception, it is a mere cheat to escape proper licensing questions and it's better to address them and explicitely state appropriate terms. The second is of course performance, but nowadays it may not still be an issue.


Yes, that would be borderline since the GPL is not quite clear as to what constitude a "derivative work".
Christophe

Avatar
t00fri
Developer
Posts: 8772
Joined: 29.03.2002
Age: 22
With us: 22 years 7 months
Location: Hamburg, Germany

Post #9by t00fri » 17.12.2007, 12:16

Doesn't it sabotage the whole OpenSource philosophy, if for whatever reasons Celestia's GPL-licensed code is mixed with closed source parts of code??

The resulting code is then clearly NOT OpenSource, cannot be recompiled by users and NOONE outside of the present dev team can easily continue to develop the resulting game further. That's precisely NOT the idea of OpenSource.

So from my side as a Celestia co-author, I do not agree to such a setup as it appears at present.

Hence that refers, for example, to all the galaxy implementation code and my respective 10000+ galaxy data, similarly to my hundreds of binary star orbits, quite a number of textures, and quite a bit of other core code over the years.


Bye Fridger
Image

Christophe
Developer
Posts: 944
Joined: 18.07.2002
With us: 22 years 4 months
Location: Lyon (France)

Post #10by Christophe » 17.12.2007, 13:40

t00fri wrote:Doesn't it sabotage the whole OpenSource philosophy, if for whatever reasons Celestia's GPL-licensed code is mixed with closed source parts of code??

The resulting code is then clearly NOT OpenSource, cannot be recompiled by users and NOONE outside of the present dev team can easily continue to develop the resulting game further. That's precisely NOT the idea of OpenSource.


It depends on who you ask. I tend to have the same view as you do, but some people, for example the BSD community has a different stand on that issue. In the same spirit the Gnome libs are released under the LGPL which leads to endless arguments about which of KDE or Gnome is the more free.

Anyway, regarding that particular request, I would not be as definitive as you are since this has to do with datafiles which by nature are not compilled. Any modification of those could be easily reintegrated into Celestia. But since I haven't contributed to any of those files, I should probably just shut up :-)
Christophe

Avatar
t00fri
Developer
Posts: 8772
Joined: 29.03.2002
Age: 22
With us: 22 years 7 months
Location: Hamburg, Germany

Post #11by t00fri » 17.12.2007, 14:16

Christophe wrote:
Anyway, regarding that particular request, I would not be as definitive as you are since this has to do with datafiles which by nature are not compilled. Any modification of those could be easily reintegrated into Celestia. But since I haven't contributed to any of those files, I should probably just shut up :-)


Sorry I don't understand. The implementation of the whole galaxy rendering was a LOT of core code that was developed by Toti and myself during more than 6 months. It was first released by me in our Celestia-FT1.x versions before Chris L. committed that large pile of code into Celestia 1.4.x. He did it under his name, but noted in the logs that it is code by Toti and myself. You can easily find the threads in the forum.

And there is quite a bit more essential core code (not data) committed by myself over the last 6 years I would say... ;-)

Bye Fridger
Image

Christophe
Developer
Posts: 944
Joined: 18.07.2002
With us: 22 years 4 months
Location: Lyon (France)

Post #12by Christophe » 17.12.2007, 14:28

t00fri wrote:The implementation of the whole galaxy rendering was a LOT of core code that was developed by Toti and myself during more than 6 months.


Sure, I'm not denying that. What I'm saying is that apparently all that Benoit is asking, unless I misinterpreted what he said, is for datafiles and textures/models, not for any code.
Christophe

chris
Site Admin
Posts: 4211
Joined: 28.01.2002
With us: 22 years 9 months
Location: Seattle, Washington, USA

Post #13by chris » 17.12.2007, 20:05

Mutos wrote:So I come to conclude that only Chris himself could allow me to make use of Celestia-derived parts, by granting me a derivative but less constrained licence. It could be made freeform under article 10 of GPL, or to stay on GNU licences, LGPL would do the job of leaving the Celestia-derived parts free while allowing me to protect the AI SDK : http://www.gnu.org/licenses/lgpl.html.


As Christophe has stated, I'm not by myself able to alter the license for any of Celestia's modules except those for which I can claim sole authorship (which you can mostly discover via the CVS logs, though there are cases where I've checked in code for others.)

The best thing for you to do is to compile a list of which code modules and data files you want to use, then move this discussion to the developers list.

--Chris

Topic author
Mutos
Posts: 75
Joined: 15.07.2002
With us: 22 years 4 months
Location: France

Post #14by Mutos » 18.12.2007, 04:55

Hi all,


In fact I didn't think this would give rise to such a heated argument ^-^ So thanks for all your answers, they give me a better sight of what I try to do and help me to foresee consequences I didn't envision !

As Chris suggests, I'll state exactly what Celestia parts I would like to use :
- STC and SSC format and parsing codes,
- Some extracts from STC and SSC files : 10/20 stars and simplified orbital data for solar main 100 bodies and a few extrasolar planets,
- Textures for solar planets and maybe some 10 or 20 others,
- Some star textures, let's say 10 or 20,
- If possible, some generic asteroid 3D models and textures, although I can cope without.

If using these few things is not possible I'll make otherwise, I'll just loose some time in searching for public sources and time is what I've got in lesser stock, but I'll manage.

A word about the project itself : it is to be free software, except the parts I cannot release that way. Thre is only one such part by now and I'll try not to add others : the AI engine, that would be our work but using a piece of proprietary software named SpirOps.

We will keep the project modular (set of engines + GUI + Tools) so that each module can use whatever license we feel appropriate at minimal damage for the whole. We will provide a set of header files for each engine for anyone to plug his own engine in place.

We are using SpirOps because : 1/ I know that company's founder since before its creation, he works great in a fine spirit and supporting him is a pleasure, 2/ The engine they make has, to my current knowledge, no equivalent in either public, free or proprietary fields and 3/ this is part of a school cursus and for the students, it will be a good reference on their CV to enter the videogame professionnal field.

Edit 1 : Chris, how do I move the discussion, or was it intended for forum admins ?

Edit 2 : in fact I want the project to be free software as much as possible, but I still must see with the school. I keep you informed.
Benoit 'Mutos' ROBIN

http://spacesims.hoshikaze.net

Topic author
Mutos
Posts: 75
Joined: 15.07.2002
With us: 22 years 4 months
Location: France

Post #15by Mutos » 19.12.2007, 05:38

Hi all,


In fact I've thought it out and I'll go without Celestia parts. I'll search the web for textures and use my own file format. I'll be easier and it'll allow me to take more time in gamedev itself and less in boring legal issues... It makes me sad because I had expected something else, but I take the lesson. Thanks again for the answers, even if they didn't go my way ^-^
Benoit 'Mutos' ROBIN

http://spacesims.hoshikaze.net

chris
Site Admin
Posts: 4211
Joined: 28.01.2002
With us: 22 years 9 months
Location: Seattle, Washington, USA

Post #16by chris » 19.12.2007, 05:48

Mutos wrote:Hi all,


In fact I've thought it out and I'll go without Celestia parts. I'll search the web for textures and use my own file format. I'll be easier and it'll allow me to take more time in gamedev itself and less in boring legal issues... It makes me sad because I had expected something else, but I take the lesson. Thanks again for the answers, even if they didn't go my way ^-^


Personally, I'm ok with you using the listed parts of Celestia in your game. I understand the troubles that can arise when trying to combine modules with different licenses, and your desire to use one piece of proprietary software. However, it's not my sole right to change the license on those particular modules. If I understand correctly, you'll need the approval of all the authors that contributed to the modules that you want to use. I won't pretend that this will be easy, especially since it may be difficult to get in touch with some of the earlier contributors.

--Chris

Topic author
Mutos
Posts: 75
Joined: 15.07.2002
With us: 22 years 4 months
Location: France

Post #17by Mutos » 20.12.2007, 04:54

Hello Chris, hello all,


Thanks Chris for your kind answer. I'm already at work for finding alternatives ^-^ Data I need is commonly available and quite easy to find.

This morning I found enough public material to begin with. I'm devising a format derived from the one I made for my Stellar System Editor in a previous SoC attempt.

As for the SSE. I think we'll keep the Celestia exporter on this one so that it can be of use by the Celestia community.
Benoit 'Mutos' ROBIN

http://spacesims.hoshikaze.net


Return to “Celestia Users”