I want to put the source code of a game out there with the stipulation that people are not allowed to use any of its art assets commercially. I'd also require attribution. Mods distributed for free would be OK.

Just wondering if anything like that already exists.


The easiest approach is to license the source code under one license and art assets under another license. The code can be under an open source license, and the art under a non-commercial license like Creative Commons BY-NC1. CC BY-NC requires attribution, as will any mainstream open source license you choose for your code (unless you choose a niche ultra-permissive license like CC0 or the WTFPL).

This is very close to how several other studios have open-sourced their game's engine without releasing their whole game under a free license. Almost all of the games included in the first Humble Indie Bundle did this: namely, Gish, Aquaria, Penumbra: Overture, and Lugaru.

If you choose a copyleft license like the GPL for your code, you may want to make explicit in your licensing documentation that the code's copyleft requirements do not extend to the project's art assets (otherwise, people couldn't distribute your project at all, since CC BY-NC is incompatible with the GPL). This also means that GPL copyleft requirements would not apply to any substitute assets that downstream users supply. It is a nebulous legal question whether art assets are part of the work as a whole, or whether the code-work consumes and displays the (separate) art-work as data, so it doesn't hurt to make this division explicit.

1 Note that CC NC licenses are non-free and functionally a hair's breadth away from being all-rights-reserved: there is so much uncertainty (among users and licensors alike) about whether a particular action counts as "commercial" -- distribution on a site with ads, use in a professional portfolio, use to solicit donations for a charity, use by the government, etc. -- that some people will stay away from modifying or redistributing it altogether. For an alternate approach, see Anony-Mousse's answer which advocates using a copyleft license, instead of a noncommercial license, to control downstream distribution of your assets.

  • Thank you. Doing this is what a friend suggested as well. Sounds like CCBYNC is the license I'm looking for regarding the art. – Roger Levy Aug 8 '17 at 21:11
  • Do not use the NC licenses! They are non-free, and hinder redistribution. gnu.org/licenses/license-list.en.html#CC-BY-NC – Anony-Mousse Aug 9 '17 at 9:20
  • It's not so much about "control downstream distribution", but rather allow distribution in the first place. E.g. Ubuntu Linux will likely not distribute CC NC data because of the NC license. – Anony-Mousse Aug 17 '17 at 19:06

The usual approach would be to separately license the code and the assets.

Beware that a non-commercial use license will disallow the inclusion on e.g. DVD of free software e.g. with a magazine or probably even the download from Ubuntu. So most likely, Linux distributions will not include such assets.

The problem is that "commercial" use is a very broad term. If a website has advertisements, it is usually considered to be commercial. Github is commercial, too.

I suggest that you rather choose a strong copy-left license instead. I.e. if someone distributes this commercially, then only as part of other copy-left material. It then cannot be mixed with "non free" material, but it can be legally distributed on web pages with ads, DVDs with magazines, or by companies such as Ubuntu and Github.

E.g. you can make your code LGPL or Apache licensed (allowing commercial modifications and use) but make your data assets GPL. So when used with your data assets, the entire package is GPL licensed, and commercial users must share their modifications of the entire thing. You could also use CC-BY-SA (as some people argue the GPL should only be used for software, not art, but others disagree). But I'm not sure it will provide the same level of protection: one may consider each image/texture/audio as separately licensed.

  • 1
    Redhat is an example of this - the code is free, art assets, etc. may not be. Which is why there is CentOS - same code, different art, etc. – ivanivan Aug 17 '17 at 13:50

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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