a-little-org-called-mario / a-little-game-called-mario

open source collective hell game
http://little-mario.com
Other
1.37k stars 181 forks source link

Add a license to this repo #3

Closed lazerwalker closed 2 years ago

lazerwalker commented 2 years ago

This project should have a license stating how people can use the game's code/assets! Without an explicit license, nobody looking at the code/assets in this repo have any IP rights to it, and legally cannot do anything with it without being open to you suing them. Similarly, it's ambiguous whether anybody contributing code to your repo is even giving you IP rights to use their modifications, leaving you open to liability. This all is probably not your goal!

The solution here is to add a license: a bit of legalese to this git repo that explains the legal IP rights that anyone visiting this repo has to the code and assets stored in it.

There's sadly no one "correct" answer for what license you should use. Even though this is relatively cut-and-dry for e.g. open-source infrastructure projects built by tech startups, it gets fuzzier for art projects like this, and there is a lot of wiggle room depending on your goals.

I've got a few different recommendations below, but first it's worth separating out that we're talking about two different things here. On the one hand, a license explicitly grants legal IP use rights to anyone who comes across this repo, and makes it legal for them to do certain things with your IP. On the other hand, you are presumably trying to communicate intent about how you as a creator want people to be able to use your work.

In an ideal world, these two things are one and the same! In practice, OSS licenses are rather blunt tools, and it's useful to separate out "what am I communicating about my intent?" from "what rights am I legally granting?".

That said, here are three(ish) good options to consider, with the massive caveat upfront that I am not a lawyer, this is not legal advice, etc:

An OSS license and a Creative Commons license

A tricky thing is that "open source licenses" are written with code in mind, and it's a bit ambiguous how they apply to non-code things like art assets. At the same time, licenses like Creative Commons meant to protect artistic works don't care at all about the difference between binary distribution vs source distribution, which makes them unsuitable for code (even Creative Commons themselves don't recommend it)

A common technique is to use two licenses: all code is under one OSS license, all non-code assets are under a Creative Commons license. For this project, it would probably be pretty reasonable to split this out by folder or by filetype.

MIT License vs GPL

There are an extremely large number of OSS licenses, but MIT and GPL are arguably "the two big ones", and solid examples of two different philosophies.

The MIT License basically says "you can do whatever the heck you want with my code, as long as you give me credit".

The GPL basically says "you can do whatever you want with my code, as long as any changes you make to my open-source code are themselves made open-source and licensed under the GPL".

The MIT license grants "freedom" in the sense that anyone can use your code to build a proprietary commercial product. The GPL grants "freedom" in the sense that, even though it restricts what people can do with your code, it does so in a way that leads to more open-source software and thus net more "freedom" for end-users.

Most OSS software maintained by large tech companies is MIT or a similarly-philosophically-aligned license (Apache and BSD are two others you see a lot), because the economic model behind that sort of OSS is generally "a bunch of tech companies all contribute to this thing in order to benefit from it in their closed-source commercial products".

I personally feel really conflicted about the GPL: I appreciate its ideological purity, and usually explicitly want to encourage people to make their improvements public. But in many cases, requiring that unintentionally limits some uses you'd like to enable (sometimes in weird edge-case-y ways -- e.g. someone who isn't the copyright holder releasing a GPL'd game on the iOS App Store is technically against the terms of the GPL, as the App Store doesn't meet the GPL's requirements for distribution). It's also awkward that the GPL's author and main evangelist for decades is an alleged sex pest who (among many other things) resigned from his position at MIT after a bunch of public comments defending Jeffrey Epstein.

It's also worth noting here that there's some weird politics around the term "open source". In order for a license to be considered "open source" by the Open Source Initiative, there are a number of criteria the license must meet. One of those criteria is that it must allow equal use to everyone -- you won't see an "open source" license that e.g. restricts commercial use, because that by definition makes it not capital-O Open Source. I personally think this is bad!

Various Creative Commons Licenses

The half-dozen Creative Commons licenses basically span the same ideological spectrum of MIT vs GPL, but with a bit more fine-grained choice around what restrictions are placed on what people can do with your work.

The Creative Commons License Chooser is a clear view for how these differ. All CC licenses require attribution (except for CC0, but I'll talk about that later). You have a choice of whether or not you allow commercial use of your work, as well as a choice of whether adaptations of your work are allowed to be shared, not allowed to be shared, or require any derivative works to also be licensed under the same terms as your work (similar to the GPL).

It's worth noting that, while restricting commercial use in derivative works may sound extremely appealing, Creative Commons themselves are philosophically opposed to it, in favor instead of what they call "free cultural works". Their viewpoint is basically "eh, we don't want to allow this, but it's better that works be CC Non-Commercial than to not have any CC license".

To me, in a lot of situations where I'd be tempted to add a non-commercial clause, I'd instead consider adding a share-alike clause. If what you want is for people to be able to freely remix your work, letting people release commercial products based on it but requiring them to also license those works under Creative Commons feels like a good compromise -- it's philosophically similar to the GPL, but without a lot of the legal or cultural baggage.

To me, the big difference between a share-alike clause and the GPL is, with the GPL, someone wanting to steal a tiny bit of invisible glue code requires them to open-source their whole project (which is likely not your intent!). That's still the case with a share-alike clause, but with art assets, it seems less likely that you'll fall into that degenerate state where someone's trying to use only a tiny insignificant bit of your work and are now "caught" by license virality.

But it's possible I'm completely wrong here, and it's also possible that your personal ideological leanings would rather err on the side of unintentionally restricting valid use cases rather than unintentionally enabling use cases you don't want to allow. I personally lean towards being more lenient in what I allow legally, and informally expressing what I don't want people to do. But that's just one opinion, this is complicated and tricky.

Putting it all together

Finally, it's worth noting here the distinction between legal IP restrictions and communicating your intent. If you choose more permissive licenses, you can still write in your README "hey, I know you're allowed to do whatever you want with this, but PLEASE don't do X, Y, or Z". I often find that a really nice middle-ground of "this isn't legally enforceable, but communicates to reasonable human beings what I want".

So, uh, what does this all mean? If I was choosing a license for this repo, and wanted to go the "OSS + CC" route, I'd probably pick MIT, either CC BY or CC BY-SA ("only attribution required" or "attribution and share-alike"), and put a paragraph in the README explaining my intent. But any of the other things mentioned here are reasonable options!

2. The Anti-Capitalist Software License

This is a unique license in that it adds restrictions on who can use your software. You can do whatever you want with the code, as long as you're an individual, a non-profit, an education institution, or a worker-owned co-op, with a carve-out banning military and law enforcement use.

I'm inclined to view this license through the lens of performance art. While this license probably most directly aligns with how I personally would want a lot of my projects to be used, I've read a number of arguments explaining why it almost certainly would not hold up to litigation, and would basically equate to including no license at all (with the caveats that I am not a lawyer, and suspect many/most of the people posing those arguments are also not lawyers). It's possible this is unjustified fear, uncertainty and doubt; the current tech industry culture extremely stigmatizes any software licenses like this that do not conform to the "proper" definition of "open source".

Along those lines, this WILL incidentally act as a deterrent to many larger tech companies using your work, as management will look at a non-standard license like this and say "the time and effort saved by using this code is worth less than the billable hours for the legal team to vet this license".

This license is on the extreme end of tradeoffs: it is an incredibly strong socio-political statement about how you wish your code to be used, but realistically is likely to leave you in the same legal IP situation as if you had not included a license at all. Using this license does have the positive benefit of normalizing licenses like this, which could eventually lead to future iterations of the idea that are more proven to be legally-enforceable.

3. Creative Commons 0

A final option is to place your work in the public domain: you relinquish all rights to them, and anybody can use your IP for whatever purposes they want. This is "chaos mode" -- it's definitely the simplest of all these options, and the most easily-understood by people who don't want to have to become armchair IP lawyers. But it's also the least restrictive, for better and for worse. It's specifically worth calling out that people are not required to provide credit or attribution.

If your intent is to put this project in the public domain, you should still specifically apply the CC0 license. Many countries do not have a legal mechanism (or only have limited ways) by which a living IP holder can "dedicate their work to the public domain". CC0 is explicitly written to work around this, and allows authors to explicitly waive all possible copyright protection and IP rights they have, to the extent possible in their jurisdiction.

iznaut commented 2 years ago

thank you for going so in-depth with this! it's a lot to process but i have to say that this bit strikes a chord with me:

This license is on the extreme end of tradeoffs: it is an incredibly strong socio-political statement about how you wish your code to be used, but realistically is likely to leave you in the same legal IP situation as if you had not included a license at all. Using this license does have the positive benefit of normalizing licenses like this, which could eventually lead to future iterations of the idea that are more proven to be legally-enforceable.

i've recently had a couple of personal life scenarios come up where i had to balance the risk/reward of doing the thing that is less time/energy/money for me to deal with vs the thing that might require a bit more of those things but ultimately contribute (however small) to the greater community good. i had to go with the former option most times, bc We Live In A Society and i'm just trying to survive lol

my current stance (as someone who is nowhere near as educated and experienced with this kind of thing as you are) is that the risk of misuse is so minimal, that i would much rather lean in the direction of the anti-capitalist license. after all, i kind of consider A Little Game Called Mario to similarly be more "performance art" than anything anyway šŸ˜‰

CC0 also sounds fine to me - especially so when you frame it as "chaos mode" šŸ˜ˆ that is definitely the vibe i want to cultivate!

i guess what it comes down to for me is this: which option would create the lowest barrier of entry for folks who want to contribute? maybe it doesn't matter all that much to the extremely "green" folks but i also would like more experienced devs to feel compelled to get involved and support others - maybe the anti-capitalist license would be a good way to signal to ppl like "hey! this is a weird unique thing that you should be a part of"

lazerwalker commented 2 years ago

Hmmm, I really like that lens! That's probably a toss-up, tbh.

CC0 is going to be the neutral option. It's still considered a weird and funky thing for licensing a game, but understood enough that nobody reasonable is going to be like "ew, this thing is weird and scary and I'm not going to contribute as a result". It's easy to understand "this thing is in the public domain", and it's backed by a non-profit with money to pay lawyers to make sure everything's chill.

The anti-capitalist license will turn off some people for political reasons (probably a plus, tbh), actively excite some people to contribute and encourage others to contribute specifically because you're using it, and maybe isolate a small group of experienced folks that are like "uhhh, I like the idea of this, but using a non-vetted thing sketches me out a little". So, slightly more of a gamble, but one that'll pay off if that second group is larger than the third.

iznaut commented 2 years ago

hmmmmm yeah i'm kind of leaning anti-capitalist......like you said, i think it's a plus if we're driving away the ppl who have political issues with it šŸ˜Ž

i'd defer to your judgment since you have a more intimate sense of the landscape than i do! but i personally am a fan of doing the weirder thing that makes this already absurd project more of a spectacle (and consequently, drawing in ppl that are politically aligned with us and the values of the project)

alice-i-cecile commented 2 years ago

FYI @lazerwalker, Creative Commons recommends against using Creative Commons licenses for software.

That said, they can still be a reasonable choice for the assets in projects like this :)

lazerwalker commented 2 years ago

@iznaut that seems reasonable! If I was licensing my own thing, I'd probably personally be slightly hesitant to go with the anti-capitalist license, just feeling slightly squeamish about using something that doesn't have any history of enforceability and worrying if there's some way it could be weaponized against me. That said, I totally get that in practice that risk is quite low, and you don't seem that concerned (and this definitely feels like it's in the realm of "reasonable personal preference" rather than me having some arcane expert knowledge). Without that risk aversion, I'd personally probably go with anti-capitalist.

@alice-i-cecile You'll note that link explicitly calls out CC0 as acceptable for software (since the distinction between distributing binaries and code doesn't matter when your goal is simply to relinquish all copyright). When I recommended other non-CC0 Creative Commons licenses above, it was in context of pairing with an OSS license as you suggest.

lazerwalker commented 2 years ago

Also worth remembering that the anti-capitalist license requires attribution, where CC0 doesn't. If those are the two options, that would be another big plus for it in my book.

vinniefalco commented 2 years ago

The Boost Software License is superior to the MIT License, reasons here: https://pdimov.github.io/blog/2020/09/06/why-use-the-boost-license/

lazerwalker commented 2 years ago

Oh! One more complicating factor: the Anti-Capitalist License still falls victim to the same limitations of MIT/GPL/etc in that it really shouldn't be used to cover art assets. If you want to use the Anti-Capitalist License, you should theoretically still probably license the assets under some sort of Creative Commons license instead.

Unfortunately, there isn't (yet!) a directly applicable equivalent. I think there are a few different CC licenses that would be okay. But honestly, if you're going with the Anti-Capitalist License, I'd probably just say "screw it, applying it to my art assets as well as my code leaves my intent as clear as possible, even if it still leaves more legal ambiguity".

Just more food for thought, because of course nothing's simple šŸ˜‚

iznaut commented 2 years ago

i'm not too concerned with legal issues - it seems so low stakes to me at this point that i'm inclined to just go anti-capitalist and not worry about the assets separately

unless there are any other major objections (@lazerwalker can close the issue if she is also satisfied šŸ’–), i'm all for the anti-capitalist option

lazerwalker commented 2 years ago

Sounds šŸ‘šŸ» to me! You'll just need to drop a copy of the license as a LICENSE file in the root of the repo at some point.

throwaway1037 commented 2 years ago

Please can this project switch to a libre software license? The current license would not hold up in court and does not respect the freedom of the users of the program.

lazerwalker commented 2 years ago

Regardless of whether this is something we would philosophically want to do, changing the license is relatively infeasible at this point in time. Because we have not required contributors to sign a CLA, re-licensing the project would require explicit approval from all 86 people who have currently contributed, which would be a massive undertaking for our volunteer team.

That said, because your account literally has "throwaway" in the name and has a history consisting almost entirely of yelling at maintainers of open-source game projects that their code isn't using a libre license with no offers to help or assist with that transition in any way, I can't imagine this request is in good faith.