Suitability of GPL for assets

Discussion among members of the development team.

Moderator: Forum Moderators

Post Reply
caslav.ilic
Translator
Posts: 61
Joined: February 5th, 2007, 4:17 pm
Location: Brunswick, Germany

Suitability of GPL for assets

Post by caslav.ilic »

Jetryl wrote:All of this said, I wouldn't have anything against dual-licensing our music under something like CC:Attribution in addition to the GPL.
I know that I tend to write too long messages, but I think this needs clearing up: GPL on music and graphics is either not applicable, or not enforcable in Wesnoth project without grave consequences.

Applicability issue: GPL requires that the source be delivered with the binary. If it is not totally clear (in the sense of expert testemony in court) what a source is to an OGG or PNG file, then GPL, or another binary-code coupling license, is simply not applicable.

Enforceability issue: if it is clear what a source is for an OGG or PNG file (e.g. layered PSD or XCF file), then some high-volume contributors have already stated that they will simply leave if submitting it too is requested from them. I think this would be too high a cost.

CC licenses, on the other hand, are for certain applicable, as they have been designed for that purpose. The non-coupling (no source required) CC counterpart of GPL is CC:Attribution:Sharealike (CC-by-sa). According to current state, I personally think this is the license that non-code contributors must either accept, or take their work elsewhere, and that most current contributors would not leave when faced with its consequences.

(As for CC:Attribution (CC-by), I'm pretty sure it would be unacceptable to more than a few important current non-code contributors. It is non-coupling equivalent of BSD for code, a non quid-pro-quo license. Just like CC-by-sa, it allows unlimited use of original work and making derivative works, but does not require derivative work to be distributed in the same fashion. So e.g. an artist who comes upon a derived graphics of his own, or musician upon a derived track of his own, could be forbidden from reusing that derivation in any way, even legally setting it as wallpaper or listening to it. While many code contributors are not sensitive to such non-symmetricity, from what I gathered so far from forum threads, non-code contributors would more than likely be furious should it hit them in the face :)

I've outlined in the previous message what I think a non-code contribution requirement should be, but a concrete example would be good. While I've no idea about technicalities in music, I have some little idea about graphics, so I'll use graphics contribution for the example:

To contribute a static image, the contributor:
  • must submit non-lossy compressed image in native resolution, in PNG format, if it is a bitmap work; or a SVG image if vector work. These files must be provided under CC-by-sa license.
  • must submit partial layered PSD or XCF¹ image, or <whatever> partial vector source if it differs from final vector image, if the image contains some text on it that is not part of the world (e.g. English Latin vs. Dwarwish runes); everything in the partial source may be fused into a single layer or converted to curves, save for the text and anything that is by size and form directly dependent on text (e.g. parchment pattern on which the text is written). These files must be provided under CC-by-sa license.
  • is encouraged² to submit full layered PSD or XCF, or <whatever> vector source if the SVG is not the source by itself, and any additional resource used in constructing it (patterns, gradients, etc.); if submitted, these files must be provided under CC-by-sa license.
[1] I'd in fact formulate it as "image in a format readable without significant loss by a free graphics tool", but perhaps complicating formulation like this is superfluous, or otherwise unwarranted if if not superfluous.

[2] I'd personally use "must" here too, which would also make previous point redundant. If code should be given out so that future coders may improve on it, why shouldn't it hold the same for graphics? High-volume graphics contributors however think this is not so and requesting it would drive them off, therefore the "encouraged to" toning down.
Chusslove Illich (Часлав Илић)
User avatar
Jetrel
Posts: 7242
Joined: February 23rd, 2004, 3:36 am
Location: Midwest US

Re: Wesnoth music and the future

Post by Jetrel »

caslav.ilic wrote:
Jetryl wrote:All of this said, I wouldn't have anything against dual-licensing our music under something like CC:Attribution in addition to the GPL.
I know that I tend to write too long messages, but I think this needs clearing up: GPL on music and graphics is either not applicable, or not enforcable in Wesnoth project without grave consequences.
Final PNG images are (usually) source. Seriously. I don't use layers anymore for my spriting (except for one late-game "mixed-down" layer for the shadow). It's a hallmark of someone who's erecting too much process around too little work. I used to, but I'd spend more time futzing with the layers than I would actually doing the act of drawing. Neoriceisgood has never used layers for his spriting - he does all of it in MSPaint!

Photoshop documents are not implicitly source. They're not the be-all, end-all of graphics formats - in fact they're only a desirable source for a small subset of image types. For many of our sprites, such as all of neo's sprites, and most of mine over the last year, there was never any source file at all, except the final, flat image.


Last but not least, the GPL can, has, and does function just fine under circumstances where the source is identical to the final product. Otherwise people couldn't put any python/perl/php under the GPL. We are, by far, not the first GPL videogame, and all the others generally work exactly like we do. There's a reason for that.
Play Frogatto & Friends - a finished, open-source adventure game!
User avatar
Jetrel
Posts: 7242
Joined: February 23rd, 2004, 3:36 am
Location: Midwest US

Re: Suitability of GPL for assets

Post by Jetrel »

Ultimately, source for any sort of image files needs to be done on a case by case basis according to content.
- If the images were rendered by some sort of 3d model, the model would count as source.
- If the images are sprites, the raw PNG is source.
- If the images are portraits, a high-res version would allow any necessary paintovers to be cleanly done (although with our new, competent artists, that's proven unnecessary).
- If the images are "layout files", like our maps, an ideal source would be some layout format (be it photoshop, indesign, inkscape or anything appropriate), or the component images. We've succeeded in collecting these, recently.
- If the images were originally vectors, then the original vector format is best.

I can't stress enough though, that sprites do have source as the raw PNG with an alpha channel. There never was anything more to the creation of them, behind the scenes. No more than a flat sheet of paper that a drawing is made on has any sort of magical source file for it. It, and most sprites, are just a drawing on a single, simple canvas. There's nothing hiding behind the curtains.



:hmm: Actually, the ideal source for a drawing - the source which would provide all the code benefits of seeing how a thing is built/structured, would be some format that actually recorded all of an artist's brushstrokes. In the act of doing any drawing/painting, most of the "structural" detail is painted-over as you add in shading. Most to the point, the source of any drawing is primarily spread across a dimension of time, rather than a dimension of pages like code or writing. You can see the basic hierarchal structure of code by looking at the source, but to see the simplified hierarchy of a drawing you'd need to look back to the sketch that metamorphosed into the final drawing.

Ironically, neither photoshop nor gimp provide this, although there is a program out there called "OpenCanvas" which apparently does, although it's not OSS, and AFAIK doesn't have good pixel art support.
Play Frogatto & Friends - a finished, open-source adventure game!
User avatar
Viliam
Translator
Posts: 1341
Joined: January 30th, 2004, 11:07 am
Location: Bratislava, Slovakia
Contact:

Re: Suitability of GPL for assets

Post by Viliam »

So if I want to distribute a photo of a real-life object under GPL, does it mean I have to provide the original object too? :lol2:
User avatar
appleide
Posts: 1003
Joined: November 8th, 2003, 10:03 pm
Location: Sydney,OZ

Re: Suitability of GPL for assets

Post by appleide »

Jetryl wrote: Most to the point, the source of any drawing is primarily spread across a dimension of time, rather than a dimension of pages like code or writing.
A .c file could also be 'spread across a dimension of time'. The programmer might have written a while-loop then changed it to a for-loop, or they refactor some code. What about the code that isn't in the final 'source' file, does that count as source? :hmm:

What if the programmer programmed in binary just for fun? What's the source?

IMO... The 'canvas' the programmer programmed on. If this was applied to drawings too, then the .png file would suffice; There's no need to re-trace an artist's steps; its up to the source-interpreter (be it man or machine).

So when you release something in GPL you have to release the 'canvas' too; i.e, A Painter, if he releases his work (posters, scanned copies... etc) under GPL, he must release the canvas on which he drew on. But then we have to consider how people is going to share the canvas....

EDIT:... A more accurate portrayal of the source would be the paint the painter used in his drawing, in the same 3D ordering the painter placed them. So if there was a way to reproduce the 'paint' in the exact same way; it could be released under GPL.
Why did the fish laugh? Because the sea weed.
User avatar
Jetrel
Posts: 7242
Joined: February 23rd, 2004, 3:36 am
Location: Midwest US

Re: Suitability of GPL for assets

Post by Jetrel »

appleide wrote:
Jetryl wrote: Most to the point, the source of any drawing is primarily spread across a dimension of time, rather than a dimension of pages like code or writing.
A .c file could also be 'spread across a dimension of time'. The programmer might have written a while-loop then changed it to a for-loop, or they refactor some code. What about the code that isn't in the final 'source' file, does that count as source? :hmm:
The beauty there, is that our widespread usage of VCSs like SVN etc, has basically made this 'de facto' a thing provided by most GPL programs, even though it's not actually a requirement of the license. And it is incredibly useful, at times.
Play Frogatto & Friends - a finished, open-source adventure game!
Post Reply