The last of the bedroom programmers
 
 
The Introversion Blog
The only place you'll ever hear the truth

Tales from the front line S01E02
Posted by Byron on Thu Jul 03, 2008 8:37 pm
 
The two opponents met in the dark and for a brief moment it appeared that decorum would be observed and that they would shake hands but they merely glowered at each other and then marched to their designated command posts. Gary and Chris were ready. Many would die today.

The tension mounted among the observers and a quite hush descended over the darkened arena as the two sides got ready to unleash hell on each other. There was no traditional tossing of the coin, no, it was decided that Gary would be launching an assault on Chris and his defences. Chris however was glowing with a vibrant confidence that today Gary would meet his match and descend into the depths of despair as his forces are slaughtered under the might of his defences.

Battle started.

For the first few minutes Gary enacted the role of a World War general and disregarding of the lives he was throwing away he piled soldier after soldier like toys against the first of Chris’s defences. The observers gasped in horror as Chris’s gun turrets unleashed metal hell on hundreds. The screams could be heard above the repeated ‘thump thump’ of the discarded shells hitting the floor. In the front row of the observers La Grande Fromage began to convulse as he could no longer hold back the tears at the sheer horror of what was unfolding in front of him. Chris and Gary were oblivious to all this and could be heard boasting and laughing as they continued on with their macabre show. Throughout all of this Chris gave a running commentary – seemingly oblivious to the lives he was extinguishing by the second.

Eventually Chris’s first line of defence fell under the sheer weight of numbers. Amazingly the screams and bodies of the dead appeared to bolster Gary’s forces and they forged ahead onto the second line of defence which to the gasps of shock from the observers turned out to a flame thrower turret – a weapon long since banned from most civilised countries. To make matters worse Chris zoomed in on the kill counter to show the number of lives claimed by the flames, which seemed to emanate from hell itself. From the glow on Chris’s face we could have sworn this was his proudest moment. Gary, determined not to be defeated, pushed even harder on his forces in an attempt to crush Chris’s hell hounds.

A look of shock crossed across Chris’s face as his second line of defence fell and Gary’s forces marched like a legion of possessed demons onto the final line and the target itself. By this time the observers had become numb to the entire killing and to some extent became emotionally involved in the outcome. Would Chris pull off a miracle and manage to defeat the storm that was headed his way? Would Gary show any mercy?

The commentary from Chris turned to despair as the horde took down the last of the turrets one by one and then the target. He made light of it but you could tell that inside he was a broken man. Finally with the turrets down Gary’s forces triumphantly marched onto the target and blew it to hell.

Okay, it may not have happened exactly as I depicted there but you know what, it is damned close. The battle took place to demo Multiwinia to the guys from IGN. We set up the development room to show the game from Chris’s point of view through the projector onto the wall and then closed the blinds and turned off the lights. The show was amazing and I am totally convinced that everyone should get a projector to play the game. The particular game mode being shown was a new one that had previously not been shown in public before. Chris and Gary paired off because out of all of us they are the best at playing the game. The game rocks dudes and when it comes out in September you are not going to stop playing it so kiss goodbye to your loved ones because you are not going to see them for a long time.

Back on the development front, I had a bit of a breakthrough today and got spectator mode working on both the client and server. I was able to watch a four-player game using only AI teams. All I need to do now is make sure all the UI paths work and get this mode totally tested so that it can make the Gold Master deadline. It turned out that getting this mode up and running was a lot simpler than anyone anticipated because of the way the game deals with teams and clients. It’s unlike any network system I had come across before but it works really well and is an elegant scalable solution. Going to have to be careful now because I am going to want to code all future network solutions in this way, which is fine while I am employed by Introversion ☺


 

Tales from the front line
Posted by Byron on Wed Jun 18, 2008 6:34 pm
 
In every project there is always one file that strikes fear into the hearts of all programmers everywhere. These files are usually full of code that could render a battle-hardy coder to complete gibbering tears within seconds and that is just for looking at it – if they have to make changes to the file then they usually make their farewell calls to their loved ones, have a swift drink of something to bolster their courage and run into the battlefield screaming as they go. Somewhere in the world is an honour monument to those who fell.

Today it’s my turn. When I joined the Multiwinia team I was told mythic tales of this particular file and like a fool I sat back in my mis-guided confidence and boldly said ‘it can’t be that bad’. Around me I could see the looks on my fellow coders faces that said they felt sorry for my wife, as I was not long for this world. They shook their heads in sorrow and patted me on my back while in the corner a coder was shaking and sobbing every now and then – I was to learn later that he was actually in the file and desperately trying to call in the support copters to get him out ASAP. There’s not much help the others can give him – he just has to brave it out and hope he lives to tell the stories over the campfire while he sips his well earned beer and not forgetting to take the sedatives the doctor game him to calm his nerves.

Even mentioning the name of this file is a curse so brace yourselves:

Game_menu.cpp

Still there? Check those dark corners you never know if its there waiting to pounce out on you!

Game_menu.cpp isn’t a large file, it’s the Cthulhu of all code files. It currently weighs in at 9765 lines of C++ code and lots of classes. Unlike a lot of Cthulhu files the code in this one is not bad code, there’s just a lot of it and a few of those classes don’t take prisoners. Why is this file so large you might ask? The answer is simple – evolution. Early on in a game project decisions are made as to the route you may go down in order to achieve a working solution to a known problem, in this case it’s the game menu system, or the bunch of buttons you have to wade through in order to play the game. It’s not always easy to see all of the consequences that seemingly simple decisions makes down the line. In previous companies some of the designers used to make small off-hand requests for a feature that results in 2000+ lines of code and when it was finished they decided they hated anyway. Game_menu.cpp has a really good concept at its heart and had to evolve that concept in order to cope with the demands of Multiwinia. Unless you have lots of time on your hands and also a lot of money most games companies do the smart thing and re-use code. This means that as a coder it’s your job to go through some really ancient (2 weeks old) code and re-factor it so that it does the new job at hand. In Multiwinia it meant bolting on the new menu layout and all the UI code to handle the multiplayer aspect. The end result is a beautiful swan on the outside and a pair of ugly feet paddling like crazy under the surface. That’s our job though – make the ugly bits so that they can power the pretty bits for you the player.

UI in games is usually one of the most hated areas of code and given to the juniors to do because nobody else wants to do it. I always feel that this is a stupid reaction to what has to be one of the most important features of your game, for instance, can you think of any game you played that made it so difficult for you to actually get to the game because of an un-intuitive UI flow that you actually considered or indeed did give up on the game? I know I have. A prime example of this is the online multiplayer section of Halo 3, which is too painful for words when you first encounter it (well, I thought so anyway). The real reason it’s hated though is that anybody can have an opinion on the UI and during the development process if one person hates it then it usually leads to a re-design which in most cases means a re-code too (sorry, these days we call that a re-factor).

The reason I have to brave into the murky realms of Game_menu.cpp is that I am now working on putting a spectator mode into Multiwinia. What this means is that like Defcon if you join a full game then chances are if you really want to and the host lets you – you can watch the game. This is also useful for tournaments so that we can set up the host computer to be a spectator only and judge who the winner really was. This is where coding gets to be fun as to do this I pretty much need to know how the whole UI, gameplay and networking systems interact with each other and more importantly how not to screw it up. It’s a great responsibility doing this type of modification as it goes straight to the core of the whole Multiwinia experience and if I check in dodgy code right now it means anybody who does an update will either have to roll-back to a known working version or take a break until I fix it. I’ll let you know how I get on.


 

I don't want a real job - Part 4.
Posted by Mark on Tue Jun 17, 2008 8:53 am
 
So far I’ve talked a little about what I think makes a “good” game idea, how to begin to develop the idea, and what sort of help you may need from a publisher. Even if you go the Introversion way and spend much of your time being mean and spitting at publishers as they go past, you would be a complete idiot if you didn’t spend time talking to them, pitching your idea in an attempt to convert their hard earned cash into your hard and fast Bentley. The only reason that Introversion hammers publishers is because the traditional deal they have offered developers has been so bad as to be insulting. Publishers are about turning ideas into money, and developers are about turning ideas into wonderful games that entertain and engage. Unfortunately this “symbiotic” relationship has often proved to be less symbiotic and more carnivorous, with creativity and independent ideas being slain by a culture of corporate risk management and quarterly profit margins. Despite all that, some publishers are better than others. Some offer services that you may be interested in. Some act in good faith and help you to grow your business. For us, Pinnacle, Ambrosia and Valve have been instrumental in our growth and have always been willing to negotiate contracts that work for both parties. Forging and securing these relationships has not been easy and this month I want to talk a little about how to negotiate good deals.

Now as always, there is a wealth of information available on good negotiation skills and so I am only going to focus on a few concrete techniques. In part I am doing this, because a good friend of mine – Caspar Gray – has already produced an excellent guide on pitching to publishers which he has kindly allowed me to post here. Read, digest and understand what Caspar has to say and you will increase your chances of an offer, but remember that sometimes what is on offer is a poisoned chalice, and you must consider carefully the value of a deal against what it will cost you. In any event, good business is about developing options and when you combine what Caspar has to say with the following top three IV techniques you are guaranteed to come out on top.

1. The Chapman.
Games conferences are sordid drunken affairs and you can be assured that The Mark will be drinking somewhere prior to his meetings the following day. Sadly he is an industry big wig and you are most definitely not on the list. A glimmer of hope emerges as you see a fellow developer striding confidently toward the bouncer. Stop the developer (Chapman) and reveal to him the plan. He goes forward shows his pass to the guard and befriends him with talk of “beer” or “the game” or “being stabbed” or some other topic of interest to your average guard. It is crucial that during this exchange the security guard sees Chapman’s pass. Chapman then returns to you and says loudly, “she’s not coming let’s just go in” whilst surreptitiously passing his pass to you. You then both approach the guard, Chapman is known and therefore admitted and you march in on his pass. Once in, go and befriend The Mark, but DO NOT talk about business – just give him a warm glow when he comes and sees you tomorrow. The Chapman.

2. The Mute
This is derived from an old journalist trick based on the psychological phenomenon that most people (especially when under pressure) hate silence and like to fill it with words. I was especially guilty of this, before I was taught The Mute and I once ended up giving the whole company away together with all our games for the next ten years in order to avoid the uncomfortable silence which my skilled adversary had orchestrated. The Mute is a simple technique; when The Mark makes an offer which is too low, or refuses to concede or asks for that which is too much you look him straight in the eye, and say nothing. After a while you can reach for a glass of water or pretend to make a few notes, but you must remain absolutely silent. After a period of about a minute The Mark will almost always crack and bend to your steely will. Remember that once a tide of offerings or concessions is flowing it must never be dammed – stay silent and reap the rewards. Although this is a powerful technique it must not be overused and you must always be aware of MuteLock. In this situation The Mark is also an accomplished Muter and you can find your self trapped for days in a silent battle of wills waiting for a crack in the armour and the first concessionary word to be spoken. The Mute.

3. The Vocab
Many vocations have a specialist vocabulary that is spoken fluently by the accomplished within it’s ranks. With the military it is acronyms, the legal profession enjoy Latin and the medics like words twice as long as the rest of us. During our short period performing negotiations within the video games industry, we have developed a short vocabulary list that may be of use:

“Why would you want to do that?” Derisive. Used to off balance The Mark when they have just spent ten minutes outlining their business strategy or game idea. Always have an answer to this question.

“Why would we want to do that?” Derisive. Used to off balance The Mark when they have asked you to do something – however reasonable – use immediately after the request has been made.

“That doesn’t really work for us”. Escalatory. Used to extract more money from The Mark.

“Up-side”. Metaphor. Profit.

“Royalty”. Lie. Pretend money downstream.

“Advance on Royalty”. Request. Real money, in my hand, now.

“Deductions”. Counter. Used to reduce “Advance on Royalty” to “Royalty”.

“Cash-flow”. Metaphor. Money that I want now. See “Advance on Royalty”.

“Acceptance and Rectification process”. Metaphor. Surrender creative control.

“Points.” Methapor. Percentage.

“Le Grande Fromage”. Metaphor. Boss.

“Flying Hamster”. Secret IV Code. Introversion HQ.

“SKU”. Bullshit game.


Example Given:

IV: Good morning, can we talk about the publishing contract for Multiwinia?

EA: Hey Introversion, good to see you in the bar last night, I didn’t think you’d be up this early but what a night! Anyway what can I do for you?

IV: We’re a little concerned about your offer for this SKU, from our point of view we’re not seeing a lot of up-side.

EA: Don’t be silly you have a massive royalty – the highest percentage we have ever given an indie developer. Come on IV, you know how hard we had to work for this!

IV. Sure, I thought perhaps we could drop the royalty by a few points and start talking about an advance?

EA. Could do. Could do. That’s not out of the realm of possibilities. We have a standard list of deductions, but there’s nothing serious in it, how much were you thinking of?

IV. Well we’ve taken an extensive look at our cash-flow, and we think 100k should cover everything.

EA: 100k? That doesn’t really work for us.

IV: <Mute>

EA: Well the problem is we just don’t have access to that kind of cash. We have another first person shooter clone in production, and the bosses are using up all the spare cash to finance that.

IV: Why would you want to do that?

EA: That strategy has worked very well for us in the past.

IV: <Mute>

EA: Look fellas the best we could do is 75k tops. How’s that?

IV: That doesn’t really work for us.

EA: Okay, I’ll chat to le grand fromage and see if we can get you 80K. How does that work?

IV: That could work. Let’s have a chat and drop us an e-mail later, I know you’re busy so I’ll let you get on.

EA <In private> They think they have won, but with that acceptance clause the game they end up making will be nothing like the one they pitched. Just got to hope their pesky lawyer doesn’t read the fine print.

==
<Meanwhile back at the Flying Hamster>

Alex: Jesus IV, have you seen this contract from EA? I don’t care about your advance they’ve got you by the short and curlies here. They can reject whatever you do for no reason other than they don’t like it! Next thing you know you’ll be drawing happy smiley faces on the Multiwinians!
IV: God bless you Alex Chapman of Campbell Hooper. Without you as our lawyer we’d be a gonner.

The above account is entirely fictitious and is based in no part on any persons living or dead. Any resemblance to any actual conversation is entirely co-incidental.


 

Games Magazines – friend or foe?
Posted by Chris on Fri Jun 13, 2008 9:54 am
 
The first magazine articles about Multiwinia should be in shops any day now, as we collectively dive into our largest and most comprehensive PR campaign to date. Vicky has really pulled out all the stops to make amazing things happen in the run-up to the game launch, and will shortly be hiring an assistant to help lessen the burden, bringing our total fulltime staff count into double figures. If by some freaky collision of calendars every single Introversion staff member and freelancer decided to work from the Flying Hamster on the same day, we’d have 15 people in the office at once. Not to mention blocked toilets, I’d imagine.

One of Vicky’s biggest achievements this time around was securing our first print magazine cover. We’ve been on the cover of a couple of industry trade magazines (anyone remember the cover of Develop years ago?) but this was our first consumer games magazine. This was a really big thing for us and a clear sign that we’d stepped up in the eyes of editors and readers around the world, and could now command the ultimate bit of promotional space for our latest game. Vicky dealt with the editors of this print magazine in good faith, and we traded a “World Exclusive Preview” of Multiwinia for the cover of their mag. A pretty good deal all around, and great news for us. We set to work and hired our graphics freelancer Morten to do a cover for us, and the results are awesome – even in this incomplete state. Imagine how cool and striking it would have been to see this in the shops.



Sadly, it was not to be. We came so close this time, but in the end the magazine changed their minds pretty late in the day and put something else on the cover instead. We really did everything right – we had the deal in writing, we spent a whole day with their writer showing him the game and talking with him, but in the end it’s up to the magazine to make the final call. We won’t go too far into messy details, but some sort of “editorial mixup” was involved, and you can read into that however you want.

We were a little bit upset by this, to say the least. Losing the cover was disappointing, but the far bigger problem was that we’d given them this one week long world exclusive period, so all the other print magazine coverage had been timed to come out a week later at least. Over the last few years we’ve built some strong relationships with certain games mags, particularly in the UK, and we’ve come to respect their writers and editors to a large degree, and this time around we told them they’d have to wait before they could print anything because of this exclusive. They were of course totally professional about it. But to have traded in some of that good will in order to get this magazine cover, then to lose that cover, leaves a nasty taste in all of our mouths.

But it’s reminded us why we respected those other games magazines and their teams so much – throughout this whole experience they’ve been very understanding of our decisions and totally professional – the kind of journo’s we love dealing with. And in Future we will certainly be dealing with them first.


 

Blog archive
Read and discuss older news in the blog archive

 

 

thinking . feeling . judgement . perception . sensation . intuition . extraversion . introversion