Friday, 14 December 2012

Open Source vs Copyleft

I shouldn't make fun of open source.

After some time getting my head around what the actual arguments are (in what could be simplified to 'Windows vs Linux', or the other argument (the actual nuance) 'can libre exist without gratis') and deciding what I want to do with my life (because at the moment I will probably end up in my early 30s with a doctorate and a rather varied work history and enough cash behind me to still be somewhat picky about work if I continue to not care about material possessions and being able to support more people than me).

I like that Linux is a thing and that we have all these free repositories of great software developed by the community spirit. People spending 10% of their time doing something for everyone or working on something in their niche dev life and realising it probably doesn't have massive commercial value (or think it shouldn't) so why not let the community all use and improve it.  This is good, but if you're spending your entire working time working on open source / free software projects then you're either: independently wealthy and so good for you but you are the 1% (or the 0.001% if you are both worth enough to never work for money and inclined to build software with your time?) and you have to understand almost everyone doesn't have that choice you did; or you're working on some con game where the full development cost of the project is returned in support contracts or donations from those working through your lack of documentation or are inclined to give (which is not a stable business plan - ask buskers about how they can manage their current and future expected income to pay for future training and development of new material).  Basically I think libre should include the freedom to not be blocked from understanding of the code by lack of documentation or obscure and fractured code base; if you're making a decent revenue from support contracts to run your open source software house I have questions as to your use of the concept of libre and suspicions about how much of the actual software you're selling support for is written by your paid team of coders and how much of it is sitting on the backs of the libre movement.

Basically I'm happy for someone to pay me for my code and then put that code into the public domain or use any form of copyleft/libre license.  I hope to do more work (beyond my current occasional submissions of fixes to open sourced projects I'm working on top of) on free software projects and return to the code base any improvements I make to free software that I use in my normal work (just as I file bug reports for the non-free software I work on if I find something I think is a bug).  But I don't see the copyleft idea as one under which I can make a useful wage for any ideas I do consider to have commercial merit (and with the understanding that without some form of remuneration then I simply can't spend the time needed on the project - we all gotta eat and some of us even expect to chase up the pyramid on needs to try and get to the top).  I do not believe that copyleft is a requirement of libre. Gratis (which is the right to free redistribution, unless you only ever want to sell one copy or make a release effectively donationware) will burn you in a commercial sense (obviously) and I think contains the seeds to a damaging divide between closed and gratis as the only two teams in town.  Also see the above about how some paths to remuneration via gratis lead to concerns about ability to get income vs incentive to make code towards the libre ideal.

So I want to say the right answer is neither of these two teams (this is not a surprising insight, but inside the games industry there doesn't seem to be any momentum behind paid software that is source included).

Copyleft open source software doesn't seem like a great idea for games.  If we take the average cost per seat as $10k/month for games then even a 3 year solo project (about the smallest 'commercial' indie outside of the exceptions of 6 month duo development by two very experienced rapid prototypers with an established code base that already has the edge case PC compatibility issues worked out of it) requires $360k (that is just over half a million once you factor in a 70/30 split for distribution) to break even.  You could not pay yourself (being a proper starving artist) and maybe we'd like to say that such a selfless act might possibly bring riches.  I have no idea if there is any rich copyleft game developers out there who get lots of donations from fans.  The gaming industry seems to hold up our indie stars as capitalists, we don't talk with the free software guys.  Mainly because they say stuff like this.

On the other side of the fence we have the mainstream gaming industry and most of the indies.  You get a binary, maybe several if it works on other OS, and assets.  All of these are protected under copyright and you get a license.  To make a modification to the thing you now own requires reverse engineering.  We intercept DirectX and OpenGL draw calls; we modify memory values to create cheats and other ways of changing our games; we deconstruct the binaries, fix errors, and then build fix files to write those changes into the binary.  Morrowind has a DirectX call interceptor that uses the scanned memory location data of the player to also generate a host of new DirectX calls based on the asset data to draw distant lands into the world behind the scene the game thinks it is rendering.  That's not a 'crazy land of fiction' but one of the more popular mods for that game to turn the foggy world into a massive open landscape the artists created assets for now we have the rendering power.  That is insane.  Just as the creator has copyright on the binary files, so the creator has copyright on the source files.  When you sell your game you could give the source files with the binary and continue to indicate your copyright to prevent redistribution.  This is sort of what mods are, we just built an abstraction layer to avoid letting the person, who ultimately pays for us to work, from seeing our precious source code.  Fuck that work to build a mod layer; that is the same argument as DRM and we all know that argument is bankrupt.

The right answer is to sell your software and sell it as an easily modifiable release that gives the person who now owns the license all the power you have as the author to implement fixes.  Include your source files.  Don't make it copyleft, but do believe in the idea of libre software.  If you have time to work on something then don't make a mod layer to closed software, make a way for all the people who you sell a license to to share the modifications they make with each other in a really easy way.  Rather than having your binary (and modified editions of it) jumping all over the internet then make it easy to share and branch your code, accept Git into your heart and into the suggested software for your customers.  Surface cool modifications and ask the authors about offering it into the updates for later patches. If you don't believe in software patents (and you shouldn't) then no fragment of code is copyright but the entire work is, that means you may need to talk to people who make changes to your code if they are enough of a derivative to generate their own copyright but fixes should not even require such a conversation, it's just nice to ask first before using someone else's fix to patch your code.  Also, without software patents then none of your code is 'secret sauce' so that argument for not releasing your source code goes out of the window.  If someone steals 4 chapters from a Stephen King book and puts it into their own work then it's still copyright infringement, if someone rips off your software you can still go after them for unauthorised redistribution of your work.  You're making it easier for partial theft to happen with releasing the source code but I have bad news: it was already completely trivial to steal all your stuff as soon as you sold your first copy and gave a binary to someone, the 0s and 1s are already out there.  You are preventing the people who do have a right to modify your stuff, because they already paid you, from doing that rightful modification to try and stop the bad guys who don't care about your copyright in the first place.

Make games, sell games, release your source as part of the sales, and make sure to make it clear this is not a copyleft license.  This is still commercial software, but this is a reasonably unused area of games software licensing where on day 1 it is much easier for modders and fixers to get in there and have a good root around.  No waiting years for an eventual release once it has no more commercial value to the company; every line of code out there for anyone who wants to buy a copy to read, edit, fix, enjoy.


Editor's Note: this was originally written in September 2012 but due to my PhD workload has sat in the draft pool (with a load of half-completed articles) awaiting a final edit pass. Future articles should come more rapidly (certainly more often than every 6 months) and at some point the other 2009-2011 era posts worth posting will be edited and republished.

No comments:

Post a Comment