We (as in "a bunch of friends") are creating a text-based RPG online game. For sake of simplicity let's end it at that. We want to build it using open-source tools and technologies and we are fine with that. We were thinking about using MIT licence at the start. BUT.

Is there any way we can (kinda) assure that someone won't just grab the code, deploy on their server and stick a different name on it instead of contributing back to our project?

How to enforce (or promote) helping with the main project instead of splitting it (and the playerbase) into thousand little forks?

Any legal/licence advice? Or someone with practical insight/experience?

  • I'd be equally (or probably more) concerned with the possibility of some conflict between the original bunch of friends, so you should ask about that too. Nov 17, 2016 at 11:59
  • 2
    MIT won't prevent freeloaders from grabbing and redeploying your code. For that you might consider a copyleft license such as GPL instead. IANAL/TINLA. Nov 17, 2016 at 15:34
  • Are you planning to make it easier for a user with a good idea to host a fork and get people to switch than make a change to the official server? This sounds like a communitybuilding.stackexchange.com problem. Nov 18, 2016 at 18:23

1 Answer 1


If your concern is that others may modify your code and...

  • don't license their modified client-side code under a free/open license, and
  • don't even publish their changes to the server-side code

...then you want to publish your code under the Affero GPL (AGPL). A copyleft license like the GPL will take care of the first point, since the downstream author would be distributing a modified work, and the GPL requires modified works to remain licensed under the GPL. The second point is not covered by the GPL alone, though, since the GPL only covers distribution, and running private server-side code doesn't involve distribution to the users. The AGPL contains a requirement that if the software is modified and made available through a network, then the modified source code must be made available to the users of the software.

The AGPL will allow you to get access to the server-side content of forked versions. However, if your real concern is that such forks will still attract users away from your game, even if you have access to their forked source code, then you need to reflect a little more about the difference between your software and your service. For instance, the software that powers the popular discussion site reddit.com is publicly available under an open source license. Anyone is free to make their own Reddit-like site with minimal effort, but reddit.com has such a huge community that the clone site isn't likely to do well if it doesn't have any substantial advantages over the original.

The same goes for your game: multiplayer games are fun because of the other people you play with. If you do a good job building a strong community of players, then when a fork pops up, it will need some amazing improvements to make me abandon your existing player community in favor of this new game. (Plus, if your code is AGPL-licensed, you can pull in those changes as well, since the fork will be required to publish its source.)

  • I believe this is the best proposition and argumentation for this case. And the best compromise between catering to open-source and maintaining an advantagous position in the "market".
    – user134865
    Nov 21, 2016 at 9:40
  • Client side code is being transpiled from JSX into an older JS version for compatibility reasons. Would a developer be forced to provide their JSX version of the code or just the transpiled JS version?
    – user134865
    Nov 21, 2016 at 9:40
  • 1
    @user134865 The (A)GPL requires redistributors to share "source code" which it defines as "the preferred form of the work for making modifications". I assume the JSX code is the preferred form for writing new code, so that's what they need to share. Now, if they actually made their modifications directly in the compiled JS output, then they could just share that, since they wouldn't have any modified JSX to share. (Compare to doing binary edits on an executable file, rather than the source code.)
    – apsillers
    Nov 21, 2016 at 14:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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