PDA

View Full Version : Partially open sourcing a game engine


J22
01-12-2008, 03:48 AM
Hi,

I have been thinking to start incrementally release pieces of a game engine I have been developing over the years. The engine is by no means complete, but there are pieces I believe many other game programmers might benefit from and respectively the engine development would benefit from the feedback of those programmers.

So, I would essentially want to build open source community around the public "stub" part of the engine while keeping rest of the engine closed source and release pieces of it at my discretion.

I was thinking about the terms of use of the engine. I have personally no interest to financially benefit from the stub part of the engine. Only thing I want is to have community without obligations (either way) to develop the engine stub further. I don't want to set GPL-like restrictions that require you to publish your modifications with the release of your product because that's deal breaker for many closed source game developers. Only restrictions I have in mind is that you may not distribute modified or non-modified version of the engine (partial or as a whole) outside your organization without my written consent, e.g. you couldn't sell the engine source code as part of your own code base, nor could you publish your version of the engine source code (neither free nor commercially). However, you could for example make any modifications to the engine and release commercial closed source project without any obligations or sell your code base (or publish an open source project) with external dependency to the engine stub. Personally I would retain all rights to the engine of course.

However, I have no experience on open source development and would like to hear your thoughts about the above. Do you think it would be reasonable to expect open source community to grow for such project with terms similar to the ones described above? Or would it just end up being a project without any real feedback due to the lack of GPL-like obligations? Feel free to play devils advocate to suggest in what kind of different ways shit could hit the fan ;) I would also like to hear what do you think would be good way to proceed with this kind of project, e.g. where to publish the project (SourceForge?), is there a license that matches my preferred terms of use, etc.

Thanks!

Sol_HSA
01-12-2008, 03:53 AM
Unless your engine is complete, has tons of documentation and examples, beats everything out there, and you go and actively promote it yourself, you can rest assured that nobody will look at it.

There are commercial engines which have been released as open source, and pretty much nothing has come out of them.

Open source, or even public domain code isn't free, because it takes time and effort to figure out how it works and how it can be applied.

And I'll blatantly copy another post of mine that I've done which is related to this:

I've released fair bit of code, as can be seen on my site. Sometimes when I'm working on some project which I'm thinking of releasing in source form, I first ponder about asking for money, then ponder about using some restrictive license, and eventually end up using a license such as zlib/libpng or (in some cases) wtfpl.

I do know that my code has been used, without anyone even bothering to mail me, in several commercial games (I've found some of these out by noticing that certain modding communities are using my tools), as well as other commercial software (certain graphical instant messenger comes to mind..).

And you know what? I don't care. I'm actually happy that people have used said code successfully.

When I was interviewing for a new job about a year ago, I visited several companies (game and otherwise) which in normal circumstances give applicants homework - simple or sometimes not so simple programming tasks - none gave me those tasks, and usually just commented as a side note in the interview that they had been on my site and that part wasn't a problem.

Usually it was some other detail that didn't work out, including the bit that I was (still am) studying in the evenings.

Anyway, what I'm saying is, you can forget all your fears and just release it in the public domain - unless you, yourself, aggressively advertise it, writing tutorials, samples, excessive documentation, and it's the best thing since sliced bread, pretty much nobody will touch your code.

All said, it's yours, do whatever you want with it. =)

J22
01-12-2008, 04:52 AM
I could list quite a few game engines that are looked at, doesn’t match your requirements and some of which are even licensed for 7 figure numbers ;)

Like I said, I don’t have problem people using the code for commercial products but I would just like to impose some restrictions to the source code distribution. I see you haven’t had much of a success regarding feedback of your work, but there are tons of open source projects which have community built for them I heard. Some tips regarding running such a project successfully would be appreciated. I should probably read some book about the topic (suggestions?), but as impatient I am, some direct advices would be nice to have as well to get things rolling.

I wouldn’t be doing this to get through job interviews either, not saying that it wouldn’t be nice addition to my resume.

fireside
01-12-2008, 10:55 AM
The problem with GPL, especially releasing a stub, is that any code that gets mixed with it also becomes GPL code. The good part is that they have to notify you of code changes and release the source. I'm not sure if that's true or not with LGPL. Documentation is important, so if you don't have any, you should more or less not bother. Maybe a few people will look at it. Generally, it's best to separate the code as a shared library, then you can use the GPL license and people won't be required to make their code GPL if they don't want to. I'm only a person that has used open source, by the way, I've never released any. I think it's great being able to use libraries like that and hope you have something useful you can offer the community.

Mattias Gustavsson
01-12-2008, 01:13 PM
Just make it public domain, and make games instead :lol: I did with mine, and haven't regret it for one second :yes:

J22
01-12-2008, 03:07 PM
The problem with GPL, especially releasing a stub, is that any code that gets mixed with it also becomes GPL code.
Yes, GPL is way too restrictive and impractical for closed source game developers, thus I mentioned earlier that I don't want to publish the code under that license. I also checked LGPL, but it would require you to publish modifications (derivative works) of the library. LGPL could potentially cause conflicts with other licenses such as if someone would create PS3/Xbox version of the math library I'm not sure if Sony/Microsoft would approve publishing code for those proprietary platforms. I also checked new BSD license but it seems too close to public domain, as I want to limit redistribution of derivative and non-derivative works in source code form.
Generally, it's best to separate the code as a shared library, then you can use the GPL license and people won't be required to make their code GPL if they don't want to.
Infact, if I understood correctly you would have to release source code of your work even if you only link GPL licensed library. It's explicitly said that the difference between LGPL and GPL is that LGPL doesn't require source code release of your work in that case: "The main difference between the GPL and the LGPL is that the latter can be linked to (in the case of a library, 'used by') a non-(L)GPLed program, which may be free software or proprietary software"
Just make it public domain, and make games instead :lol:
I make games 5 days a week at work so I rather balance that with some other kind of stuff at free time ;)

But thanks for your feedback guys and I will keep looking for different options to go for. And if anyone got more ideas/experiences/etc., please don't hesitate to share! :)

SamuraiCrow
01-12-2008, 06:49 PM
When you create a new project on Sourceforge.net it lists out a bunch of licenses to choose from. It sounds to me like you want something between a Creative Commons and Shared Source license. For a list of the OSI approved licenses you can look at the OSI homepage (http://www.opensource.org/).

fireside
01-13-2008, 07:29 AM
Infact, if I understood correctly you would have to release source code of your work even if you only link GPL licensed library. It's explicitly said that the difference between LGPL and GPL is that LGPL doesn't require source code release of your work in that case: "The main difference between the GPL and the LGPL is that the latter can be linked to (in the case of a library, 'used by') a non-(L)GPLed program, which may be free software or proprietary software"

Yes, that does seem to be the case. I thought you could link to GPL but they specifically state it becomes GPL even if it's dynamically linked. I would stay away from any obscure license however, there are too many around and no one knows what's going on anymore. LGPL should work fine, and they could contact you if there is a problem with other platforms, etc, at that point the program probably won't work anyway.