GPL compatibility use cases

From Creative Commons
Revision as of 12:03, 6 November 2012 by Shlomi Fish Rindolf (talk | contribs) (Correct a typo - "below".)
Jump to: navigation, search

If any form of GPL-compatibility is to be pursued in 4.0 -- see 4.0/ShareAlike -- use cases that would benefit from such need to be explicated.

As raw material, copied below is an email to cc-licenses concerning game-related use cases. Please be bold -- edit and give structure -- add relevant links, etc.

Raw material

GPL-licenced games (game code) with CC-BY-SA game content are a bit of a problem right now. A "functional" CC-BY-SA game content might be incompatible with GPL. Below is my [lousy] attempt at division of game content into functional and non-functional:

Non-functional game content: Meshes, textures, sounds, animations, ... used only to visually/... represent objects in a virtual world don't really have a function (at least most of the time). They could be replaced with [nearly] no effect on gameplay.

BUT even those types of content can be used in a functional way. E.g. in a game with "positive" and "negative" targets, those target types could be represented in a clearly different way (colour, sound, ...) so game mechanics would require player to perform visual pattern matching which could be done from a long distance and then player would select positive targets.

Let's change visual appearance of "positive" and "negative" targets to make them look identically and let's modify sounds so that they are very very quiet. These changes of game content will significantly change game mechanics as player will have to navigate between targets at a close range in order to determine which are "positive" and which are "negative" and if there would be some danger for a player due to proximity then game mechanics would differ even more from "original" game mechanics. Let's have identical targets and then use 2 animated textures (2 frames, "positive" texture: green frame, then red frame; "negative" texture: red frame, then green frame) and run those animations at a rate of say 1 frame per 5 seconds (sorry for complexity of this example). Then the player will have to keep track of colour changes and count in head when there are no targets around as a reference.

Through some changes of seemingly non-interactive/non-functional elements game mechanics can be changed significantly. With a "weak" code-driven game mechanics, content-driven game mechanics could be more important/"functional".

Functional game content:

Virtual world (a map/level/...) has some function as it, along with game mechanics, defines what the gameplay will be like. If a map would be replaced with another map the gameplay would be different. Player choices are dependent upon a combination/interaction_of game mechanics and virtual world.

In physics-driven games function could be even more prominent. Objects could be placed and connected in a virtual world in a way that new mechanics could emerge. Here a different object mesh (a dedicated physical meshes of or physical mesh same as a visual mesh) would alter this emergent mechanics. And of course even if objects would be fixed in place, the player moving in the world could be getting a very different experience. A different mesh could turn an object into a trap or could be a bridge to some location.

Objects like switches linked to gates, elevators, ... would also have a pretty clear functional role forcing a player to perform sequences of action much like a gameplay mechanics.

And in some games textures, sounds, animations, ... could also be used to drive gameplay. For example a texture/image could be used as a terrain height map and another texture/image could be used to determine (e.g. by colour) where there is water, where there is deadly lava, ...

Those are just some quick (and a bit ugly) examples of functionality of game content and they are in no way exhaustive. A lot better examples could surely be constructed. Sorry for turning this post into a mess of random ideas. My point is that it is better (for game developers) to have an ability to create and enhance a content under CC-BY-SA 4.0 so that it could be used with other CC-BY-SA 4.0 media on the net (film, music, fanart, ...) and at the same time have an ability to "export" content to GPL making it 100% compatible with game engine/code. And there are some games which are already using GPL-licenced content which means that they can't mix it with CC-BY-SA content.

Another problem is if game content is mixed with game scripts (a code used to control game mechanics at a high level) if scripts use functions provided by game engine/code ("standard library" functions). If there is no exception added to GPL and developers can't get all contributors to agree on licencing under GPL with an exception then scripts licenced under CC-BY-SA can't be used (this problem would probably impact only those people who are less technical / less interested in licencing issues and have simple chosen CC-BY-SA because they use it for content as well and are not aware about consequences (a problems will be biggest when there will later be many contributors and then it could be hard to make them all licence under another licence)).

And of course version number could be a problem. New versions of CC-BY-SA and GPL are not being released at the same time (at least right now). A lot of software relies on GPL version 3 "or later" and if a content under CC-BY-SA 4.0 would be "exported" to GPL version 3 (without "or later"), then if there would be GPL v4 released then developers would be restricted by what CC-BY-SA 4.0 allows (could not switch to latest GPL). Even if newer CC-BY-SA version would add support of GPLv4 then if developers would "export" CC-BY-SA 4.0 to GPLv3 (without "or later") and would be modifying content, they would need an approval of all contributors in order to be able to licence under GPLv4 (which could be problematic). And if they would be improving content under CC-BY-SA instead, they would have to hope that there will be a new version of CC-BY-SA released which will be compatible in order to be able to use latest version of GPL. If I understand correctly an "or later" clause is not part of a GPL licence text (unlike CC-BY-SA? (at 4.b.)) but is rather written in a README file while a regular GPL text is in LICENCE file. Would it be legal to make CC-BY-SA 4.0 to be one-way "interoperable" with GPL version 3 "or later" instead of just GPL version 3?

There is also something not related to stuff above but still related to games and interactive multimedia. If I understand correctly if a work is licenced under CC-BY-SA and is presented somewhere (in a open show) then a person/... who is presenting a work (author or not) does not have release that work (unlike GPL-licenced work (if publicly available)) but any person can still record a work (e.g. using a camera) and it will be legal and can't be restricted by DRM?

If so then this only really help works which are non-interactive / which are "linear" (a single "frame" (image) or a non-interactive "stream" (film, sounds, music)) BUT it does not really help much if work is interactive/"non-linear" (games, interactive multimedia) because during a game/... only portion of content could be recorded and in a "hard to reverse" way (a recording of a game can't be released as game content. game content must be rebuild and only a portion of it will be recorder during a course of game). This could be a problem when someone releases a work under CC-BY-SA, then someone transforms it and puts it on a system to which there is no direct access so that game content based upon some Else's content cannot be extracted (in a directly usable form).

Recently there have been a "gaming console" developed where "user interaction" is sent to server(s) and a recording of a games (in a form of a film) is streamed back to player and is displayed so it is technically impossible to get content out in a directly-usable form.

It is a problem at least to me personally. If someone would release modification in that way I would have to play to be able to use a service (which would be fine), then record a portion of a game presented to me and then convert it back in order to be able to create some new game content based on it while that other person could simply add some more content and it would be restricted again.

I don't think that such system (where game is streamed as a film) could be considered to be a DRM (or "effective technological measures" as it is written in CC-BY-SA) because it is how a device is supposed to work so I personally think CC-BY-SA does not offer enough "protection" for "non-linear content" creators.

To some extent a AGPL version 3 (Affero GPL version 3) licence offers some protection in such situation (for code) as it requires that an AGPL-licenced code running on a remote machine / on a server side must be disclosed while GPL version 3 code does not have to be and AGPLv3 is compatible with GPLv3.

I'm not exactly sure what clauses in CC-BY-SA (and other licences?) could be used for this (and I'm quite sure that some/many people will not want it) but current state of CC-BY-SA (or my misunderstanding of it) is pretty much the reason why I am considering releasing (in future) my game content under a custom licence.

If some measures regarding this matter would be implemented in CC-BY-SA (and other CC licences) and if there would still be a plan to have CC-BY-SA-4.0 "exportable" to GPL then it would only makes sense if to have it "exportable" to AGPL (version 3 or later) rather than GPL because GPL would be "removing" requirement of disclosure (when everything would be happening remotely).

Even if I would have my game engine/code licenced under AGPLv3+ someone could still re-implement it or use another engine and use my CC-BY-SA in a way I have described above and currently only a custom licence (or AGPLv3+) would be a good solution for me.

More raw material

Posted in cc-licenses:

For me personally it is a huge problem that cc by-sa and GPL cannot be used together in a combined work. That’s why I gathered some use-cases for that.

1. Using already existing cultural works under GPL with content under cc by-sa (my personal use-case)

There already is quite a lot of GPL and cc by-sa content which cannot be used together for purely legal reasons.

There is Battle for Wesnoth¹ with GPL licensed text and artwork, and Ryzoom² with cc by-sa assets.

And (my case) there is my own free roleplaying game³ under GPL which utilizes Wesnoth graphics but cannot use those from Ryzoom, even though the Ryzoom folks freed their graphics with the intent of allowing others to use them.




2. Using Python scripts in blender

This already came up, but I want to add some legal stuff.

In GPLv3, something is considered a derivative work, if there is “intimate data communication”. In Python importing a GPL module always makes your code a derivative work, so you have to use the GPL, too. When you use a python script in blender and you adapt it to the specifics of your model - for example the nature of your rig - the model and the code have intimate data communication, so it is very likely that you have to licence your model under a GPL compatible license.¹

Thought to the end, this could mean, that currently you are not allowed to use cc by-sa with rigged blender models, when you use any kind of non-generic scripting.

¹: Blender Python-scripts seem to be GPL without exception, so plugins have to be GPL, too. It would be nice if someone versed in legalities could check that:

3. Using content from free software in artworks

Currently you cannot make cc by-sa licensed artwork which uses GPL works - and be it only a snippet of code.

If cc by-sa allowed usage with GPL code, then the resulting work would have to be GPL, but the new assets could be licensed under cc by-sa.

4. Not restricting the design of programs with legal details

Many people argue, that you can just separate artwork from the code.

This means, however, that the licensing restricts the structure of the program. For example blender would have to disallow scripts embedded in .blend files, if the model is not under a GPL-compatible license. And embedded scripts are too convenient to lose them due to legal details.

Another example for this problem becomes visible in the simplest of games: The text adventures in scripting languages. An example is the branching story in the TextRPG. Since the code imports GPL libraries, it has to be licensed under GPL. If the text were under cc by-sa, then it would have to be put into a separate file and the code would have to get a full templating system, which makes it impossible to just use the capabilities of the scripting language and the program state in the text (otherwise it would have intimate data communication again). Even casting spels in lisp would break the law, if it used cc by-sa licensed text and GPL licensed code. Just exchanging the text for cc by-sa text would not be possible. And if someone wanted to refactor it into a full library, it would still be restricted to only one community: either cc by-sa or GPL - or GFDL for that matter.

(no time to write more - I hope these help as illustration)

Best wishes, Arne

PS: Even though the Free Software Foundation deems art as non-functional, I strongly disagree. Art is just as functional as code, it just works through pathways which are harder to assess. Great gameplay can crumble when you take away the music, and when the gameplay is built around a narrative, it often needs the narrative to realize its effect on the player. As a vicious example: What would Mortal Combat be without someone shouting “Finish him”?

Art is functional. It just not necessarily runs on a computer, but on our minds.