4.0/Games 3d printing and functional content

From Creative Commons
Revision as of 16:54, 22 December 2011 by Christopher Webber (talk | contribs) (Massiely increased section on background of seperaction of functional/software and cultural layers)
Jump to: navigation, search

Games and Functional Content

Background

The purpose of this page is to collect thoughts on issues that affect games and projects that span the domains of cultural and functional/software works. There are actually quite a few categories of works that cross this domain, but games, as creative works that *by necessity* combine code and artwork together, perhaps expose and encounter some of these issues the most clearly. However games are not the only area that contain this overlap; for example, 3d printing is an emerging medium where the line between funtional and cultural is either blurred or interwoven. It's likely that as the spaces of free software and free culture (ideally) grow, we'll continue to see more and more examples of this overlap.

Most of this wiki page will involve issues of the code/functional and cultural works overlap, but some bits at the end will cover some other issues raised by speaking with members of the free software gaming community.

Background on separation of functional/software and cultural layers

As further background, traditionally we've held a fairly clear division between the free culture and free software spaces. This division is partly because it's a useful distinction, and partly a historic one. It looks something like:

  .----------.
  | CONTENT  |
  +----------+
  |   CODE   |
  '----------'

In a game context, content might be art, music, story, plain character descriptions. Code would be the game engine, game scripting, etc.

In a free-as-in-freedom type environment the former would be under free culture and the user freedom respecting subset of Creative Commons licenses, and code would be free software licenses such as MIT/BSD or the GPL.

One of the other results of this (licensing) division though is that you can also have one half of this layer be proprietary and the other be free-as-in-freedom. So, for example, the first person shooter Quake was released under the GPL but the game content was kept proprietary. Likewise, it's possible that someone could have a game whose assets were released completely as free cultural works but the software wasn't; this hasn't seemed to have happened (but some artists have expressed concern about it). But outside of games, people play CC licensed content in proprietary media players or view them in proprietary browsers all the time.

In general, the software/content division in many areas works just fine as separate layers. But sometimes there is a certain kind of content that spans both. For example say you have a game that's using CC BY-SA content and the GPL for the engine. In this you have level files or character description files saying this is placed here, that's there, and here's a cute block of text describing this creature if you look at them in info mode. At this point, that sounds like content, and so falls into the CC licensing. But what happens if in this same file there's a certain amount of scripting? It has logic, it assigns variables, but it also has some programming code.

  .----------------.
  |CONTENT.--------.|
  |       |scripted||
  +-------| level  |+
  |CODE   '--------'|
  |                 |
  '-----------------'

This actually happens all the time in games (both Wesnoth and Frogatto use an engine that's a bunch of config files that describe maps, scenarios, storylines, and creatures but which contain a functional programming language embedded inside them also; see

this wesnoth level file which looks like mostly data and this boss file from Frogatto that looks like code ... technically Frogatto developers consider this to be all content,

but it's also an interpreted language. The intention here isn't to pass judgement on their interpretation (if the developers don't intend to enforce the copyleft on the scripting layer, they're the only ones that can do that anyway) but their files provide pretty clear examples despite them drawing a line somewhere else, and if for example we consider a game engine that uses Python as an interpreted language but which has a backend bound by the GPL to have to follow the GPL, surely combo content/code files like this might provide an "intertwined data and code" scenario.

This might seem like a very one-off type of consideration, something not worth considering generally with CC, but I don't think it is. Surely we want to see more free software and free culture overlapping, and it is likely that when that happens there may be scenarios when that happens where some sort of difficult intertwining of code and content will happen and we'll have to consider what to do about copyleft incompatibility.

Here's another example not game related, rooted in the physical space: 3d printing. There's a potential that 3d printing could become (and actually, it's already starting to become) the type of revolution for physical things what computers and the internet have been for information.

The most popular 3d printer is something called the RepRap, which has been released under the GPL. Arguably because of the strength of this copyleft, several commercial versions have ben released such as the MakerBot Thing-O-Matic. But here's an iteration of the 3d printer called the Ronthomp Mendel which is labeled as being BY-SA, even though it uses a GPL'ed design. Now, technically the BY-SA and the GPL are not compatible, and it's probable that this is an issue of education because maybe the Ronthomp Mendel should simply be under the GPL as well. But here's a question... what if the Ronthomp Mendel were making use of some BY-SA parts? What is someone tried to make a new 3d printer that made use of some cool new gear system that someone released as BY-SA?

One could argue that in the copyleft scope, functional things such as the RepRap should be GPL'ed (citation needed, but it's been argued at least by Eben Moglen that GPL is great for hardware because it also takes advantage of GPL's patent pool protections) and that purely cultural things such as the Octocat print should be CC BY-SA. But a) not everyone has agreed on this, plenty of people are using BY-SA for functional works, and b) this breakdown itself could really stop working right.

To more clearly illustrate the problem, let me first make a list of some various cool 3d printable things under different licenses:

GPL things:

BY-SA things:

BY things:

From this list of things already we can see a list of things that could be blocked. Say you want to power your 3d printer by human energy by plugging in the motorized functional differential gear system? Okay, maybe possibly you could argue that that's functional and should have been GPL'ed, but what about the dune buggy, which is closer to a children's toy? What about combining that with some GPL'ed part? But most complicated of all, what if you wanted to make a walking cat-robot that uses a BY-SA cat design (maybe the head of the octocat) and combines it with the robot chassis and some bears and the bead belt gear and a bunch of other things. Suddenly we've a cool intersection of culture and functionality is blocked by two copyleft licenses that both have the same (and best) intentions at heart. We've blocked the cat-robot from ever being born (well, within license compliance) by best-intentions-copyleft. This is a problem, and if the world continues to develop in the direction we want it to, I think we're going to start seeing it a lot more.

Copyleft

GPL compatibility

Scoping copyleft across and code?

Increasing/clarifying scope of what's a derivative

Other issues

Source release?

DRM in BY-SA but not BY