Archived

This forum has been archived. Please start a new discussion on GitHub.

Some questions about the license.

I am developing a MMO with a team of about 8. We use Ogre3D for our client and Ogre3D has the same license as Ice. Ogre has been used in many commercial products and these commercial products just need to release the Ogre Library if they have made any changes to the library but the rest of the product can remain closed source. In the license for Ice it says that any projects using Ice must be completely Open source not just the Ice Library if changes have been made. Why is there the difference when both are under the same license?

Now if we HAVE to have our whole engine open source is it possible to keep our game assets closed source since those really aren't a part of the game engine and would it be possible to put in some code to our client and server that allows only our clients to connect to our servers?

Comments

  • bernard
    bernard Jupiter, FL
    Hi James,

    Welcome to our forums!

    Well, Ice and Ogre3D don't use the same open-source license. Ice is licensed under GPL v2, while Ogre3D is licensed under LGPL (and soon the MIT license). Not at all the same!

    You can find more information about GPL and LGPL on the FSF web site; for example Why you shouldn't use the Lesser GPL for your next library - GNU Project - Free Software Foundation (FSF).

    If you want to use Ice and can't or don't want to release your application under GPL v2, then you should get a commercial Ice license. Contact sales@zeroc.com for additional information.

    All the best,
    Bernard
  • Thanks Bernard for answering. Yes I see that they are 2 different licenses. I was just doing some research today on them. I don't mind releasing parts of the server as opensource infact we have been talking about doing so. However we do have some concerns. First like I asked if we were to release our engine opensource would we also have to release all of our Game assets (3d models, textures, scripts, ect) as opensource as well so pretty much anyone could download our engine, assets, and client and setup their own version of our game on their own servers? I know of atleast 1 opensource MMO that released under a dual license 1 license for their engine which allowed any one to use their engine and another license for their assets which kept them from being used by other games.

    Also we have it designed in such a way that the server uses Plugins to handle the different game logic. All of the ICE Code is contained to just 1 plugin so would it be possible to opensource that one plugin and the plugin frame work but keep the other plugins which contain no ICE code at all closed source?
  • marc
    marc Florida
    The test is whether your code links with Ice (static or dynamic). Loading game assets, like music files, 3D models, or textures, isn't linking. Otherwise you couldn't have GPL'd MP3 player or picture library either.

    As for the plug-in question, please see Frequently Asked Questions about the GNU Licenses - GNU Project - Free Software Foundation (FSF)
  • Ok thanks Marc for answering. Now I am happy to hear that game assets wouldn't need to be released under GPL because I was being told over at Gamedev.net that they would need to be released under GPL so I was trying to find another solution. Now my last concern if we were to release the engine (Server and client) under the GPL would there be any way that we could add in a little piece of code into only our official clients that told the server it was an official client so that some one couldn't hack the client and then sign on to our server and start cheating with a hacked client?
  • marc
    marc Florida
    I'm afraid if it's code, you would have to release it under GPL. However, you could use some cryptographic method to "sign" your specific client binary and make sure that your server only communicates with binaries that have the correct signature.
  • Ok great thanks. I will look into different way of cheat protection or whatever because ICE has almost everything we need and we have gotten farther in the last couple days using ICE then what we had gotten in a couple months using Raknet. Would it be possible for us to start using the GPLed version of ICE now during development and then once we had the money switch to the commercial license or do we need to pick one license and stick with it?
  • marc
    marc Florida
    You can develop under GPL for as long as you wish. However, this means that if you distribute your code, including to other developers, such code must be released under GPL. You can later switch to a closed-source license, but you can't take back the GPL license for the code that you have already distributed. Only new code would be affected, provided that the copyright holders of the old code, which has been released under GPL, all give permission to switch to a closed-source license as well (i.e., dual-license the code, just as we dual-license Ice).
  • Ok So like for example lets say we release version 1 of our game under GPL. The code that we continue using never gets other people's code included into it just our team member's code. Our team and our team only starts work on Version 2 of our game which include version 1 as it's base but then adds on to it. No one has had access to the source code for version 2 only our team members because it hasn't been officially released yet. We get the money for the commercial license so we keep version 2 closed source. We still keep the source code for version 1 available for download but the source code for version 2 would never be available for download. Is that acceptable?
  • marc
    marc Florida
    Ok thanks Marc for answering. Now I am happy to hear that game assets wouldn't need to be released under GPL because I was being told over at Gamedev.net that they would need to be released under GPL so I was trying to find another solution.

    As a disclaimer: In this thread, I am only providing my interpretation of the GPL with respect to the questions you ask. I am not a lawyer, and therefore, this is not legal advice. To be really sure, you should consult a lawyer.
  • Ok but you are ICE staff so what you have said about art assets not being a part is that ICE's official stance on the issue or will I find a letter in my mail box after we release our game with the assets being closed source stating that zeroc is taking me to court?
  • marc
    marc Florida
    Ok So like for example lets say we release version 1 of our game under GPL. The code that we continue using never gets other people's code included into it just our team member's code. Our team and our team only starts work on Version 2 of our game which include version 1 as it's base but then adds on to it. No one has had access to the source code for version 2 only our team members because it hasn't been officially released yet. We get the money for the commercial license so we keep version 2 closed source. We still keep the source code for version 1 available for download but the source code for version 2 would never be available for download. Is that acceptable?

    I'm afraid I'm not feeling comfortable answering this, because now it really gets complicated :)

    At the core of this question is whether your team constitutes a legal entity of its own, or whether every team member is a separate legal entity and therefore sharing code between team members is distribution. If it is, then the team members can only share code under GPL, and there must be no additional agreement between the team members to not exercise the full rights of the GPL, because such an agreement would be a violation of the GPL.

    My recommendation is to consult with a lawyer. We cannot provide you with legal advice, and most definitely not on a complicated issue like this one, which probably very much depends on your organizational structure.
  • marc
    marc Florida
    Ok but you are ICE staff so what you have said about art assets not being a part is that ICE's official stance on the issue or will I find a letter in my mail box after we release our game with the assets being closed source stating that zeroc is taking me to court?

    ZeroC's stance is that loading data (in contrast to executable code) such as pictures or 3D models into a program does not mean linking with such program. ZeroC will not "take you to court" if you release an Ice-based GPL program that loads non-GPL'd data.

    However, as I said before, this is not legal advice, and other GPL licensors might see this differently, so please consult a lawyer.
  • Ok we have decided that the because we don't feel like getting into any legal battles or anything the engine will just be completely opensource in the end it should even help us by having more people working on the engine. However we would still like to know what zeroc's official stance is on game assets. If were to release our game with a dual license GPL for the code and another closed source license for the game assets will we find our selfs being sued by you guys?

    EDIT: you beat me to it. thanks for the reply. Considering ICE is the only GPL library we use at least at this time we shouldn't have a problem then. Thanks for answering all my questions!
  • marc
    marc Florida
    Ok we have decided that the because we don't feel like getting into any legal battles or anything the engine will just be completely opensource in the end it should even help us by having more people working on the engine. However we would still like to know what zeroc's official stance is on game assets. If were to release our game with a dual license GPL for the code and another closed source license for the game assets will we find our selfs being sued by you guys?

    I think I just answered this question above, but again for clarity: We will not :)

    Really, we want to encourage GPL software development with Ice, not make your lives more difficult!
  • Yeah I saw you had answered after I had already posted that message so I just edited the message. Thanks for answering my questions.
  • Sorry for bothering you guys again but we have another question. We have released our server and client API under the GPL license. We have a sourceforge project for it and we are in the process of getting everything setup. Ok so our question is this. Our server is based on Components. All of the server side networking code (ICE code) is confined to the IceNetwork component. Now lets say some one didn't want to use ICE for their networking they could create a for example RaknetNetwork component in which case their would be NO ICE code at all. In that event could we dual license the engine GPL license if ICE is used and LGPL in the event that ICE is NOT used?
  • marc
    marc Florida
    Sorry for bothering you guys again but we have another question. We have released our server and client API under the GPL license. We have a sourceforge project for it and we are in the process of getting everything setup. Ok so our question is this. Our server is based on Components. All of the server side networking code (ICE code) is confined to the IceNetwork component. Now lets say some one didn't want to use ICE for their networking they could create a for example RaknetNetwork component in which case their would be NO ICE code at all. In that event could we dual license the engine GPL license if ICE is used and LGPL in the event that ICE is NOT used?

    If a library can be used completely independent of Ice, you can license such library under any terms you wish. If you combine this library into a new application or library with Ice, then the combination must be licensed under the terms of the GPL. In order to be able to combine any such independent library with Ice, you must use a license for the independent library that is compatible with the GPL. The LPGL is a compatible license.

    If the library can only be used together with Ice, then you must license such library under the terms of the GPL. This includes the case where Ice is only being used through an abstraction. If Ice is the only available option to make this abstraction work, then we consider such library to be a work derived from Ice, and therefore it must be released under GPL.

    As usual, what I'm stating above is ZeroC's stance on the issue you raised. It is not legal advice.

    In practical terms, we believe it would be very difficult to use Ice through an abstraction so that Ice can indeed be replaced with another communications library. You would have to restrict your abstraction to provide only very basic functionality, as it is unlikely that you would find higher level Ice functionality equivalents in other communications libraries. Also, note that we at ZeroC would not provide you with any help in developing this abstraction, as we believe that Ice should be used directly to maximize its benefits, and not be reduced to a lowest common denominator with other communications packages.