Monday 31 December 2012

Goitees 2012

Here are a few thoughts on games from 2012 which I completed and have seen doing the rounds on many a Game of the Year list.

Best AAA classic money-bags creation 2012: Halo 4.

Halo, but with outstanding graphics (Reach was the first 360 Halo that didn't insult the hardware; the games were all great but even will all the effort they only got Reach up to the pack) and a new aesthetic and character designs to make it look a bit new while still looking (and far more importantly playing) like a Halo.

It wasn't the perfect story but I was reasonably happy with the broad strokes and wonder if they're going to make an interesting launching off point for the next game (shame about the Legendary ending).  The online was great (but the Spartan Ops needs to really jump up to be more than rather middling co-op with a great video series) and the solo was just right.  I felt my interest in Halo had been dropping off this gen since the white hot love of the original xbox releases but Halo 4 grabbed me right back, even if I'll never really care about multiplayer console FPSs.

Best small budget release that kept eating my time 2012: FTL.

Take a light roguelike-like story generation engine into space and add an active time battle combat system with a focus on managing the people who run the ship and you've got gold.  I spent many an hour doing this while another screen contained something to occupy the other half of my brain; that isn't a bad thing, games like Forza and puzzle titles are also in this awesome area where the bit of my brain I want to apply to the game can be split off from a podcast or film appreciation section.

After tens of hours it wears thin, the things I have not seen are hidden from me by an RNG and I have explored all the viable strategies that occur to me can be constructed by the combat systems in place.  But you should totally play this game until you hit that point or naturally drift off.

Best thing that others may tell you isn't a game: Dear Esther.

Great place to go, great story to craft yourself as you walk about and get a selection of narration with the wonderful touches of narrative from the locations and beautiful landmarks.  Bit of choice that comes from the randomisation of the spoken voice and optional sights that make it more than a corridor title where you can choose what to look at but otherwise are in a movie.

I really got along with the few hours that it takes to walk through Dear Esther.  That old Source engine is great at stereoscopic 3D for some reason and it really sucked me in to be able to look out of a broken window and have the proper depth perception of focussing on the frame or the background.  Something about 3D in FPS can work really well to drag you into the frame and make the rest of the world simply not exist.  That possibly made the game what it was for me, but obviously the stuff inside the virtual environment had to be worthwhile to keep me in and make it more than just another stereoscopic experience.

(of the games I completed) Not on this list but on everyone else's 2012: Journey & Forza Horizon.

Journey really didn't do it for me.  I guess this is rather cool as I could appreciate both what it was doing and the quality of the technical work.  I did not care for the co-op at all and I wasn't in lock-step with the game's emotional trip as it moved about and so felt the music and events disconnecting.  Add this in to Thirty Flights Of Loving (which I guess was also this year so should be on this list non-entries, but I haven't seen a lot of GotYs with Thirty Flights Of Loving on either so maybe it didn't really do the rounds of the enthusiast press to be on everyone's mind at the end of the year) for games I was fine with playing but didn't much care for and didn't feel like I had missed what it was they were trying to say.  Why is that cool? I generally consider this to be my personal idea of 'art' and taste.  It wasn't that I didn't enjoy playing them (for ludic, technical, or aesthetic reasons) or failed to find their message; I just didn't find it resonated with me.  Their point was to sell me on that connection and I was not sold.  It's cool that I can see someone else's GotY list and see games I would never put up there but not think they're crazy.

Forza is a harder one.  I really liked it (I completed it like everything on this list and for a driving game that's often harder due to how they typically stretch the game progression) but I found it lacking compared to the numbered titles (notably 4).  I want to think of Horizon as one of the best games of the year, but I also don't want to get another Horizon style game next in the Forza series and am glad it didn't explode and outsell Forza 4.  It was a great game about racing cars with that lovely 'made for in-car view' physics/handling, upgrades that mean any car is reasonably viable selection for the class race, and plenty of stuff to do on the vibrant open world they created.  But it crystallized what I loved about Forza, the driving and not the racing.  The start is fun with a race but the best part of Forza 4 is the enforced clean laps, the assists notes by each time, and showing my friend's scores for a hot lap at the end of every race.  So I do a lap or two getting the course in my mind while I overtake the pack and am racing and once I'm done I then drive for the rest of the race with the leaderboards in my mind.  Assists off, no cutting onto the grass or decelerating using some useful wall; clean, smooth, driving.  And Forza Horizon is a racing game, that means it can't hold the same position of reverence in my memory as a numbered Forza.  Great game, but no GotY.  Also, "buy this car for credits or why not use tokens (purchase with MS Points)": Eurgh, Gross!

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.

Saturday 30 June 2012

Patents and Copyright

I was making sure I has something right: that binary executables are copyrighted works derivative of their source code; because it occurred to me that it might actually not be true after reading the US copyright office's description of video game copyright as only applying to the text and pictorial content - basically that a game is copyright on the art(s) data files alone.  This lead me down a rabbit hole that ended up here.

And that got me thinking, could we fix the FUBAR patent situation with copyright.  I know it's heresy to say so, but copyright might actually work out as a good idea (because what we've got with patents and crap sure as Hell isn't sustainable or sensible with big companies fighting with patent portfolios that make for a dangerously close to criminal oligopoly in any tech hardware adjacent marketplace).

If we describe how something complex is done (with many different potential implementations) as expression but block patents (what needs to get done, cookbook), as the EU does for software*, but consider the creation of such a complex process to be a derivative work that encapsulates the expression in the building then we might be getting somewhere.

Are two derivative works that are the same but can be shown to be independently derived from different source works a copyright conflict?  Could we make them not?  Use copyright as a chain of derivation with more force applied to the sanctity of the non-derivatives?  Basically you would have copyright on an executable as derivation of your source code but an independently created binary which shares too much common machine code to be safe from copyright infringement claim from an expressively different source (we already have to measure this to see if one source file is a derivation of another) would not cause a conflict.  It would provide an interesting case for decompilation of that binary, creating a derivative work of both source files (which traditionally requires someone to derive from two distinct sources, unless I'm missing something obvious).

So how does this apply to the world of patent-fuck (assuming we're going to blow them out of the water for complex machines)?  Intel don't have patents on x86 or anything like that any more.  They have a process for making their CPUs, a hugely complex design process for working out transistor layouts from their requirements using expressive (but often highly automated - we're talking machines that build machines** here) design that ends up with billions of transistors on a die in an exact configuration.  Because of the copyright on their complex machine*** then the CPUs that come out of it are likely a derivative expression of that creativity and so if you built your own fab and started making clone CPUs like Intel's then they would be works duplicated without permission.  If you independently designed a non-derivative process for working out transistor positions to make your own x86 CPU then even if the final transistor placements has overlap with an Intel CPU you would only need to show the non-derivative nature of your process of design to show it wasn't infringement.  AMD don't need any permission/patents to make a CPU as long as they're not stealing Intel's design software/workflow or blindly duplicating transistor layouts with no design of their own (you can't steal my source code or copy my executable).

Of course, you have to consider the potentially derivative work for containing that expression (complexity) found in the original work.  I can write a massive, unique program to write Hello World but the binary is unlikely to have copyright protection as derivative as the compile/optimisation process strips the expression from the original (unless it doesn't - think Rube Goldberg machine type situation, those things could get to the point of being expressive art in themselves and so could a complex enough Hello World as long as the optimisation wasn't able to strip it out).  And we've already got (in the world I just built in my head) this protection from coincidental derivation to a common point from differing ancestors to prevent it being a really big problem.

Your drugs (assuming complex molecules etc) are copyrighted derivatives by the process you went through to discover and develop them that cannot just be ripped off by someone copying the molecules but if they're naturally occurring or can be developed without just copying your work then that's cool.  Obviously that leads to the issue of copyright terms and how we'd need to build up copyright term lengths for a whole host of new things to get us closer to patent terms in those fields.  It's a whole minefield but we already live in a world when a drug patent can evergreened by changes like patenting the other handedness of the molecule or changing the damn tablet colour/shape so we're already SNAFU; it's hard to think we can make things worse!

Is this a perfect idea?  Hell no.  I've only thought about it for 30 minutes and I'm sure there would be work to make it in any way sane.  But I think the EU software world, where if you take the EXE I created and duplicate it and sell it as your own then I'm actually protected, but I can't protect the ideas of what it does**** from someone independently creating the same thing (or as a tiny fragment of functionality inside my copyrighted source code) is a good model.  As long as the process is complex (non-trivial) and expressive (non-obvious and many routes to functionality) then the thing it builds (as long as that maintains the complexity) is a derivative expression of that crafting/translation process.  We just have to make sure we acknowledge that our claim to expressivity says that the derived copyright is not exclusive as many different expressions can give rise to the same derived work and this can't block a second (distinct) original work being created and having a valid derived work.

I kinda started this though process imagining two short stories which are clearly copyrighted works and yet talk about something very similar (or even the same event or identical high-level plotline) and using Google Translate on them (a totally automated process).  The rough translations that result should obviously retain copyright as derivative works that maintain much of the expression of the originals but may (somewhat unlikely, not impossible) well share more commonality***** due to the weakness of computer translation to simplify somewhat and try to make something readable from the translation process.  Compiling is a translation process which optimises and strips some expression (but not enough for us to worry about the derived work being necessarily non-copyright, the granularity of expression is still there in the details over a large program).  That's basically how I justified not even thinking about stripping executable copyright, it seems to make perfect sense, and rather considered implementing the same thing into the meat-space of complex hardware.  Also I have no idea how the originally linked article worries about ReactOS as if the functionality is so small as to be necessarily identical by functionality constraint then there was (probably) no copyrightable work in the source code and (certainly) the derived binary at that point.  Two novels may share some sentences but it isn't a copyright issue, we already have a long history of working out what constitutes plagiarism and copyright infringement of expressive works to rely on to work out any edge cases.

* Is ScummVM only legal in the US because Lucas failed to patent the functionality of the engine (and possibly because anyone who writes software thinks software patents are scum and hugely damaging to the industry so internally campaign against them)?

** As someone who has spend a decent amount of time writing code that writes code, I can also see my hand in the code that my code writes as long as it is of sufficient complexity to be copyright if it was to by from my own keyboard then I see no reason to block it because it is one step removed from my keyboard as I wrote the code that wrote the code.  Typically we create code without enough expression as code generated by code is often saving us doing something non-expressive/boring by automation.  That is not always true.

*** Split being - functional so no copyright: 'make an x86 cpu with these constraints...'; expressive source code equivalent: design software etc that is interacted with and tweaked to actually do the design; derivative potentially-expressive binary equivalent: final layout of transistors on that CPU.

****  'Make a camera on-screen that looks as if it comes from a human eye's perspective or film camera and allows movement of the player-character'; 'Take a binary data stream encoded with MPEG compression and decode it to the visible data it encodes', 'Count the number of transitions of shadow volume to camera position to work out if an object is in shadow'.

*****  Even whole blocks may be totally identical now potentially baring the names of people and objects - and we already know switching up var names isn't transformative to strip copyright for fair use so has a danger of being considered NOP work and so making them identical.

So, what am I not considering here?  Couldn't this actually work to get us out of this patent quagmire?  We're already in a mess (and the US is in a real mess with software patents) so why not try and unify us under copyright to prevent blind duplication but allow parallel development and independent creation.  I'm not sure if we need to worry about retaining patents for things too simple to be complex enough to be expressive, because if it's that simple and there is only one right way to implement the functionality then do you really need a stick to beat anyone else who tries to do what you just happened to patent first?

Sunday 4 March 2012

Non-linear Games and the DLC World of EA

I was going back over some DICE coverage (finally catching up with the talks this year I hadn't had time to check out) and walked right into this piece (24 mins video) only hours after reading this post.

Unless I completely got the wrong end of the stick (but I think it was sold quite clearly in the talk), can you see how linear stories with psychological hooks (story arcs which create incomplete purchases from each bit of DLC you buy) to get people to keep buying the new DLC are being sold (by the EA guy) as a great driver of an open world environment. The real non-linear content comes from the emergent gameplay (with systemic game design) that has nothing to do with constantly trying to sell a person the next chunk of linear content for your world.

Building an open world with linear story (GTA, Elder Scrolls being two great examples) are narratively linear when you're writing the story (even if you can approach a lot of the content in the order of your choice). The non-linear content is the emergent activities, walking the earth or enjoying the city simulation. That is where the players craft new stories that the designer did not build and yet the guy from (DLC fans) EA gives a big talk about how getting a writing staff around to constantly pump out paid content with story arcs as episodic content is non-linear.

I'm starting to get a deep understanding of why EA moved off Steam and it wasn't just Origin was ready to release (EA have no issue sharing sales revenue with any other digital store, as long as those stores don't force them to offer the choice of buying DLC from that same storefront). They see the boxed game as a traditional revenue source for getting the game out the door and are happy to give away some of the money to distributors (digital and retail) because they just got a customer for that product 'platform'. The game (a platform to sell more piecemeal linear story) is their conduit to far more revenue generation by selling DLC to expand the experience. Boxed copies drop in value over time but by enforcing all DLC via Origin they can keep 100% of that new big revenue stream and avoid a traditional price depreciation. That's worth losing any sales through Steam for on PC. Mass Effect 2 is £5 retail but you have to pay £30 on top to get all the DLC (if you made the mistake of buying Me2 used then it's a £40 cost to buy all the DLC including the stuff that comes with the new copies) and complete the story and all that money goes direct to EA. Imagine if all that DLC was critical to your full understanding of the story arcs of the game and they all chained together so buying one meant a sunk cost pushing buying the next one to see that multi-DLC story arc blossom. It has nothing to do with emergent non-linear stories, non-linear is only true in the strictest sense that you can do a lot of content (especially with a Elder Scrolls style many-linear chain design) in an order of your choosing. Like reading 3 books about the same character at once and picking where you go for the next chapter as you flick between them.

This ties in to a longer conversation about the ethical issue with 'whales' (the F2P term) and how we move with episodic content without abusing the customer and creating a drop-fed, unhappy consumer who ends up leaving the industry and spending their money on DVDs, books, and other entertainment if we treat them like something to maximise our cash intake from. While a game and traditional expansions had a classic price depreciation to pick up a long tail and let gamers buy when they could afford it (limited only on peer pressure to consume the latest talking point game), are we shooting ourselves in the foot with 30-60 minutes DLC missions for the price of a classic release (say 36 months after game launch) of a full game (or even an indie title at launch)? Are we offering a suitable value and is there a problem when a game that you can buy for £5 with lots of content can grow to 125% of that total content only by buying £30 of additional DLC, especially if we start to look at tying that content into arcs and hooking into the desire to follow threads (as discussed in the video).

When we grow to a TV model and have masses of DLC, two games worth of quest chains (four 12 episode seasons of content? At £5 an episode that would be £240 of content sold bit by bit as DLC but two games new only costs £60) then how to we price fairly? If we try and take every penny today then we'll end up stripping the customer base for gaming. And why did the guy from EA decide to try and pass this off as a non-linear discussion? Was that just a lack of a good term for this episodic content without using that phrase (because episodic content is something associated with some mild failure stories of timetables and popularity) as he pushed DLC? Does the not-technically-fixed-order way that Elder Scrolls does content make the dev think non-linear somehow?

Jan 2017 Update: video url stopped working, fixed to now point at current location.