I am working on a set of multiplayer games, where different games play against each other (e.g. you play a Tetris clone, I play an Asteroids clone, but we are both competing against each other). All the games would be based on the same underlying framework written specifically for this project.

I am struggling to comprehend how I would license this so that:

  • The underlying framework is open source, so other people can create new games based on it.
  • Some games built on the framework are open source
  • Other games are closed source

The goal is to have two bundles on something like the Android market:

  • One free and open source package which has a collection of games
  • Another "premium" (although I dislike that word) paid package which has a different collection of games.

Usually I am fond of permissive licenses such as MIT/BSD, however I would prefer something more in the vein of the GPL for this. This is because for software such as the snes-9x SNES emulator, which is a great piece of software, there is a ton of poor quality versions being sold, whereas it would be preferable if there was just one authoritative version which was always kept up to date, and distributed for free.

If the underlying framework was GPL'd, would I be able to build closed source games on top of it?

Thanks for your input.

Edit: @JasonMorales gave me a little more to think about. There are a couple of ways it could be put together:

  1. Main application, handles networking, main menu's, etc, and loads games as plugins.
  2. Games are all separate applications, and the framework will provide a menu, networking, etc.

The first is good because there is guaranteed to be consistency between games. It is not good, however, in the sense that I can't imagine how it would be deployed via the Android market. That is, you go to the market, and download a new game. If it was more akin to a regular package manager, this game would depend on the main application and it would install quietly. I'm not convinced the Android market works like this though.

The second would deploy easier, because each time the user downloads a new game, it does exactly what they expect: downloads a game and gives them a nice icon for them to open it from. There are obviously several downsides to this too though, such as if the framework decides to update its menu or network implementation, the other games will not get this update unless they re-release themselves.

But because I'm ranting, I may create a new question for these matters.

  • 1
    \$\begingroup\$ Please notice that a license such as the GPL does not prevent selling poor-quality clones. \$\endgroup\$
    – o0'.
    Commented Mar 21, 2012 at 9:54
  • \$\begingroup\$ Yeah, sorry, I should have qualified that. The reason I would want something like that is so that there is at least some sort of redress if they do. So, for example, these people who do publish poor quality clones, are (using wild stereotypes) not the type of people who would abide by the license. Therefore you would be able to at least let Google or Apple, or whoever runs the app store that it is happening and they can take it down. \$\endgroup\$ Commented Mar 21, 2012 at 11:01

3 Answers 3


It depends on how your framework links with the game code. The framework doesn't have to be open source to allow other people to make games for it, you could release it either as a program that people can write plugins for, or a closed source library that people link against. In that case, you maintain full control of the framework.

It sounds like you want the framework to be open source though, in which case there are two options. If your framework is a library that other programs link to, you can release it as LGPL and people can then develop closed or open source programs that use it. If you develop your framework as something that the game modules act as plugins, it seems that they would be required to be full GPL as well: http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins

  • \$\begingroup\$ Thanks for your feedback. You are right that I would like the framework to be open source too. Now that you mention it, I am unsure as to whether the games would be plugins (invoked from some global main menu) or not (separate apps installed on the device, who construct their main menu's using classes in the framework). Of the two options: plugins to main app or separate apps using framework to draw the main menu themselves, it seems like the plugins would cause some strife if the framework is LGPL, whereas separate apps using the framework could work with LGPL. Very confusing though :) \$\endgroup\$ Commented Mar 21, 2012 at 7:52
  • \$\begingroup\$ It sounds like the first step is identifying exactly what functionality you want your framework to provide. Is it like a full game engine, or just the piece that facilitates communication between the different games? Interesting concept by the way, I like the idea. \$\endgroup\$ Commented Mar 21, 2012 at 8:39
  • \$\begingroup\$ Yeah, I'll accept this answer because it is the closest that I'll be able to get until I sort this issue out. At least it brought other issues to my attention, which obviously need more thought. Cheers. \$\endgroup\$ Commented Mar 21, 2012 at 11:04

This is a common misconception, but the licence is not a property of the code. It is a document that tells people one way that they can legally use your code. There can be as many or as few different licences available as you like, and you can decide how to allocate them to people. You can give one person a GPL licence and everybody else a closed licence if you like. The only catch is that the GPL licence then allows that person to also give the GPL licence to others, which is fine because that's how it's supposed to work, but it does not stop you having the right to allow people to make closed source applications based on that code too.

Basically, if you own the copyright to the code, you are fully at liberty to offer a GPL licence on the code AND to let people make closed-source applications with it also. Offering a GPL licence only affects the code of people who have chosen to accept that licence in order to facilitate their own usage. It does not give them rights over the code used by those who make closed source derivatives with your permission. Closed-source licensees have a licence from you to make a closed-source game with your code and the GPL does not enter the equation.

The LGPL was invented as a middle ground for this situation, as it basically means that the GPL only applies to the library code, whereas the code linked to it stays under that creator's licence. This might work in your situation as it keeps the framework open while protecting the licensee's new work. But the definition of 'linking' may not easily apply to your framework and you might end up having to amend the licence, making it less worthwhile.

  • \$\begingroup\$ Ok cool, I actually didn't realise this. I can see how I would be able to license the framework as GPL to others, but still use it myself under a different license which I granted myself (as the owner of copyright to the code). Having said that, I think it would be conceptually easier for the whole thing to be under one license. I'm thinking LGPL is the go, but I'll just have to think more carefully about how it applies here. I might actually go read the license (yes, I haven't read it yet, I'm a bad open source enthusiast...) \$\endgroup\$ Commented Mar 22, 2012 at 0:22
  • \$\begingroup\$ You don't need to grant yourself a licence - you are the copyright holder and can use the work as you wish. Licences are merely canned statements that facilitate coming to an agreement with other people about the ways in which they can use your work. Remember, the work itself is not 'under' a license - you merely offer it to others under one. \$\endgroup\$
    – Kylotan
    Commented Mar 22, 2012 at 10:59
  • \$\begingroup\$ Alrighty, thanks. Though I think I still prefer the option of using the code under the same conditions that I grant to other people through the choice of license. I have no illusions of success, but as a hypothetical scenario, imagine Linus still owned all the copyright to the Linux code (in the fictitious situation where other people weren't working on it, or they signed copyright over to Linus). I think people would frown on him making other people use the code under the terms of the GPL, while he was the only person who was able to produce and sell a commercial version of Linux. \$\endgroup\$ Commented Mar 23, 2012 at 0:02
  • \$\begingroup\$ Linus does still own the copyright to the code he wrote. If he didn't, he wouldn't be able to enforce any licence. The licence is an agreement between the rightsholder and another person. To licence something to yourself is meaningless. \$\endgroup\$
    – Kylotan
    Commented Mar 23, 2012 at 0:05

If the underlying framework was GPL'd, would I be able to build closed source games on top of it?

If you hold the copyright to the code then of course you can use it for closed source, so long as it doesn't depend on other GPL (or similar licence) code.

  • \$\begingroup\$ But then using the GPL becomes useless in the first place. \$\endgroup\$
    – o0'.
    Commented Mar 21, 2012 at 9:42
  • \$\begingroup\$ @Lohoris Why do you say that? \$\endgroup\$
    – Pubby
    Commented Mar 21, 2012 at 9:44
  • \$\begingroup\$ (1) he can't use the source from other GPL applications (2) if someone modifies this source, he can't use it (because the modification is solely released under GPL). \$\endgroup\$
    – o0'.
    Commented Mar 21, 2012 at 10:02
  • \$\begingroup\$ @Lohoris That's correct, although I don't see why that makes GPL useless. \$\endgroup\$
    – Pubby
    Commented Mar 21, 2012 at 10:09
  • \$\begingroup\$ ??? If you can't use other GPL code, and you can't use the modifications to your code made by others, what's the point? \$\endgroup\$
    – o0'.
    Commented Mar 21, 2012 at 10:39

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .