Busy month…

It’s been quite a month for me. I’ll start with the ACCU conference in Bristol, April 21st to 25th.

The ACCU is the Association of C and C++ Users, an international body with largely European membership dedicated to professionalism in programming as well as the discussion of C++. Each year the conference collects some of the best names in the field for a five day exposition of what’s new and useful in the field. I went for the first time last year and found it a truly valuable experience. This year I decided to present: I took my colleague Tom Miles (@teknogrebo) with me and we discussed how we ported Total War: Rome 2 to OS X on the Mac. We spent quite a lot of time polishing this beast for a 90 minute slot but we ran out of time during delivery: we still had another 20 minutes of material when the session expired. View it here.

I didn’t attend the first day: this is set aside for tutorials and I didn’t see anything I could justify leaving my work for. In the remaining four days my notes list four keynotes and 11 talks. Here are my top five.

Marshall Clow told us all about hardening your code and introduced a series of sanitisers for Clang which I would like to wind in to the TW continuous integration process. In summary, he repeated the familiar mantra of version control, testing, compiler warnings, static and dynamic analysis and fuzzing. He also mentioned The Game Outcomes Project, which is well worth a read and you can find on Gamasutra. Marshall has posted slides for his talk here.

Olve Maudal didn’t do a C++ pub quiz this year (awwww…) (one day I’ll tell you how I made an utter buffoon of myself with Howard Hinnant, whom I didn’t recognise, on my team) but he did give an excellent talk on the History and Spirit of C and C++, which was a fine piece of industrial archaeology. His slides are here (and an alt is here).

David Sackstein gave a talk on coroutines. This is a hot topic right now, with several proposals making their stately and sedate way through the standardisation process. C# and Python have had this sort of thing for a while now, and it’s about time this paradigm was formally introduced to C++. David crammed a massive amount of content into 90 minutes and I recommend grabbing his powerpoint slides here. I tweeted about the richness of the talk at the time.

Chandler Carruth gave a talk on efficiency and performance through data structures and algorithms, carefully describing the difference between efficiency and performance and looking at power consumption and computation per Watt. The issue of discontiguous data structures being the root of all evil was covered (it’s the cache that kills it). We’ve known this in game dev for ever but it’s good to get it out beyond our little coding ghetto. No slides I’m afraid, but there is a version of this talk available on YouTube.

Dietmahr Kuehl addressed asynchronous operations, providing an interesting contrast to David Sackstein’s talk. He went into some detail about the multiple proposals on the table, N4397, N4398N4402 and N4453; described continuation functions, callbacks, completion tokens, all manner of coroutines; and left me feeling that this is a massive area of progress waiting to be made. Slides here.

Honourable mentions to Kevlin Henney’s many ways to write FizzBuzz, and Jonathan Wakely for an absorbing talk on ABIs.

See you next year!

Develop 2012: Am I helping make Bentleys now?

I love living in Brighton and Hove, and many organisations love having conferences here. July 10th through 12th saw the Develop conference roll in to town. This is the annual game developers get-together in the UK, filled with delegates of all disciplines from many companies.

The theme that seemed to run through the whole event was the huge upsurge in indie game companies. I’m not really sure what indie means; I’m guessing it’s a reference to the indie music scene of the 80s: such companies are small, run on a shoestring budget, are not attached to a publisher and are making original games (not shooters or racers). Since they’re small, many of the personnel carry out more than one role; coders may do audio tasks as well, artists may assist with production. However, your mileage may vary. There’s no stated upper limit to the size, but at some point you are no longer indie. I’m not sure where that is: when you have more employees than founders, when you have a regular publishing schedule, when you have a marketing budget, when you have a five-year plan: all of these things accompany a growing company.

What I do know for sure is that I don’t work for an indie game developer. I work for The Creative Assembly developing the Total War franchise for the Windows platform on PC: we have over 200 employees, the founder sold to SEGA a few years ago, we have distant plans, we have an HR department and an operations director and we just dropped a ton of money on an awesome live action trailer for Rome II. We are one of a few big game developers in the UK: conversely, there is a swarm of indie devs. By number of titles, indies dwarf “AAA” (whatever that means) releases. By turnover, it’s probably the other way round. Nonetheless, I am reminded of the luxury car industry. When cars were the preserve of the wealthy, they were hand-made items of excellence. As more and more drivers joined the market, cheaper and cheaper cars were made and the luxury car business served a shrinking market.

PC game devs are familiar with the elderly notion that the PC as a games platform only has a couple of years left. I remember hearing that back in the 90s. The end of AAA games is another canard. We still have luxury cars, and I’m prepared to bet that there will always be demand for AAA games on console and PC. Indie devs will grow and stop being indie, bringing new IP to life and evolving a fun new idea into a AAA title over several releases.

There’s been a lot of speculation about the next console generation being the last. I wonder if there may be more to that: services like OnLive eliminate the need for expensive hardware, and consoles like Ouya highlight the redundancy of expensive hardware when it comes to good games (I hope so anyway: I also hope that you won’t be going “Ouya?” if you read this in two years time, although Android on a TV doesn’t seem at all far-fetched which seems to obviate the need for Ouya altogether). However, services will keep Microsoft, Sony and Nintendo running for a long time to come. Indeed, software-as-a-service seems to be the model for not just indie development: games and consoles become trojans which lure you into a service subscription. A couple of pounds a month is nearly invisible, considerably less visible than 60 pounds. When Samsung decides to sell a compelling yet optional service with its TVs, squaring up against XBoxLive, I think something interesting may happen.

I saw some great talks this year. I’m focusing on education at the moment: I have an eleven-year-old son who is showing nascent interest in programming, and I am also responsible for recruitment and our intern programme. Jon Weinbren’s talk about the games design and development course at the National Film and Television School was inspiring, and I think the indie scene and tools like Unity do finally make it possible to produce good courses. I continue to be excited about the Raspberry Pi; I have one, and my son has looked upon it with curiosity, and David Braben continues to fill me with hope. The runtime recompilation of C++ was intriguing and I look forward to seeing that integrated with LLVM and CLang. I also look forward to trying my hand at developing some tools in HTML5.

I spoke this year on Being The Coding Manager. More on that in future posts. Develop is always a blast: hope to see you next year.

Opening the gates

Hello, and welcome to my garden. At time of writing, I’m the coding manager at The Creative Assembly, focusing on the Total War franchise. I write software for fun and profit, practice and teach Tai Chi, play a variety of keyboard instruments, help raise a son, and live in the glorious city of Brighton and Hove. Hove actually.

Software is the thing I spend most of my time on, so I expect most of my posts will be about that. However, expect a few things from left field.

I hope you enjoy the read and the ride.