Thoughts Serializer

Computer graphics, Games, Personal

Sylphis3D goes open source : BSD or GPL ?

27 Comments »

I think this is good news on the doorstep today! Yeap! After long thoughts I came to the decision to finally open the source code of Sylphis3D. This is going to be a big step for the development of the game engine and I would really like to welcome you to it.

If you followed me for some time you would know that this is not an unexpected step. I have been an open source enthusiast and contributor for many years, with some valuable contributions to the overall open source community. However this is going to be the greatest!

Sylphis3D is the product of hard work and dedication. The engine’s development began at early 2002 and continued since then, with small pauses in between. The purpose was to develop a state of the art game engine with realtime shadows and per pixel lighting. Something that was not available by engines of the time. The goal was achieved, and further goals where created to keep the development going. Even now the engine provides features that no other engine provides. Effects like realtime motion blur are not available by other game engines. At the moment the only engine that supports the features of Sylphis3D is the engine the guys at Project Offset are creating. However their engine is not available for real testing and only videos are available of it in action.

This is what makes the release of Sylphis3D so important. People are going to get their hands on cutting edge features of computer graphics. From my side, what I want to see in return, is the formation of a community that will support Sylphis3D and create wonderful things with it. I really believe in open development communities and what they have to offer.

The actual release is going to happen sometime in the Easter holidays (consider it as a gift!!!). At the moment I’m preparing the engine for the release so there will be no big problems.

One issue that I haven’t really cleared yet is the license under which it will be released. In the beginning I was considering a BSD style license to be maximally liberal and allow the wide use of the engine. But later after some discussions that I had with some open-source-heads I’m also considering GPL to ensure that there will be always an up-to-date open source version of Sylphis3D. There I would like to ask for your opinion, what do you think? Is it worth it to go for a BSD license, or there is nothing to be gained?

I’m waiting for your thoughts and opinions ….

p.s. Don’t forget about the upcoming Carnival Of Game Programming… we need your articles!!!

opensource, sylphis3d, opengl, GPL, BSD, game, engine

27 Responses

I use the Apache license for my game engines — it’s very liberal like the BSD license(s) are, but is written in very plain, understandable English and forces only the attribution of your forebears.

  • gpl has great politics but is difficult in the world of gaming.

    if someone wants to adapt your engine for use on a console, under the gpl they probably wont be able to. any code of yours that they modify will have to be published, but any code that uses the console manufacturer’s api can’t be published, so developers would find themselves in a bind. licensing under the lgpl may provide a way out in some situations, but not every console supports dlls.

    one of the points of the gpl is to encourage the formation of a broad foundation of open source software. the reality is however few — if any — console manufacturers will ever open their apis as long as they are able to make money off the licensing fees. so (l)gpl code will largely remain off-limits.

    my opinion is: ask that people re-publish what they can, ask that they inform you, and then rely on them to do what they can — if they are in to open source initiatives i think most developers will at least try to help out with what they use.

    ( fyi: orge has had similar issues and they have gone with a dual licensing scheme, but i believe are still trying to work out all the potential console issues. )

  • BSD or alike. The reason is that GPL is actually more limiting and freedom destroying license. BSD is more mature in the sense that it doesn’t kill entrepreneurship and sets up healthy two-way relations between bigmoney.com and the open source. Yeah, you can pick GPL but you could as well just shred and destroy all the code – no one will use it for real good projects in the GPL case anyways.

  • I would go with LGPL. This allows the library to be used with closed source apps but the library must stay open source. Thats my interpretation anyway.

    If you release it as BSD you are basically giving away the source with no strings attached. A company could fork the code, make their own changes and sell it. They will no be required to give the patches back to the community.

    Microsoft, for example, used BSD (The OS) code, which was licensed under the BSD license, in the windows TCP/IP stack. Obviosuly MS never contributed any code back.

    LGPL protects the community, but allows anyone, including commercial use, of your library. BSD offers no such protection.

  • BSD-like. I used LPGL engine in commercial game and it was really difficult to separate it with closed source. And I don’t imagine any user giving a damn about the include source code with all modification and stuff.

  • The best choice is to use exactly the same license that Sun used when open sourcing Java.

    It is a GPL with an addition (called “classpath exception” for java). This means that the code is GPLed but it can be used by other projects that use BSD/Apache licenses.

    The advantage is that any modification to the code must be made public (this is the GPL part) but for people just using the code without modification, they can include it into their commercial project without trouble.

    My advise: learn from what Sun had to do with Java. They chose the GPL license but they had to remain compatible “java in the enterprise”.

  • Wow James I wasn’t aware of that! This seems like a very good solution… I running off to Sun to learn more… Thank you!

  • That’s good news! I would avoid the GPL for reasons already mentioned. Perhaps the LGPL is the way to go?

  • Why not dual license it? MySQL do this, as do a few other projects. Distribute as GPL for free, but allow people to buy a license to use the code however they like.

    The only problems with this approach are that you need people to assign copyright in their contributions back to you (so that you have the right to relicense), and that other people can still fork the GPL codebase (but they can do that anyway).

  • James described LGPL style intended behavior but attributed it to the GPL. Sun’s JVM implementation is GPL, but the API’s are specifically not, which is why you can write apps against Java which are not GPL encumbered. From your blog entry you seem to want LGPL — changes to your code must be provided with a distribution. I would encourage you to use a BSD style (I am partial to the Apache or MIT licenses, personally) instead, it allows for arbitrary usage and generally leads to easier adoption, and changes tend to flow back anyway.

  • I’m a big fan of the BSD style license. Thanks so much for deciding to share your engine!

  • First of all, Big Thanks for contributing your engine freely. I think LGPL is the best because of it is more commercial (Attractive to more people) friendly than GPL and more restrictive than BSD in contribution to the engine itself.

  • Just a personal choice, but it comes from thinking about the same problem.

    MIT license anything that looks or smells like a library.

    and then GPL anything left, eg tools plugins etc.

    Kriss

  • That’s fantastic, great work, nice one, I’m very excited about the whole thing. Thank you :)

  • [...] The last days I’m spending most of my time considering open source licenses and what would be the appropriate license for Sylphis3D. I must say that it is a very brain-melting procedure. I can see now why I could never became a lawyer! [...]

  • Truthfully, you should just write down what you want from going open-source, then see which license matches up with your goals. If you can’t find one, then write your own. The Irrlicht Engine’s License is very fair and free, take a look there.

  • James, that Sun/Java solution sounds suspiciously close to the LGPL…. which I am in full favor of. :) Letting people use the Sylphis3d game engine for commercial projects would be sweet, but if they change the engine, they have to release engine changes made.

  • Um, how about MPL (Mozilla Public License)? Using MPL makes sure that the engine itself remains open, but others can make closed-source modules for it if they want or need. It’s the most practical way, i think.

    If you want everything, you may triple-license it like the Mozilla codebase: MPL/GPL/LGPL and the user/programmer chooses the license that applies to his project.

  • ZLIB licence just like Sauerbraten engine.

  • My vote is for MIT or BSD license, this allows ports to consoles or other closed architectures. Though if you want to receive modifications back then it’ll have to be GPL/LGPL or similar.

  • If you feel the pain, your work is to be completely exploited by freeloaders (be sure, a workable majority of the 6.5 Billion planet earth’s population is plain stupid) and at the same time you will allow closed source game development, then LGPL may be the best choice. With something like MIT or BSD, your project will not grow, but long term scheduled for demolition …

  • From a personal view I would only use it if it was BSD style.

  • Regarding a license, prefer BSD but LGPL might be okay for libraries. However…from what I’ve read, it seems that any GPL variant is quite often summarily dismissed by lawyers (or lawyer-wannabe) without really investigating the language of the license. It’s just too scary. If you really want the lib to see wide use, place as few shackles as possible on your users – i.e. free as in “have a beer dude!” not “now share your beer or die!”.

    For toolsets, GPL-like seems a good choice. The only catch is that if someone modifies the source to output custom private formats, having to release the source will contribute to the format no longer being private (yea, all files can be “cracked” eventually, but that’s a seperate issue). Really, a GPL-like license which requests modifications to be released but provides exemptions for interfacing with more liberal libraries as well as “industry secret” type stuff would make sense. …but maybe that’s too much crap to deal with, so ah, BSD on that one too. :P

    –”Microsoft, for example, used BSD (The OS) code, which was licensed under the BSD license, in the windows TCP/IP stack. Obviosuly MS never contributed any code back.”–

    Wait… “obviously”? It’s not obvious to me (I don’t know if they did or didn’t). That’s a rather casual assertion without proof.

  • Great Article ! Some true for all… Bye ! :)

  • GPL License – that is it ! Extra article !

  • Nice post. I be taught one thing more challenging on different blogs everyday. It’ll all the time be stimulating to learn content from other writers and observe a little bit one thing from their store. I’d prefer to make use of some with the content on my weblog whether you don’t mind. Natually I’ll provide you with a hyperlink on your web blog. Thanks for sharing.

  • It’s a plsuraee to find someone who can identify the issues so clearly

  • Leave a Reply