A Trial, A Spectacle, A Marketing Disaster

I’ve been following the trial in Swedish court against three of the guys behind The Pirate Bay (and one of their providers). Initially, I decided not to post about it here, as the trial is mainly political in nature, intensified by the theatrical spectacle that the pirate bay and their supporters are trying their best to fuel. I don’t really intend this blog to be about politics… but the more I’ve heard and read from the trial, the more that decision changed.

It changed not because the trial is less political than expected (or less spectacular, indeed), but because of the involvement of the industry I work in, and because of the way it’s being conducted in our names. It’s become increasingly clear to me that not only the outcome of this trial but also its very existence affects me, regardless of my choices. To explain my view on it, let me begin with some background.

The games industry has had its own battle against piracy, very separate from the other parts of the entertainment industry (Music and Movies) — our very nature is that we’re an interactive media, which differentiates us from them. The grander the interaction, the harder it becomes to do any meaningful piracy, to the extreme of online-only games and MMOs, where piracy of the game client is almost to be considered helpful.

With the emergence of the Internet, the games industry quickly picked up on the budding culture of participation that was thriving with the new possibilities — “user-generated content” as it’s so nicely called nowadays started appearing as level editors and levels for Doom, mods for Battlefield 1942 and Half Life. At first, the unexpected creativity shocked everyone, but then it was all embraced by the game studios and eventually turned into the massive support systems for user-generated content that today exist in games like LittleBigPlanet and the Trackmania games series (awesome games by the way).

Today, there’s basically two problems for the industry (well, winning the “simplification of the year” award here, but anyway): piracy for PC titles, and used game sales for Console titles. Yet if you listen to the internal dialogue in the industry (at least my part of it), the talk about what to do about this is not about punishment, it’s about new business models, and about providing more value for owners of original game copies, like giving away free stuff. I can guarantee that you’ll see more of that in the future.

Contrast this with the Music and Movie industries, who have been happily strolling along with the “shove it down their throat” business model until now. With a tight grasp of the market, distributors have been able to pocket most of the money, sending only spare change to the people doing the actual creative work.

With that background, I find it extremely strange how there are computer games in the list for the trial. It gets even weirder, in that World of Warcraft is one of them. So, one of the games that’s the very poster child for the new business models I mentioned above, that give away their game client on free trial discs, is a part of a lawsuit against a piracy site? Wait, what?

Why does this happen? Simply put: because the studio is one step removed from the publisher, and the publisher is one step from these umbrella lobby organizations. The end result is that the people doing these lawsuits are pretty much lost when it comes to the material they’re representing — they have absolutely nothing to do with its creation. The middle man is behind lawsuits, because the middle man is being cut out in the new world with a new economy, and more of the money is starting to flow directly to games studios, directly to musicians.

The behavior of the industry lawyers in the court has been nothing short of disgusting. With no actual case, they’ve spent the entire sessions trying to discredit the professors who have taken the witness stand, acting like an IFPI lawyer was qualified to pass judgment on who’s fit to be a professor and who’s not. They’re so eager to hide facts that don’t fit into their outdated view of the world that they don’t even realize that not only is it an insult to the Professor in question, it’s also an insult to the entire academic world and everyone who’s had a hand in reviewing and publishing his papers.

I’m proud that I’m part of the sector of the industry that is trying to move with the times rather than ride the lawsuits all the way to the end. I’d like to be able to say that I’m proud that my studio’s products aren’t on the list for that lawsuit — but sadly I think it’s just a question of random selection.

In the end, even if we aren’t associated directly with the lawsuit, we’re funding these organizations and we’re indirectly connected to it by our very profession, and treating people that way is nothing short of a marketing disaster. With the amount of money we spend getting games out there, not having the process sabotaged by a public backlash should be priority.

My conclusion is that it’s time to sever the connections and publicly distance ourselves from anything even remotely to do with suing our customers, and go back to working together with the gamers out there on the net. We have nothing to win in court, and nothing to lose in the market.

The mountain of flowers sent to professor Roger Wallis and his wife by (and paid for by) people following the trial on the net shows how deeply people care (and are obviously willing to pay for things they care about). I’d rather recruit this unprecedented movement of creative energy than die slowly of starvation like the likes of IFPI are going to. After all, there’s only so many years you can spend 75 Million Pounds on jailing your customers — if you somehow don’t run out of money I’ll guarantee you’ll run out of customers.

If you’re interested in the trial, check out the Wired article series or follow #spectrial on twitter.

How to Destroy a Universe in Order to Make Money in 6 Easy Steps

The games industry is often accused of having a bad case of sequelitis. Most big games are sequels, or in some other way part of some franchise. I think it’s a bit simplistic to blame the industry for this — looking at sales and income, the games industry has understood (just as Hollywood has) that the way to make lots of money is to make a sequel. Not necessarily because it’s cheaper, but because that’s what people buy.

So having established that we’re in the business of making sequels (and yes, I am), we need to look at lore. With each sequel, there’s a new story, but also an extension of the universe that story takes place in. Fans of series don’t generally love the stories themselves — more often fans are in love with the universe. The magic that surrounds something like the Star Wars universe (or did, until the prequel movies were made) or Lord of the Rings stems from the depth of the universes they take place in.

It’s easy to forget this and only focus on the new story you’re trying to tell. Even if this succeeds, and even if you make a fair bit of money from it, you may be lessening the total value of the universe by breaking the lore.

So without further delay, I present 6 ways to easily spoil the magic and destroy a universe:

  1. Un-ending an end, or forced resurrection. This happens when the decision is made to make a sequel to a story that has been ended, thus altering the lore or coming up with convoluted ways to explain the miraculous continuation of a storyline that had been conclusively and definitely ended.The effect is that fans feel cheated and the value of the previous ending is reduced. Two good examples of this effect are the Terminator franchise un-ending of the end in Terminator 2, and the Alien: Resurrection movie.
  2. Accommodating a new target audience by changing the universe. This happens when a spinoff, sequel or prequel changes the universe in order to accommodate for a new target audience — often a childrens’ version of the series.A perfect example of this is how many Star Wars fans felt that the Star Wars universe was tainted by the introduction of children’s movie character Jar Jar Binks and elements like the Hutt Pod-race. The prequel movies undoubtedly made a healthy profit, but destroyed some of the Star Wars magic in the process, lessening the total value of the franchise.
  3. Not doing your research. This tends to happen when a universe changes hands, like a new author finishing a book series after the death of the original author, or a franchise being handed to a new games studio by a publisher. The new authors then make mistakes that lessen the credibility of the universe by simply not knowing or understanding some aspects of it.For instance, in the prequels to Frank Herbert’s “Dune”, written by Brian Herbert and Kevin J. Anderson, an invention is used several thousand years before its invention in one of the original books of the series.
  4. Killing your core. Most universes are built up around some core occurrence. Star Trek is built up around the exploration of a vast mystical universe by crews on space ships, for instance. Removing the defining characteristic of your universe is a bad idea.This happened as the Wing Commander saga unexpectedly ended the war that was the core of the universe, removing the core component that had powered the lore. A few games were released after this, introducing a new enemy but the momentum of the universe had failed. Another good example of this is when an action movie was released based on the adventure series Mission: Impossible, even including a betrayal committed by the beloved protagonist of the series for good measure.
  5. Forgetting your core. Sometimes, what makes a series special is taken for granted during the production of a sequel, to the very point that it’s forgotten entirely. Games are especially open to this phenomenon — in the rush for technological innovation the heritage is somehow forgotten.Doom 3 is a good example of this. With all the cool dynamic lighting and shadows in focus, the game completely failed at following up on the style of the previous games. Instead, the gameplay degenerated into a form of technologically advanced “Boo!” with monsters appearing out of nowhere in rooms with blinking lights.
  6. Diluting your story. Charlie Jane Anders calls this “Being a story slut” — feeling the need to tell a lot of stories that may not fit in to the universe you’re telling them in. The end result is that the fans lose track of what the universe is all about.I’ll repeat Charlie’s example for this: The Matrix. By losing focus on the issues and story in the first movie, the entire Matrix universe is tainted by this dilution, losing some of its magic.

Often, these errors are immediately obvious to any fan. Why are not spotted and fixed?

Sometimes, the simple answer is that they’re accepted damage. For instance, if you want to make money out of a new Alien movie, you’ve accepted the fate of the lore the moment you started. This can happen because the franchise is in the hands of people who don’t care about the universe they’re extending, or because the people doing the sequels have simply lost track of the context for what they’re creating.

More often, though, I suspect the mistakes are the responsibility of a single person in charge, who either refuses to listen to others or who rules with such an iron fist that others don’t dare to sound the alarm. This appears to be the case of Jar Jar Binks, where the production team waved the red flag but were ignored.

So if you’re going to make a sequel, make it a good one — and don’t repeat these common mistakes. That way, you don’t have to be responsible for the next expression like “Jumping the Shark” or “Nuking the Fridge

Human Stack Overflow

It’s interesting to every now and then stop what you’re doing and take a look at (and some time to think about) how you do things. The human brain is incredibly good at some things, and incredibly bad at others, so it makes sense trying to maximize the amount of time you spend doing things in ways that the brain is good at.

I find that I’m good at executing algorithms on a low level, where each component is easy to execute. For instance, doing the laundry would easily be described as an algorithm of sort laundry, put clothes in machines,  wait until done, move clothes to dryer, wait until done and finally sort clean clothes. All easy steps leading to an easy total procedure. Not fun, but easy.

stackHowever, when steps become complicated I soon hit my own internal stack limit and overflow it. For instance, today I started out investigating how to do something new with our pathfinding middleware. I read the docs, and went to take a look at the examples. The examples gave me an error and crashed, so I had to look up why. Turned out I needed a new license file compiled into the examples. I downloaded the license file from the support site, and tried to compile the examples. The compiler gave me a DirectX include error, so I went to install the DX SDK. After finding the setup package, the installer told me I needed to reboot.

It seems like a sequential set of problems to solve, but actually it’s a recursive process. I was rebooting to solve a compiler error to fix a license problem to run an example to learn more about how to implement a feature. That’s quite a stack depth, and in some cases the stack can simply overflow. When this happens, you solve some problems you’re working on, but then somewhere along the line realize that you forgot whatever it was that caused you to start solving that last problem.

This used to happen to me when I was writing a game engine for the Velox concept game. My colleague at the time even wrote a couple of small scripts to be able to push and pop things off a stack on his workspace in order to get around the problem.

You don’t even need a hard programming problem for it to occur. Have you ever found yourself starting out cleaning the apartment, but then ending up sorting through all your old papers you found in a stack somewhere? In the end, you’ve missed the target of cleaning the apartment, because you built up too deep a the stack and lost track of the original work item.

This whole thing is also a part of the explanation to why the human brain is so horrendously bad at context switching, and why programmers hate being interrupted and asked to work on something else for a bit. You not only have to put aside what you’re doing right now, but your entire stack of reasons you’re doing it.

My colleague absolutely did the right thing. Explicitly keeping track of your work stack is important, because it lets you easily remind yourself of what you’re doing. It takes a bit getting used to, but definitely increases your productivity in the long run.

But Bad Programmers Will Abuse It!

I recently had an interesting argument with some collegues about the merits of properties as a language-supported construct. If you haven’t heard of the property (or “smart field”) concept before, here’s a quick intro:

A property is a class field that acts like a variable, but encapsulate get and set methods. This means that from the outside, you can do something like:

a.field = 10;

but what actually happens is that the method “field set()” runs:

public int field {
    set {
        m_field = value;

If you want a more exhaustive look at properties there’s a good explanation of C# properties at C# Station.

Ever since my days long ago coding Visual Basic (ugh), I’ve been a fan of the property concept. In my view, it provides language support for something we do anyway — providing accessor methods for private data fields, doing away with something that breaks the natural expectation of how to do things… normally I assign a value using the assignment operator, now I have to call a set function.

Worse, without properties you’re in a situation where you have to either provide set and get methods for all fields for consistency, or start out with public data fields and be ready to change all calling code if you need to do some additional checking on the value being set. Nearly everyone goes with option 1, so we end up doing the tedious extra work of typing out default get and set methods, or using refactoring tools to write them for us. Either way, the code gets cluttered with stuff we didn’t really have a specific use for.

So coming back to the discussion we had about properties, what are the reasons that people don’t like them? The argument can basically be summed up as this: “But people can put all kinds of stuff in that method. If I assign a variable, I assume it’s only going to save a value, not do something heavyweight.”

So essentially, bad programmers will abuse the feature, thus it’s bad. Well… we already do this, it’s just not built into the language. Someone can calculate the next unknown digit of π or brute force a solution to a 1024-bit RSA key in your setField() method just as they can in the field set() method. In both cases, you’re going to expect a simple value assignment, possibly with some safety checks.

The bottom line is, no language is going to protect you from the abuse done by unskilled programmers. Funnily, the argument tends to come from coders who work primarily in C++, which must be the best language possible if you’re looking to set traps for yourself. You can do really horrible things to your fellow C++ coders using operator overloading, but that doesn’t make operator overloading a bad feature.

The Lyrics to my Life

Jeff Atwood posted a suggestion a while back for a “Support Your Favourite Small Software Vendor Day“. He has an interesting point, in that there’s a tendency to not register the shareware stuff out there. I’m as guilty as many others on this — I tend to not buy software that doesn’t do what I expect of it, keep looking for something better, but never find it.

Some of these are painfully apparent in my computer setup. I run dual-screen setups both at home (2560×1024) and at work (3200×1200), and I manage both with the excellent shareware application DisplayFusion. It has the unfortunate effect of being so good that I use it once, then forget about it for at least 3 months. Finding good backgrounds is easy on DeviantArt, though, and I’ve always had a soft spot for auto-rotating desktop backgrounds. Well, turns out DisplayFusion can do that in its registered (or “Pro”) version.

It has the rather sour licensing terms of “one computer only” however, so I’d need to buy two licenses. I find that rather greedy, to be honest — I never use both computers at once (they’re both stationaries, one at home and one at work), and while I certainly find the application worth the money, I don’t fancy paying for the same thing twice, for the same reason I don’t think people should be restricted to installing Spore on 3 computers, as long as they’re only playing on one at a time.

If you’re a small developer trying to make money off shareware applications, I’d advice you to not try to put MS/EA-style restrictive licenses on them. There’s just no point, and while EA may be able to take the hit of being despised by every forum flameboy around, you can’t. The likely effect is that you lose sales rather than gain additional ones. Result in this case: I’m looking for another good dual-monitor wallpaper application to buy instead.

Another app I’ve used for a long time is Minilyrics. I’m an absolute music junkie, tend to be listening to various kinds of music more or less constantly. I’ve always been interested in lyrics viewing addons, but fell completely in love when I found Minilyrics. The difference is the amount of config you can do with Minilyrics.

Most lyrics viewers scroll down text in a window — Minilyrics defaults to this as well. This takes up a chunk of screen space, and as I mentioned I like to have my music on a bit more often than always, or a bit more often than that. But with Minilyrics I can set it to scroll horizontally, and place the app as a small strip just about anywhere. At work I basically always run Visual Studio maximized on my primary monitor, so I’ve ended up with a setup with Minilyrics layered transparently on top of the title bar.

Minilyrics on top of visual studio's title bar

Minilyrics on top of visual studio's title bar

I love that setup — it keeps the lyrics where there’s always an unused bit of screen space, and it’s always easy to check out whatever those words that just floated by in the headphones were, without taking focus away from what I’m doing. It doesn’t look like much on a still image like that, but seeing the words scroll by is awesome.

At home I don’t have the luxury of a single app always running in maximized mode though. I’ve grappled with that for a while, and ultimately came up with my current setup, which has Minilyrics running at the bottom of my second monitor, in a reserved space (so I have a lyrics bar on my second monitor, just like you’ll have the task bar on your primary monitor).

Minilyrics at the bottom of my second screen

Minilyrics at the bottom of my second screen

I haven’t been able to find any applications that properly put up a bar like that on a second monitor, so I ended up writing a very small application only for the purpose of reserving that space with a transparent window. It took me a while to figure that one out — most application I’ve seen with the capability to dock in like that with the edge of a screen calls it “docking” — Microsoft terminology calls it “Application Desktop Toolbar” (thanks, Stack Overflow folks). Once I knew what to search for to get the information I needed, writing the app was quick and painless.

Anyway Minilyrics had some very annoying bugs, but I still kept using it. And the latest version has fixed nearly everything that annoyed me — so it was well worth the money.

To end the whole theme of music: I guess anyone who can identify both songs has a suitably wicked musical taste to be compatible with mine.

What shareware do you use?

WordPress Themes