The two faces of Capitol

Posted by | Posted in Game Development, Pioneer | Posted on 05-09-2012

I MADE THIS! …and it’s awesome :)

Essentially I translated the old Achenar star system, and seat of the Empire, from the Frontier/FFE details into the system we use for Pioneer and placed it out at the real system “Achernar” upon with it was based (the names are interchangeable). It gives everyone who used to love the old games a bit of a buzz and it’s an interesting star system in it’s own right. Future modifications will give the star it’s correct bulge due to it’s rate of spin.

Just to be clear, there is no Empire faction with it’s seat of power here in the Pioneer-verse, this is just the system made to look like the FFE one and it’s located at sector (4, -9, -16) so it’s a long way to jump out to it.

Really happy whenever anything I’ve done makes it into the main trunk on Pioneer, it gives an overwhelming sense of achievement, even if it is only using some Google-fu, doing some simple maths and then a bit of typing.

One side is lit by Achernar, the other is lit by Achernar 9 (a brown dwarf sub-stellar object).

This should be available in the next Alpha build and probably in the nightly ones pretty soon.

September, still unemployed but happy update!

Posted by | Posted in Game Development, Life | Posted on 03-09-2012

So it’s been 2 months since I finished my last contract, well, 2 months and 3 days. It’s also now 3 months (+3 days) since I was last paid! Neither of these things is great news but I’m doing surprisingly well right now.

A quick recap just to get my brain in order:

*Sept->Dec (2011)* – Sony London (soho) studio worked on the Harry Potter Book of Spells using their new WonderBook platform, top secret at the time and I can still only mention that I worked on it. That was ok, frustrating at times as they were really hunting around to find the best bits so a lot of stuff fell on the cutting room floor. At the end they offered me another contract on more money beginning when I returned from sailing.

*Dec->Dec (2011)* – Sailed across the Atlantic with my Dad in a slightly broken boat! You can see the photos if you look in my photo archives. Scary, a bit dangerous but not too much – certainly seemed and felt dangerous at the time in places. Good experience, I can’t believe this is already 9 months ago.

*Jan (2012)* – Sony didn’t contact me before/over Xmas – total panic as I needed a job and thought I had everything lined up. Thankfully Rik had been trying to contact me about doing some mobile development for Android & iOS for his new company AppCrowd. This was interesting, I’d be able to work from home a lot and the pay was good enough, nowhere near Sony but not in London and working from home lots meant it was about equal. I took the job with AppCrowd.
Of course Sony contacted me a couple of days later and it was all down to a slight snaffu with HR etc, it’s always HR that screw things up but I’d made my mind up and stuck with the AppCrowd decision.

*Jan->Jun 29th (2012)* – The AppCrowd contract came to an end after a 1 month extension. In some ways I was glad because the publisher we were working for were becoming a real nightmare. It was like they simply had no clue about how to do game development despite being in the business for years before. I think they were just too used to being able to make big changes very easily in the older J2ME games. When the games get bigger and the resources required balloon you need to plan out those changes before work gets done on them or you end up paying multiple times for a single task.

*Jun->now (2012)* – the publisher decided to withhold payment for work done so they could negotiate a better deal, that meant AppCrowd don’t have the money to pay me for the work extra month of work I did in June…

So as you can imagine things are a bit tight money wise right now but they couldn’t be better on other fronts.

Danni is awesome, we went on holiday for a few days and did lots of Shakespeare related stuff (saw a play, visited museums etc), then she was away for 2 weeks travelling around Europe but I got her back this weekend :) she’s gone back to work (teaching) today which is a bit of a bummer as I’d have liked to have her around for a bit longer all to myself!

I have a new niece (see my photos) called “Poppy Isabella Lydiatt” who is, as babies often are, quite adorable. My other niece Amelia Joy is being a good older sister, she especially likes the fact that all of the babies things are pink because this means that she can be the boy and have everything blue… I’m buying her a Transformers toy :)

Also I’m actually getting interested in programming again rather than just doing it because I feel I must to keep my skills in shape, or for programming tests or indeed for work. Mostly this has meant doing things to which I’ve just been submitting various little patches covering some basic icon scaling and keeping the VC2010 project compiling etc. However I have also been working on the Factions code that I started months ago and it’s coming along nicely now.
In other coding news I have been working on the Syndicate level viewer and adding pathfinding too it and the GWEN UI etc but that’s gone on hold once more :)

…so there, end of braindump!

Of ripped assets and other painful metaphors

Posted by | Posted in Game Development | Posted on 07-08-2012

Time to speak of work and I haven’t been slacking off or wasting my time!

Last night I finally integrated the Gwen UI system with “the project” so it’s now even getting a bit of polish and usable UI rather than bizarrely assigned keypresses. There are some notes that I’d make about Gwen before you pick it as your UI of choice.

  1. Firstly I’m using it with SFML 2.0 pulled direct from the SFML git repository. That means I’ve had to make some changes just to get it to compile with it. These are documented on a number of different sites so I’ll probably upload a patch somewhere and try to document them on here in a separate post later.
  2. The Gwen solution for VS2010 is a classic example of an uber-solution. All of the projects are inside it for all possible libraries that it can build so if you don’t have Allegro or DirectX 2D available or in your global paths then you’re going to get lots of compile errors. A better approach might have been to have a number of different projects for each implementation but nevermind.
  3. This is very much an ingame psuedo-serious UI. It’s not for a HUD – though I’m sure I could twist it to do so, it’s providing MFC alike buttons, text windows, scroll bars and things like that. In this regard it’s exactly what I’m looking for and my impression of it’s abilities will probably change as I learn to use it.

So far it all looks very simple but powerful and I wish I’d actually gone through those minor hassles before now. I can think of a few older projects I’ll be integrating it with post-haste because they’ll look a lot more professional once I have!

Speaking of “the project” this is the one I’ve been reluctant to show screenshots of because I’m currently using ripped isometric graphics from a rather popular isometric Bullfrog game. It’s silly of me because eventually I think only the presentation will be isometric the graphics themselves will be 3D assets but I’m having to learn a lot of things that people back in the Amiga days just seemed to be aware of. I may be trivialising the work of those pioneers with that sentence but I don’t half feel stupid trying to work some of it out.

Ideally there’d be some set of these 3D assets lying around, I could integrate them now and modify the renderer to get everything displaying again. It’s a lot of work to look like you’re standing still but it’s a necessary part of the handover process from pseudo 2.5D to true 3D assets. Nothing is ideal though and my art skills have never been anything more than complete cack therefore I’m stuck with 2.5D and ripped assets for the time being. I can still get on with the system, audio and gameplay though oh and the ingame editor UI which is what the Gwen integration is for.

Broomy was talking seriously about quitting and going indie but needing a year long plan, so we spent most of an evening working out whether we can take “the project” further than my whimsical hacking. He’s actually more clued up about the whole thing than I am and would prefer to start smaller or use middleware like Unity or UDK which is very sensible but does have a learning curve we’d both have to get over. There’s also the issue of what else to make, we’re both talented enough to make some pretty cool little games, it’s more a question of: “What cool little game can two guys make in less than 3 months to start earning a tiny bit of money?” – this is actually quite trivial to answer if you consider the available markets, i.e: PC, Android or iOS. That answer is, none. Or less pessimistically: If 10,000 two man teams made a game in less than 3 months only one of those teams would break even or better.

Currently I find myself in the position of trying this by default since I don’t have a job, go me.

I’ve worked on and off on “the project” since January so it’s not exactly new but finding time and sustaining motivation is really tricky. it began as nothing more than a Syndicate level viewer. I just wanted to scroll around the maps a bit for nostalgia. Then I started exporting them in a more flexible and editable format, then came the different palettes, then dissecting the level construction, then the level collision etc. Now it’s becoming… well “the project”. The Syndicate-level-viewer origins became a bit of a hindrance a little while ago but only in a few minor ways, that’ll all fade away soon. Mostly though what I’m doing is just fun now, something I enjoy going back to work on each day.

Working on this has another benefit, it’s reminded me that I need to focus more, to work on just one thing at a time: Do one thing at a time and do it well.

I’ve lost track of the days!

Posted by | Posted in boris, Life | Posted on 07-08-2012

We all knew it would happen eventually but today I officially lost track of what day it was. This is doubly worrying since my birthday (33, woot!) was only on Saturday the 4th, but here were are on Tuesday the 7th (thankyou calender) and until I checked I hadn’t a clue.

This is the inevitable results of not having worked for so long (about 5 weeks and counting), there’s no regularity, no rhythm or pulse to life to separate the days out according to some greater plan. I think I’ve managed to go so long with that pattern externally enforced thanks to Danni. Being a primary school teacher means that she’s got a very regular 5 day working week with a 2 day working weekend. It forms a good beat to time life by. Of course now its the summer holidays and that’s all gone out of the window and with it any sense of the passage of time aside from how bright/dark the sky is. NB: currently grey.

As an aside I’m currently watching Boris, our pet adult bearded dragon, pace back and forth along the skirting board the runs alongside the sofa. I’m not sure why he keeps doing this but the last few days he scratches at the glass of his vivarium to be let out, then proceeds to skrat around along this skirting board (its right outside his vivarium) then when he gets cold he goes back inside to warm up. He’ll repeat this several times. There’s an entire ground floor that he could go and explore, and he usually does instead of this – in fact he did it most of this morning, but just recently it’s all about the skirting board. Bizarre lizard, wonder what’s actually going on inside that tiny mind of his.

Ebay( has been saving my finances this month, though not as much I’d hoped. Firstly I did well selling off an older phone for as much as I had originally paid for it, yay! Then I tried to shift my Samsung Galaxy S2 (/S II), that one I ended up selling for £75 less than I paid for it, but that was 6 months ago and since then they have released the S3 so it’s not too bad. I just feel dumb for not selling it sooner and limping on with a dodgy phone.

I now have a HTC One S on contract with Orange. Initially I was nervous of going onto a tariff + phone contract again but in hindsight it makes a lot more sense, even financially, for me. If you can afford to rush out and buy the latest super-phone outright then great because you can end up spending a bit less than going on a contract… in my case it would equate to a massive *insert-drumroll-here* £25 saving over 2 years!!! Woohoo, wow £25 I’ve been conned out of with my contract, what a sucker I am. Yup really it’s only £25 difference. I was amazed when I did the maths, so was the guy selling it to me actually :D he then threw in one of those crappy “care kits” that they charge £49.99 for for free so right now I’m technically up on the whole deal. Of course then my contracting job ended which wasn’t great timing but nevermind.

Switching into discussing work next so I’ll separate these posts.

My weak C++ is overkill.

Posted by | Posted in Game Development, Life | Posted on 30-07-2012

In the space of the last two weeks I’ve done a few programming tests, travelled down to Oxford for an interview + test and failed multiple times.

The feedback has been consistently inconsistent. Having failed at one test due to my approach being “overkill” and focusing too much on the technical I decided that it needed a bit more work and another approach implementing that was a little more bare bones. Then when the Oxford based studio wanted an example of some code I reused that “overkill” code for this purpose. This time apparently my C++ was “too weak“.

At this point, and over £90 down on travel expenses which will never be reimbursed, I’m feeling a little out of sorts with the whole process. Previously I’ve been head hunted by other companies, I’m still one of the first people that our old CEO approaches when he needs a coder and whilst everyone has something they don’t like about the way I code they still tell me that they’d happily work with me again.

So what’s going on?

Maybe I just don’t fit that eminently employable mold that everyone seems to be getting squeezed into lately? No, well “yes” but it’s not quite that simple. I don’t have a great range of demos to show people, or a large volume of finished projects. Mostly my spare time coding is learning about a single thing that doesn’t really add up to what you’d call “a demo“. The titles I’ve worked on are usually my demos but recently EVERYONE has insisted on seeing production quality code. By “production quality” I think they’re actually meaning some kind of aspirational coding quality that I’ve yet to see in real game code but we all know what they want anyway. I don’t have the code for a lot of projects, and even if I did it’s under NDA as far as I’m concerned. I don’t go around showing people the code from other companies projects because it’s not mine to show.

Of course there’s always the “coding test“; the ultimate independent arbiter of a programmers ability! There’s no better test than seeing how they solve the old point-is-inside-a-polygon with pen and paper to really tell you what kind of a programmer is sat before you! Maybe instead it’ll be something almost 20 or 30 lines long with a couple of functions just to see how they cope, or my new personal favourite; the whilst ski-ing with your new co-workers which route do you take semi-psychological question. Yay! Shame that “bury their corpses in the mountain snow for giving me this stupid test” wasn’t one of the possible answers.

What a fucking ball ache, plus a massive waste of time. They’re like any bloody test, they tell you how good the person sat in front of you is at that test and that test only. Not what they’re coding style is, not how quickly or well they can change that style to match your companies Byzantine preference, it doesn’t tell you how they learn, adapt or take criticism of the approach they’ve used. It doesn’t help you see why they have those recommendations on LinkedIn (Did they ask for them or were given? Who are those people to you friends or just co-workers?), what they’d like to learn more about or where they’re weak.

My personal experience is that I seem to be getting filtered out at a lot of these tests, even for companies where their whole game is less complicated than a single feature I’ve worked on for other titles. Apparently all those years of experience don’t matter because they don’t like the style I used to answer an arbitrary test question on a sub-subject that I haven’t needed to look at since the second year of University over 10 years ago… I still answered it and in the last interview I even got praised that I’d taken the correct approach to solving it!

What seems to happen is that I fall foul of these tiny tests that stretch some irrelevant scrap of knowledge or practice and that’s it, test over, interview failed. For the bigger tests, the tests you can do sat at home, I’m either going to too much effort (wtf!?!) or I’m just not hearing back from places, at all.

These places aren’t Valve, Sony, Microsoft, BioWare etc. No, I’m falling flat on my face with over a decade and a half of programming practice and 9 years in the Games Industry for companies making mobile phone games who have development teams of over 140 people. We did MotoGP 10/11 for Xbox360 and PS3 (and an internal PC version) with less than 50 and I wrote major pieces of core functionality and gameplay for those damned games.

Does that make me the best coder I know? Good grief no, I’m average, sometimes I’m better than the next guy, sometimes I’m worse, frequently it depends on the task at hand. If you want to wait on finding that super-coder-from-the-year-3001 then just say so but don’t expect to hire him for as little as you’re offering me.

The upshot?

I’m tired, I feel a little beaten up by this application and interviewing process. I wish I could hit pause, get a cuppa, tell everyone to fuck off… and quietly turn 33 years old on Saturday 4th Aug (I’d like a career change this year please!), returning renewed, ready … and tell everyone to _really_ fuck off because I’d rather go Indie than work for most of these places that I’m applying to. Sadly this on-again/off-again relationship I’ve had with contracts and work post-Monumental-Games-Ltd has meant that I have absolutely nothing left of savings, and since I haven’t even been paid for my last bit of contracting(!) I am pretty screwed this month too.

This isn’t a very satisfactory ending to this post because this isn’t some story with a conclusion, this is just my life recently.

I thought being unemployed meant having nothing to do! (+ Birthdays!)

Posted by | Posted in Game Development, Life | Posted on 16-07-2012

The title is a little white lie, I don’t know anyone who finds being unemployed relaxing. Everyone I know is always running around trying to find more work.

Take the last few weeks for example: I’ve had several telephone interviews, written hundreds of emails, updated my LinkedIn profile, written a distance field ray marcher as a demo (over a two week period), done two technical tests – one taking 1hour 30mins the other spread over 3 days, started a company (Red Sail Games Ltd) for my own titles (if I EVER get the time to work on them), travelled to York & Scarborough to visit family and friends then rush back for an interview and then had Mark & Linda and 2 year old Layla stay for this weekend just gone, not forgetting that I’ve also had a minor bout of insomnia for the past week or so, also just been chasing agencies about work in fact in another window I’m just writing another email to one!

I am completely exhausted, as I sit here typing my left eye is actually twitching and aching! Odd.

So of course today I am also working on improving the program I wrote for the technical test that I’ve just spent 3 days working on. This is in case they come back and either want to know more or actually get me down for an interview. I may also use it just as an example that I can point people to since it can be used as a generic “map” implemented as a Red-Black Tree which doesn’t depend on the STL. There’s so many more things that I can do with it and I want to explore some of the options without having to keep it tied into the test framework that they sent me it in.

Oh yes I keep meaning to mention this too: BIRTHDAY(S)!!!

This year Danni is turning 30 on the 14th August, yes I know it’s hard to believe however -> I am also turning 33 on the 4th August and since we will be away over the weekend before Danni’s birthday and the day itself we’ve decided to do some combined celebrating on/around my birthday.

What this means is that there will be … a “thing” happening on Saturday the 4th August… as you can see, this has been carefully thought through. There may actually be a couple of days of celebrating this year just to spread things out a bit due to the bad weather. There might be a party however and probably a day out somewhere. I guess this is more warning than information :)

The other thing to note is the peramlink to this post… which is number “1234” ;)

I fail at festivals.

Posted by | Posted in Uncategorized | Posted on 09-06-2012

Today I feel old and a little disappointed in myself.
We got tickets to go to Download Festival a while back and we went yesterday, I even took the day off work.
Now I’ve never been super-comfortable about being at festivals. It’s the people. I get seriously overwhelmed and with so many stoned, high and drunk people around I’m constantly on edge, I usually deal with this by getting drunk myself and fitting right in. Except that this year I’m trying to drink less so I didn’t drink anything yesterday.

I was variously bored, nervous, tired, cold and totally failed to be interested in almost any of the bands playing with the exception of Lawnmower Deth and Devin Townsend Project at the end of the night. There were some good bits, I got to see some people I haven’t seen in a while, and the above two bands.

The highlight though was when we left at the end of the evening, I was suddenly almost giddy. Happy to be heading home and away from it all.

So come this morning I got up eventually not wanting to face going back, showered and got dressed and I just felt like I wanted to be anywhere but go back there and all those people and all that crap and boredom.

So I haven’t gone back today, and I don’t feel like I’ll be going back tomorrow either.

Dear Hollywood, there are no “big questions”.

Posted by | Posted in alien, aliens, evolution, film, movie, plot | Posted on 05-06-2012

Dear Hollywood,

There are no “big questions”, space is interesting in and of itself, Evolution cannot be “proven wrong” or to quote:

“Certainly, it makes an argument that will move away Darwinism, let’s just say!”
Logan Marshall-Green

More than that though, the “big question” of where we came from, isn’t a big question that needs any more “answering”, prodding, poking or jibbering on about with pseudo-scientific crap and Evolutions predictive usefulness is neither in doubt nor will it get somehow less accurate based on us learning something new. It’s like discovering the Earth isn’t flat but is instead a sphere, once you’ve discovered it there’s nothing you can learn that will flatten it again, you can only progress forward learning that it’s not a perfect sphere, how the weight of the ice caps and rotation affect it’s shape, etc. Knowledge is progressive. Besides which if we did discover that we were put here by aliens the theory of evolution would still be a valid Theory! Theory with the capital ‘T‘, the scientific Theory kind, the one where it’s a Theory because it has a testable and repeatedly and independently verified hypothesis that affects many disparate fields of science and just keeps working and getting more and more refined.

It could turn out that Bill and Ben the flowerpot men are actually time travelling planetary germinators who created all life on Earth and then started the clock ticking in 1952 and just really liked being on childrens TV for a bit so hung around and even in that case Evolution would still be a valid, testable and verifiable Theory with useful purposes in modern society!

Also, that would be a better plot than Prometheus has.

I feel this all of needs repeating since Prometheus appears to have based everything around the creation of man as being some separate, wonderful and distinct event perpetuated entirely by alien beings for completely mysterious reasons. That it did this at the expense of being a good film is a real shame because there are lots of amazing and interesting things about almost any possible alien species that have been extensively covered in literature for the past couple of hundred years which Prometheus decides are far less interesting than the tired old tripe it chose to rely on.

I found the film good, but disappointing. Good because the acting was solid, including some stand out scenes from Michael Fassbender – as David he really is the highlight of the movie actually, with a lot of awesome CG work and some obviously great direction. Disappointing because the “plot” is so tissue thin that it’s genuinely pathetic. Some places are saying that it cost ~£85 million to make, of which the plot must have taken… oh, £3.50 for the Starbucks coffee where it was scribbled onto a napkin. Everything, and I mean everything proceeded with total predictability. No surprises, no shocks except the odd thing jumping at the camera etc. Very derivative.

Who ever thought I’d have to call an Alien prequel directed by Ridley Scott: “Derivative”. Madness. Each character played their role just as you expect them to, complete with sentiments, sacrifices and wise cracks just when, where and how you’d expect them to be delivered right on cue with the major events in the film. Going in I couldn’t have guessed what the plot and storyline would have been, but within 10 minutes of the start you could have stopped the film and I’d have told you the ending correctly.

That’s not me being awesome, that’s the film being predictable.

Why not actually surprise the audience? Sure follow some star map found in caves that point to a star system 39 light years away, find something horrible, but how about it having nothing to do with mankind? Why try to make us “special” instead of just another thing in the universe, have the damned aliens find the very concept funny, most of us do! Have them be terrible, have them be enlightened beings, have them fallen from such heights, have them be machines or beings that have abandoned physical form, have them be near gods in their abilities and cruelty just so long as you have them be interesting instead of having them be (very human) people in funny wiggly looking spaceships.

Whilst I’m here asking for the unlikely and improbable, how about also having SPACESHIPS actually use their engines to slow down and maneuver, y’know, turn them around, or turn the whole ship and slow down. Constant thrust in one direction does not make you slow down, it makes you go faster in that direction, so if you’re pointing at a planet you will tend to smash into it very quickly. We can manage that on Pioneer you can even take the code if you like! It is open source.

Anyway, Prometheus – worth seeing I think, for the Fassbender and Rapace performances, also there’s some cool graphics so just set your expectations really low for the plot and then turn your brain off to make really sure.

Tense? Nervous? Angry? Well then…

Posted by | Posted in Game Development, red ship | Posted on 27-05-2012

Tense? Nervous? Angry? Well then I guess someone’s demanding that you commute to another city so you can lose precious hours of working time to sit in on meetings that won’t help you, answer the questions of idiots who’re hindering you and generally make no progress on the complicated research task that they’ve given you which involves an unfamiliar build system using two different languages which you don’t know.

I am sat here cross legged on the floor before my PC honestly wondering if keeping this job for another month is even remotely worthwhile. The rational part is of course saying that I’m skint, the rest is wondering if another months pay is worth several years in prison for murder(/though obviously I’d plead diminished responsibility and accept manslaughter!). No I need the money, I have the mortgage, Danni wants to do things this summer and I’ve heard nothing back from any of the places I’ve sent my CV off to. On which note actually after all of the talks they’ve had it might be extended… by 1 month! Woo, 4 extra weeks.

That’s worthwhile I guess, as I’ll keep looking and leave at the earliest possible opportunity that presents itself. Not only that but I won’t find out until next week which is *drum-roll* my last week! What a complete clusterfuck.

We’ve got no design that’s worth a shit, nor have we had for the last 5 months, no real management or production, no leadership, no art or scheduling, constant re-design… I realise it’s hard to have re-design without design, perhaps re-whimsical-direction-and-arm-waving is a more accurate description.

I maintain that game development is not really that difficult for the most part. You define your desired goal, you plan the steps that get you from where you are now (having nothing, or maybe already having some tech) to where you want to be. Then you divide up that plan into workloads for people, try to figure out dependencies between tasks, identify risks (wherever and whenever that’s possible), sort it all into you’re preferred organising method, then you get on with it. Shit will hit the fan along the way but at least you’ll know where you’re supposed to be going even if you don’t quite get there you should get most of the way.

I still after 5 months am not sure what this game we’ve been making is really all about! Or how it will play, what the end goal of it is, how we define success or failure, anything! I know what it currently does and I vaguely understand what my current task is, but that’s all. That’s a pretty damning failure isn’t it?

On a different tack entirely, I’ve started work on something that Duncan suggested which I’ve tentatively called “red ship” thanks to this Rainbow Codes name generator implementation :)

It’s beyond early days on that one, I don’t even know where it’ll go yet… well, not quite true I know the inspiration for it was one of the games we’ve overplayed beyond all sense or reason, what I mean is that I don’t know where I’ll take this game eventually. Hopefully though it’s small enough to be able to release in a reasonable timeframe. We shall see I guess.


I can’t get no…

Posted by | Posted in Game Development | Posted on 23-05-2012

…designs from our lead designer. This is fairly typical of how things have been going recently but it’s still frustrating and not something I’d like to encourage.

There seems to be a bit of myth surrounding the interface between designers and coders. Mostly it’s in the form or what the designer needs to give to a coder to have that coder realise their magnificent vision. I can’t share any of the wonders I’ve received as “designs” over the years but the anecdotes about me wandering over to the design department, dragging over a whiteboard and then “educating” them at the top of my lungs are not all that exaggerated.

Currently I’m doing a lot of UI work, so I’ll try to break this particular area down but most of the concepts are quite simple.

Firstly, I do not need a large design document, these steps should not be a massive undertaking for the most part. Some things really are very simple and can just be explained with a little picture and a sentence or two.

Adding a health bar for example, might require nothing more than a little picture (for something this simple even the picture might be optional) and a description of where you want it placed (“in the top right about 10 pixels in from the top and edge” – although this should be controlled in data anyway), how you want it displayed (“Can it animate smoothly into place? And can it pulse and turn red when it gets below a value X?“), if it has any art assets associated with it (“Timmy hasn’t got any art ready yet, can you put in some placeholders and he’ll overwrite them?“) and then anything else you think is valuable like the details of how health depletes – perhaps the health bar will flash and then the bar will go down in two parts, first an inner part drops rapidly, whilst another deeper shade of red behind it smoothly reduces to the new value.

There you go, we all know what a health bar is in a videogame, so it’s fairly easy for us to picture it mentally and extrapolate from such a basic description to what we would hope or expect to see. There’s probably enough for me to work with there.

For more complex UI elements you really need to just go into as much detail about each of the elements that makes them up. Describe what happens when you press a button, or select something from a list. How does the view change? Where do the values you can see come from? Is that a custom view of it that I’ll be getting from Art or is it just the ingame sprite? It might seem like a lot of work to spell out what each button does, but it’s nowhere near as much work as I’ve got to do to write the code and if I’ve connected it wrong, or it does the wrong thing like buying something instead of displaying another window then there’s more work that will have to be done to correct it later. Time spent explaining what things do is less than the time spent later to correct it + the time wasted doing it wrong the first time.

The more information I’m given, the closer I can get to the thing the designer wants me to make. That’s why I get super-annoyed when I’m given a picture that has lots of buttons, lists, icons, strings (text) and numbers with no bloody description about what anything does, comes from or what value they might have. Sometimes I’m given, as recently in fact, a series of pictures which apparently form some kind of set of states that a screen might be in. These are once again, undocumented in any way which means that I have to spend my time trying to extract meaning from pictures.

A picture might speak a thousand words but that doesn’t make the thousand word description optional! It’s description & picture or description! The picture is the optional part!

Now I’m working on “Implement Flurry Ads“, that there is the entire description – the whole design. Yep, nothing about where, nothing about which part of Flurry (I’ve extracted the info, at great length, that it’s the Rewards not the Ads they want), nothing about when they should be used, how they will be displayed. Nothing.

This is what I like to call “shit-in = shit-out” design.

Write down the following when you’re doing a UI design – I’d argue it’s generally applicable but I’ve never actually encountered a good design so here’s hoping the comments will prove useful:

  1. Write down what you want to see,
  2. How does this thing appear (does it slide on, fade in, always there? Are there sounds?),
  3. What information will they see (Item names, costs, descriptions)?
  4. Where does that information come from?
  5. Think about what the player will want to do with this thing,
  6. Describe the player DOING what they want,
  7. Describe what happens when they do it (pressing a button, dragging an icon, pressing back button etc),
  8. Maybe this is very visual will a picture help? (NB: a picture is ok but some studio create flash animations – this is VERY common),
  9. Iterate – i.e. go over the above a few times and imagine (eg: using your imagination) being the player using what you have so far created. Does it work in your mind? Is something not clear? Do you need to explain something more? Did you miss a bit?
  10. Now before you rush off to give this to your coder have you used something that isn’t in the UI library or doesn’t exist anywhere else? Is it going to require some custom code for your new super-shiny-3D-car view that almost definitely isn’t in the plan because you only just played the latest Halo and now your game MUST have 3D everything even in the UI despite it being on a PSP (Thankyou Outrun2006: Coast2Coast I dedicate this rant to you) and when you ask for it will your coder give you that look, y’know the one, the one where you see the words “Coat-hanger” and “spleen” scroll across their vision like an Amiga cracktro?
  11. Ok, by now you should have a description, just a line or two, for every element in the accompanying picture for your UI design – it’s probably safe to give it to your coder.

1 of 3 things will now happen:

  1. 5% chance = If you have done well your coder will take your design, smile, thankyou for the design and then go away happy and implement it,
  2. 95% chance = The coder will look it over, ask some questions, ask if you really need or want something, argue about one or two things (You really need two rows of super-shiny-3d-cars even though they won’t fit in memory and we can’t render them there yet? Grrrr) then they’ll accede and go off to implement it,
  3. They will look at you, the words “Coat hanger” and “Spleen” will scroll across their eyes – You. Are. Fucked.

#3 will only happen if you’ve skipped the above steps, or asked for the physically impossible – please follow the steps, at least as a basic guide. You can add more, please if you do, do tell me! Just don’t do less than the above, I’m running out of coat hangers… and designers.