Advertisement

Open Source License Advice

Started by October 12, 2006 10:58 AM
5 comments, last by frob 18 years, 1 month ago
Can anyone tell me the best open source license to use for my software? I'm making a wild attempt at releasing a game, however small, this December. I've played with about a dozen different game libraries and none of them did exactly what I wanted, so I started my own. The library is divided into two projects, with some extra resources to show how to use and deploy a product using the libraries. The goal is to make it simple to create a casual/indie game product using a the .Net framework. I'm not sure I want to release the names of the projects yes, so I'll call them 1 and 2. The goal of the projects is to insulate the game from all the platform-dependent aspects of a game engine, and allow the game to run on different platforms without recompiling. Project 1: High level game engine This is a DLL library that defines all the interfaces a game uses to communicate with the game engine. This allows a game executable to contain only game logic, in it's most eloquent form. This library contains middle-tier logic that can be extracted away from the hardware implementation. Project 2: Low level game engine This is an executable player. It can run any game written to the interface defined by project 1. This particular implementation uses Managed DirectX and builds on top of the open source RetinaX project. The most important thing is that I want to release games for profit using the open source engine. I want other developers to feel encouraged to use and contribute to the engine. I want to create a portal for games created using the engine that can be browsed using the published version of project 2. I want project 2 to be like a media player, that knows about all the compliant games you have and lets you browse and launch them, and browse for new titles. What's the best license to use to spread use of the project, keep improvements moving back to the community, and make the products useful to someone releasing a retail game. Also - How crazy an idea is it to release the source code to the retail game when it ships? The content and code will be copyrighted. Is it that much of a competitive disadvantage to release the code open source? I want to encourage modding anyhow. Is it too much invitation to piracy? Thanks. Mike McHenry
>>Can anyone tell me the best open source license to use for my software?

You get to decide for yourself. You might find http://www.opensource.org/licenses/ to be useful. The license discussion newsgroup archives linked to on the page may also be useful to you.

Unless you incorporate other people's changes in to your work, you are free to give it out as open source and also use it in your closed source stuff.

Before accepting other people's work in your own open source code, you will need to discuss it with a competent lawyer familiar with open source.


>> Also - How crazy an idea is it to release the source code to the retail game when it ships?

If you ship the source code AND the other assets like sound, images, maps, etc., then you're not going to make much money. If other people can find exploits in your code, they will take advantage of them. A few companies are willing to release the source code (but generally not other assets) after they have made a reasonable profit.

>> The content and code will be copyrighted.

Everything is automatically covered by copyright the instant you type it, draw it, or otherwise record it.

>> Is it that much of a competitive disadvantage to release the code open source? I want to encourage modding anyhow. Is it too much invitation to piracy?

Those are business decisions you will have to make yourself. Allowing modding generally means you provide a documented external API or scripting tools, not the source code to the full application.
Advertisement
Quote: Original post by mg_mchenry
The most important thing is that I want to release games for profit using the open source engine. I want other developers to feel encouraged to use and contribute to the engine. I want to create a portal for games created using the engine that can be browsed using the published version of project 2.
The LGPL really comes to my mind reading that.
Quote: Original post by DaBono
Quote: Original post by mg_mchenry
The most important thing is that I want to release games for profit using the open source engine. I want other developers to feel encouraged to use and contribute to the engine. I want to create a portal for games created using the engine that can be browsed using the published version of project 2.
The LGPL really comes to my mind reading that.


The LGPL might not be the best thing for him, depending on the goals. He might be more interested in any of the attribution license, the attribution share alike license, attribution assurance license, the BSD or MIT licenses, the Mozilla 1.1 license, and dozens of others. For his modding interface, he might prefer the python foundation license or other scripting language licenses.

It really all depends on what goals the OP has for his open source code.

Obviously he wants to include linking to commercial works, but there are many other questions to answer. Does he require attribution? If so, what are the requirements? Does he want to require distribution of changes? Does he want to require patant, trademark, and other releases for all content? Etc.
Quote: Original post by DaBono
Quote: Original post by mg_mchenry
The most important thing is that I want to release games for profit using the open source engine. I want other developers to feel encouraged to use and contribute to the engine. I want to create a portal for games created using the engine that can be browsed using the published version of project 2.
The LGPL really comes to my mind reading that.



Makes me think of the commercial friendly zlib/png or bsd license.

If someone modifies your source code, do you want to force them to give you their changes? If not, then zlib/png or bsd are good.
Thanks for all your input, frob.

With most open source game engines, take Irrlicht or Ogre for example, the game engine is distributed as a DLL that is dynamically linked to the game executable.

In my project, the game is a library and the engine is the executable. The game exe simply finds the installed version of the game engine, and asks the game engine to run the game, and exits.


The core of the project is a standard interface a game engine has to implement in order to run compliant games, and the interface standard a game has to comply with to run on the engine.

I think that may mean I need a different license for the game engine and for the middle library.

I don't want anyone to alter the standard or the game engine code without submitting that change back to the community. Additionally, I'd like to use work from projects like Axiom, RealmForge, and RetinaX in the game engine.

However, I want people to be able to link the middle library that allows their game to interface with the game engine without releasing their actual game code open source.


I think the most important question is, can I release code now and change the license later when I better understand what is needed?
Advertisement
Quote: I think the most important question is, can I release code now and change the license later when I better understand what is needed?

You own the rights on whatever you write. If you want to release it under a different license, you are free to do that.

But there are some caveats.

You cannot un-release something. If you put it out under a given license, people who already have it with that license can continue to use it under that license.

You cannot change the licence of other people's stuff. If they submit a change back under any of the 'sharing required' licenses, then you cannot alter their terms just as they cannot alter yours. The combined version is locked in to that license, unless you and every other contributor agree to change it.

It is easier to make something more free. It is hard to make it less free.

Examples:

You put out your library as an LGPL work. Two months later you decide to take that version off your web site and replace it with one for a $10,000 license. Anybody who downloaded the earlier version can continue to use it under the terms of the LGPL. Sites like archive.org might have a copy of it forever, and they can do whatever they want with it, even if you ask them to take it down.

You put out your library as a GPL work. Some people submit patches and updates to it. Two months later you decide to replace it with a version for a $10,000 license. You cannot include their code because the GPL license forbids inclusion in closed source work. You must contact them and get legal permission to use their copyrighted material in your closed source work. Anyone who already has a copy can continue to use it under the free license.

You put out your library as a BSD licenced work. Some people submit patches and updates to it. Two months later you decide to replace it with a version for a $10,000 license. You can include their BSD code because the BSD license permits inclusion in closed source work. Anyone who already has a copy can continue to use it under the open license.

This topic is closed to new replies.

Advertisement