I'm hoping I can clarify this issue.

Note, a similar question has been asked here, but it doesn't really give a specific enough answer that I can comprehend at this point! :- How does one escape the GPL?

I plan to use a game engine that has been released under GPL to develop a MMOG, and I plan to distribute the client for free. I'm concerned that when it comes time to release my game, I'm going to have to release the entire source code under GPL, which opens my game to risk of abuse, where someone can learn how to potentially hack my game client and give them an unfair advantage etc.

If I understand GPL, I only need to distribute code that I've edited directly. In the case of Java, I can extend the available classes, do to what I need them to do, rather than go back and make edits in the classes themselves. If i'm using the original code in this way, do I just need to point out that the code is available from the engine developers

Does extending a class constitute 'editing the source?'

  • 2
    \$\begingroup\$ People can and will hack your client even without the sourcecode. The only proper protection against this is to calculate everything which is gameplay-relevant on the server. \$\endgroup\$ – Philipp Jul 29 '14 at 11:49
  • \$\begingroup\$ I realise they can hack it anyway, but releasing the SC makes it very much easier to do so. I plan to have everything important server side, and possibly even encrypting the data transfer as well... yes, i'm rather paranoid! \$\endgroup\$ – Stese Jul 29 '14 at 11:55
  • \$\begingroup\$ possible duplicate of How does one escape the GPL? \$\endgroup\$ – Sean Middleditch Dec 12 '14 at 7:49
  • \$\begingroup\$ I voted to close as a duplicate but perhaps the better option is to edit the question to not be about the GPL at all? \$\endgroup\$ – Sean Middleditch Dec 12 '14 at 7:50
  • \$\begingroup\$ Sean, if I edit the question away from GPL, it loses its context, I may as well remove it. It is not a duplicate, as it is asking a different question. Your linked question, already referenced here asks how to avoid the licencing terms. My question asks what must be done to comply with the licence. \$\endgroup\$ – Stese Dec 13 '14 at 9:26

jMonkeyEngine is licensed under the 4-clause BSD license, not under the GPL. The BSD license explicitly allows closed-source modifications, as long as you just include the BSD license text somewhere where the end-user can read it. That means what you want to do is no problem at all.

However, when the engine were licensed under GPL, your new client would be a derivate work of the GPL code which means that it would have to be released under the same license terms. That's why the GPL is rarely used for game engines. It's far more common to see the LGPL in this case, which allows to use the LGPL-based work as an open-sourced library in a closed-source project.

|improve this answer|||||
  • \$\begingroup\$ OMG, I completely missed that! I was looking at the cafu engine when thinking about this issue, which is under GPL. That answers both my question, and the issue at hand, thanks! \$\endgroup\$ – Stese Jul 29 '14 at 11:57
  • \$\begingroup\$ @StevenDavison The business model of the Cafu engine is based on dual-licensing. You can use it under GPL, but then your whole game needs to be GPL. Or you can keep the source to yourself, but then you need to pay them for a commercial license. This is explained on their website. \$\endgroup\$ – Philipp Jul 29 '14 at 12:07
  • \$\begingroup\$ Thanks again, I'd read through the stuff on their site, just confused myself between Cafu and jmonkey engine's licencing model, specifically forgetting what jmonkey was licenced under. I've edited the question to make it GPL specific, so the question can be answered, which you have done. \$\endgroup\$ – Stese Jul 29 '14 at 12:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.