Slides from my presentation on game production at ENJMIN

Here (13 megabyte PDF) are the slides from the presentation on game production I gave at ENJMIN on Tuesday, January 11th. The presentation went well, people seemed to like it and remember things from it, and in general it was a very pleasant experience and I was impressed by the students.

If you looked at the rough structure I posted earlier, you will noticed I changed things around a bit. Although this is not the first presentation I’ve done, I feel I learned more from the process. Which is why I like doing presentations.

The slides come with notes but naturally it won’t fully convey everything I said during the presentation.

Update: Right, forgot to mention this. If you were at the presentation, I mentioned two things. First, Andrew Chen’s blog. Read this to see how internet / web thinking can apply to games. Second, Darius Kazemi’s series of articles about networking. Enjoy!

20 years in the games industry

On the 14th of January 1991, I started my first day of work at Thalion Software, a small and long defunct game development studio in Gütersloh, Germany. Which means that today I have worked in the games industry for 20 years.

Although it’s a nice number to drop into conversations from time to time, it remains, of course, an arbitrary milestone. There are enough people with a much longer career in the industry, and I am proud to count some of them among my friends.

But arbitrary or not, it’s a good opportunity to reflect. I like to think that I’ve managed to keep learning and growing, and that, with time, I am slowly managing to make new mistakes instead of just repeating old ones. I’ve found that delivering good work doesn’t become easier with time, but I’ve mostly grown used to the difficulty.

Today’s date also means that I moved away from my native Netherlands 20 years ago. I have now lived more than half of my life abroad. Is that meaningful? I don’t know. It has definitely changed me.

Today, after some detours into jobs where I was removed from hands-on development, I am not that far from where I started 20 years ago. I design and manage now, but I also still program.

I now work in a time when games are much more accepted as an industry, a medium and an art form, and when the interactive entertainment landscape is as exciting as ever, with more platforms, more play contexts, and more paradigms for games than ever before.

I am as passionate about the combination of interactivity, technology and storytelling as I was 20 years ago, and I still believe that the best is yet to come.

I could write more, but I have work to do.

Rough structure of my upcoming presentation on production

(Update: I wrote about how the presentation went, and uploaded the slides, in a newer blog post.)

Next week I am giving a presentation on production at ENJMIN, a game development school in Angoulême, France.

I roughly know what I want to talk about and I’ve been generating a lot of material. I felt I had reached the point where the structure was somewhat clear to me. Sometimes working with physical objects is much more pleasant than using a computer, so I fiddled around with index cards.

You can see the result here:

World’s most boring video, I know. Anyway, here’s a little more detail on each sub-topic:

Don’t waste effort. This is the overriding goal, the takeaway, if you want. Why am I telling you this? So maybe you’ll waste less effort.

Games are multi-disciplinary and You don’t know what you need to build. These are two central themes I keep referring back to. This is why you need the techniques I am going to present, if you want to waste less effort.

Breaking the baguette. I intend to buy a baguette and a plastic bag and demonstrate this live :). This is me explaining the concept of task dependencies and the critical path, project management concepts that few developers know, but should. And it ties into:

Decouple production chunks. In programming, loose coupling reduces complexity and thus difficulty (of implementation, maintenance, etc.). The same goes for production. Example: Rock Band. Their 3D band rendering is very loosely coupled to their actual gameplay, which I bet makes things easier than a typical 3D game. On the other hand, Uncharted 2, with its super-tight integration of gameplay, graphics and story is all the more admirable when you realize how complex it must have been to make, because a lot of the game is very tightly coupled.

Iterate the right way. There’s a couple of rules of thumb we tend to use at work when deciding what to do next, and they’re all tied to iterating. Bang for the back, ROI, low-hanging fruit are terms we throw around a lot. Also: do the thing that lets you the learn the most fastest (which works on lots of different scales). And my personal metaphor: walking up a hill is easier than jumping a ravine.

Integration integration integration. Because making games takes many different disciplines, you need to integrate early, and stay integrated, or you’ll have people working hard but not towards a common goal. And integration takes more time than you think. Setting the right goals also helps here.

Make your workflows flow. You need two workflows in a game team: the personal workflow, which needs to be fast, and the team workflow, which needs to be robust. This is the central engine of your production: get this right and you can actually build a game. But! responsibility for this is not obviously tied to one discipline, so it often falls between the cracks (an interesting dynamic in itself).

“Bonus rounds”, aka stuff I can use to fill time and/or I don’t know where to put yet but feel passionate about:

When is a task done? Dedicated to everyone who stayed in the office till 1 AM because a coworker claimed they were ‘done’ at 5 PM and left.

Testability. Really workflows again, only for testing. Not so much bug reporting and fixing, more being able to test anything at all. Forget this, and your QA people will want to kill you.

Project planning the quick & dirty way. Bonus material. My personal gut feeling / back of the envelope planning method. Great at parties. Start at the end, then do the start, then divide up the middle with some sensible-sounding milestones.

Localization. Again, workflows. If you’re not prepared for managing a localization kit and efficiently integrating translations into your game, you will be in a world of pain. I wanted to submit just this for GDC Prime 2011, but my honeymoon interfered with me working on it.

Making 13 games in 1 year. Because that’s what we did in our first year at Mi’pu’mi Games, and it was kinda cool even if the games were quite simple DS/DSi titles. And we used some of the techniques I discuss here.

It’s a bit heterogenous, as my talks tend to be, but I don’t think it’s entirely all over the place. I may still split up or rename some of the topics – this is the first draft of the structure.

What do you think? Does this make sense? Is this a nice structure? How would you present this?

Self-publishing is not the answer

It is an answer.

Alex Champandard summed up my entire previous blog post as:

Essentially, making self-published games requires the skills running a business — and not everyone has, or wants, those.

He should know: He has the skills for running a business as well as deep programming skills. Just look at AIGameDev.

Here is the other side of the coin, from Cat Valente, via the excellent (not game related) Making Light:

Funny thing is, if this future came to pass and the market were nothing but self-published autonomous authors either writing without editorial or paying out of pocket for it, if we were flooded with good product mixed with bad like gold in a stream, it would be about five seconds before someone came along and said: hey, what if I started a company where we took on all the risk, hired an editorial staff and a marketing staff to make the product better and get it noticed, and paid the author some money up front and a percentage of the profits in exchange for taking on the risk and the initial cost? So writers could, you know, just write?

And writers would line up at their door.

This applies to game development as well as to writing. It is basic economics.

So not everyone is going to be self-publishing. We’re just going to move away from the pure publisher-developer constellation to a more diverse situation.

And naturally it is a huge oversimplification to even talk about a “pure publisher-developer constellation”. Things are already diverse, they’re just getting more so. The future is already here, it’s just badly distributed, to quote William Gibson.

Ever notice how whenever there’s a new profitable market segment, the leaders in that segment do not resemble the leaders of the older segments? MMOs, Flash, free to play, social…

Marketing, sales, and other scary new game development tasks

Yesterday morning in the office, after my second cup of espresso, I wrote a tweet. And then another, and another, and pretty soon I had about 6 or so:

The rise of social games means more developers need to get comfortable with the concepts of marketing, selling and profit.

Seth Godin makes a strong argument in Purple Cow and Free Prize Inside that design = marketing. (In fact he says everything is marketing.)

In fact, the rise of social games is just ONE of several factors that put pressure on developers to change their attitudes to development.

Or rather, the rise of social games exemplifies several forces that have been growing over the last few years.

Lower barriers to entry. More platforms. Direct access. Disintermediation (insourcing, if you like). The common factor is the internet.

A lot of changes, and changes are scary. A lot of new skills to learn, and so a lot of new ways of failing.

(David Barnes from Facebook Indie Games, who writes about similar topics, kindly bundled these tweets and commented on them here.)

This all ties back to a whole bunch of somewhat related topics I have been thinking about over the last couple of years.

This Economist article (for subscribers only, sadly) explains that blockbusters have grown bigger, not smaller as many people expected due to the effects of the Long Tail. This was one of the most interesting articles I read in 2009. Dave Edery referenced it in his talk at GDC this year. Basically, in media these days, you want to be huge and number one, or tiny and quirky (like a tiny purple cow). You don’t want to be second best. This goes for TV, movies, music, newspapers, books – and games. There are a lot of interesting conclusions to be drawn from that.

At GDC this year, as you may have heard, there were some quite vocal reactions against Zynga and Farmville. What caused those reactions? I say it’s fear, fear for something new which is not the something new that some of us were hoping for, or striving for.

That doesn’t mean Zynga is the future of games. But everyone in the industry is now aware that Farmville’s 70 million monthly players, not to mention its revenue and valuation, are remarkable. (There are, of course, other numbers that are as impressive as that iconic 70 million, and other markets that are as interesting as Facebook – see, for example, Nicholas Lovell’s provocative post.)

This February I was at Casual Connect in Hamburg, my first time at Casual Connect. It was weird: the majority of sessions were about game design AND business. Which makes total sense in the casual / social / free to play space, but which probably confuses and scares a lot of game designers out there. Are we no longer cool? Are we going the way of the adventure game designers? (Many of my adventure game designer friends are actually doing quite well – some of them in social games.) Did I waste 20 years thinking about storytelling in games?

Changes on the internet, over the last 5 years or so, have revolutionized every single aspect of game development and publishing, and are continuing to do so. I held a presentation on this in 2007, and things have only accelerated since then. You can develop your game using open source software (itself developed and distributed over the internet), then market and sell and distribute it over the internet. Players can buy it and play it over the internet and you can converse with them over the internet.

One of the biggest changes caused by this is disintermediation. Basically, getting rid of publishers. Because from one perspective, developers have been outsourcing marketing and distribution. As I said about a month ago:

We’re in the middle of a major transformation of our industry that was essentially caused by the internet and the various disruptions it has enabled. One of the questions small developers should be wrestling with right now is whether to self-publish. I know I’ve been thinking about this a lot in 2009. Developers building up expertise in marketing, PR, financing and other business areas that we traditionally have no experience with is going to transform the games industry (in fact it’s probably happening already). I’m not saying everyone should do it, and in fact there are good counter-arguments – there is a reason why there are developers and publishers. But I think the status quo has been out of balance for a long time and that things are now moving the other way, towards self-publishing.

But that is a big, big leap for people who tend to think of themselves as artists and engineers. And you can bet a lot of institutional knowledge – the way things are done – no longer applies. And some of that knowledge is encoded in how companies are structured, in how they work. (When a older, bigger company is disrupted by a younger, smaller company, it’s the differences in company culture that cause this as much as the technology.)

Working at a small games company, I think a lot about this stuff. About my experience, about what I instinctively think is the right way to make games, about how to make big leaps. About my fears of the unknown, of failure, of being laughed at. Even though it’s not all that hard and lots of people have done it before.

Reading the two Seth Godin books I mentioned above made me realize a lot of people in a lot of industries are probably going through that. I don’t buy all of what he says, and I am not quite sure which conclusion I am going to draw from them, but I recommend reading them. Fodder for a future blog post, or a bunch of caffeine-fueled tweets.

“Developers outsource publishing to publishers”

It’s interesting to trace ideas.

In October 2008, Andrew Chen wrote about the cultural differences between games people and web people. Having been “games people” since 1991, but with a strong interest and even, in 2007, a brief stint in the web world, I found this a really interesting post. Especially this insight (emphasis mine):

Another interesting difference was the perspectives around content. For many of the games people I met, the content is everything. How good your game is perceived to dictate its ultimate success. I think this makes sense in an industry where distribution is essentially commoditized! The big publishers have many of the same relationships, and games developers in general have been outsourcing their distribution expertise out to the publishers for the past couple decades. As a result, it seems clear that the only place to compete is in the content of the game, rather than in the distribution.

This is a really interesting perspective – to me it was a very different way of looking at things. We’re in the middle of a major transformation of our industry that was essentially caused by the internet and the various disruptions it has enabled. One of the questions small developers should be wrestling with right now is whether to self-publish. I know I’ve been thinking about this a lot in 2009. Developers building up expertise in marketing, PR, financing and other business areas that we traditionally have no experience with is going to transform the games industry (in fact it’s probably happening already). I’m not saying everyone should do it, and in fact there are good counter-arguments – there is a reason why there are developers and publishers. But I think the status quo has been out of balance for a long time and that things are now moving the other way, towards self-publishing.

Adam Martin just wrote something about this topic. He links to a post by Nicholas Lovell, who is a strong proponent of self-publishing – in fact, he makes his living consulting developers about it. Nicholas puts the idea more strongly and clearly than Andrew: Developers outsource publishing to publishers.

I met Nicholas at Casual Connect in Hamburg and had a great conversation with him, and, if I recall correctly, I mentioned Andrew Chen’s article. I am not writing this to claim credit or say anything about how Nicholas got the idea, I just find it fascinating to see how ideas spread and develop, whether I had a role in it or not.

If you’re interested in this subject at all, I recommend subscribing to the blogs of Andrew, Adam and Nicholas.

How to filter out common unwanted characters in Python

I did a fair amount of programming last year and among other things I wrote a Python program that takes Word documents and transforms them to game data. One of the things it had to do is take a text that uses characters we didn’t support in the engine (on Nintendo DS) and replace them with other characters. Like so:

character_replacements = [
    ( u'\u2018', u"'"),   # LEFT SINGLE QUOTATION MARK
    ( u'\u2019', u"'"),   # RIGHT SINGLE QUOTATION MARK
    ( u'\u201c', u'"'),   # LEFT DOUBLE QUOTATION MARK
    ( u'\u201d', u'"'),   # RIGHT DOUBLE QUOTATION MARK
    ( u'\u201e', u'"'),   # DOUBLE LOW-9 QUOTATION MARK
    ( u'\u2013', u'-'),   # EN DASH
    ( u'\u2026', u'...'), # HORIZONTAL ELLIPSIS
    ( u'\u0152', u'OE'),  # LATIN CAPITAL LIGATURE OE
    ( u'\u0153', u'oe')   # LATIN SMALL LIGATURE OE
for (undesired_character, safe_character) in character_replacements: text = text.replace(undesired_character, safe_character)

This code is not hard to write, but building the character replacement list can take some time. The bulk consists of characters that Word will automatically insert when appropriate, but that game typefaces often don’t support or that are cumbersome for other reasons. As you can see. those characters are basically all kinds of quotation marks, plus a dash and the ellipsis. All of these are replaced by old school 7-bit ASCII characters or character sequences.

(Last year, while I was working on this tool, I read Robert Bringhurst’s “Elements of Typographic Style”. So as I was learning why it makes sense to use different types of dashes and quotation marks, I was also writing code to strip them out. Given the time constraints, this was the pragmatic approach. Still, I’d love to write a better text display engine sometime.)

Some time later I ran into trouble with the French ‘œ’ (as used in ‘œuvre’), so I added that too since the mapping is uncontroversial. Our typeface supported German umlauted vowels, so we left those.

In case it wasn’t clear: the comments give the official Unicode names for each character.

The list is far from complete, and depending on your situation you may want to add some kind of additional black- or white-listing mechanism to make sure other unsupported characters don’t slip through. But this simple list worked very well for the 13 multilingual Nintendo DS games we developed last year. If I could have found a reasonable and well-documented list like this, I could have saved a few hours of time. I hope that by publishing this snippet here someone else will be able to do that.

Back from Game Forum Germany 2010

Last night I got back from a trip to Game Forum Germany (GFG) in Hannover, Germany. GFG is a small game developer conference that got started in 2007 and that I’ve been somewhat involved in in various ways ever since. In 2008 I was responsible for finding the speakers and designing the program, and this year I did so again together with Noah Falstein.

It worked out very well. Every talk exceeded my expectations, and all of the feedback I’ve gotten so far has been very positive. The organizers did a great job in making sure everyone had a great time, and the mood during the conference was very good.

I either had no time or no Internet connection, or I would have tweeted my head off. But the upside is that I now have a very good reason to blow the dust off of my blog and write something longer than 140 characters.

Here are my impressions of the talks at GFG 2010:

Continue Reading »

Why I’m not blogging much anymore

*blows dust off blog*

Some of you – well, one person anwyay – may have noticed that I am not blogging much these days. There are two reasons for this:

One, I am hard at work. For ludicrous reasons entirely my own I can’t yet tell you what I am working on, but it’s fun and it’s taking up a lot of my time.

Two, like Ragnar Tornquist, my Internet activities have been largely taken over by Twitter. That means that both my RSS news reader and my blog posting application have been languishing. I write gnomic mini-blog posts, which you can see in the side bar or if you follow me on @JurieOnGames. I also get most of my news over Twitter now. It’s a different experience from reading RSS feeds, but Twitter sort of forces me to admit I can’t read everything, unlike my news reader with it’s quietly judging ’1000 unread posts’ display.

So, there you go. I don’t intend to stop blogging, but the short messages will definitely be going on Twitter. I intend to set things up so my tweets get posted here as well, for those people who really don’t want to set up a Twitter account. Which, you know, is not that hard – set up a protected account, follow me, and it’s like reading this site on the web.

Bookmarks for April 7th through April 11th

These are my links for April 7th through April 11th: