AltDevConf is an online community-driven conference that will take place February 11-12, 2012

We aim provide free access to a comprehensive selection of game development topics taught by leading industry experts, and to create a space where bright and innovative voices can be heard.

Q: What is #AltDevBlogADay?

#AltDevBlogADay is a group of game developers and otherwise interested people (generally found on Twitter), ranging from experienced devs to students and educators to hobbyists, that want to blog more regularly. An idea inspired by iDevBlogADay.

Q: What do/can the developers post about?

Our peeps will post about anything they think might be interesting. That can vary from the extremely technical to the very high-level. It can be specific to their experience in game development, or simply a marginally related topic of interest. Basically we post what we think is interesting. And hopefully that's interesting to you too!

Q: How can I participate?

If you're a game developer (or related) and want to contribute, contact @mike_acton on twitter or email at

Also see: #readme (for Writers)

Q: Can you slow down the rate of posts? I'm having a hard time keeping up!

Nope. It's not live TV. You don't have to read it as it's written. You're welcome to read the posts at any rate you like. It's the nature of the internet that more information is generated than you could possibly consume. I suspect there are Wikipedia pages you haven't read either. ;)

OpenGL ES 2: How does it draw?

UPDATED 24/09/13: Added some essential details to the class files at end of post, and corrected typos

UPDATED 24/09/13: Added Github project with full source from this article

December 2013: I’ve converted the sample code from these articles into a standalone library on GitHub, with the code from the articles as a Demo app. It uses the ‘latest’ version of the code, so the early articles are quite different – but it’s an easy starting point

Read more on OpenGL ES 2: How does it draw?…

The technical interview

This post will appear (slightly lenghtier) also on my personal blog,


I’ve had in my career the pleasure of working with a few different studios, seeing a few others at work and talking with people from many more. Of course after a while of this experience you start wondering what’s “best”, or at least, what’s good and bad, the science of making great games.

Read more on The technical interview…

Git Off My Lawn – Large and Unmergable Assets

I posted up the Git talk myself and Andrew Fray did at Develop 2013 and mentioned I’d have a few follow up posts going into more detail where I thought it was probably needed (since you often can’t get much from a slide deck and no-one recorded the talk).

Read more on Git Off My Lawn – Large and Unmergable Assets…

Accidental Journalism: Tracking Game Industry Layoffs with

As in any industry, layoffs in the games business are an accepted reality. Anyone working in development or production today is acutely aware of the tumultuous state of games as the dominance of consoles gives way to a touchscreen-driven order, as the costs to produce triple-A titles climb higher into the stratosphere, and as the first major console transition in seven years quickly approaches.

Read more on Accidental Journalism: Tracking Game Industry Layoffs with…

GLKit to the max: OpenGL ES 2.0 for iOS – Part 1: GLKit Features

Apple uses OpenGL extensively – their 2D desktop libraries (Quartz, CoreAnimation) are OpenGL-based, and iOS has inherited that link (along with some funky tricks you can pull).

December 2013: I’ve converted the sample code from these articles into a standalone library on GitHub, with the code from the articles as a Demo app. It uses the ‘latest’ version of the code, so the early articles are quite different – but it’s an easy starting point

Read more on GLKit to the max: OpenGL ES 2.0 for iOS – Part 1: GLKit Features…

Code Build Optimisation Part 4a – fatal error LNK1170

If you previously followed Code Build Opt Part 4 then you have yourself a fantastic project that incrementally links and everyone is happy… there is a gremlin in this machine however.

Before we continue I should note, this primarily affects Microsofts link.exe (and thus lib.exe) but has also been seen in other commandline archive apps that one might use during development of current gen games (ar.exe for instance).

Read more on Code Build Optimisation Part 4a – fatal error LNK1170…

The main loop in Devil’s Attorney on Android


Android OS is filled with undocumented behavior and quirks that are taught the hard way; by discovery and by experience. Once you start playing around with the NDK, OpenGL and Android lifecycle events in multiple threads, things can become real hairy.

Read more on The main loop in Devil’s Attorney on Android…

An introduction to: Go[lang]

I think it’s valuable for game developers to know of a broad range of programming techniques and tools, and programming languages are one of our fundamental tools that strongly dictate how we phrase answers to the problems that we’re solving. With this in mind, I’d like to introduce Go, a language created by Google mainly for creating web services.

Read more on An introduction to: Go[lang]…

Simplex Update #1: Extreme modularization with CMake and Git

This is the first update on my Simplex Engine Journey. The first topic I want to talk about is modularization.


One of the most important aspects of my engine’s design is modularization. Engines are usually big in terms of classes, dependencies and systems; that’s why a modular approach made sense for me.
From my previous experience working on Moai SDK, a monolythic git repository that includes all the different systems (being modular or not), and third party libs becomes really huge, really soon.
That’s why I wanted to solve that problem for this engine.
There are two different problems to solve:

Read more on Simplex Update #1: Extreme modularization with CMake and Git…

Finding nearby stuff

A problem that crops up quite often in game programming is the need to find stuff that is “close to” other stuff. For example, you may want to find all enemies close to the player, all treasures close to a goblin, etc.

Read more on Finding nearby stuff…

Management Lessons from Dumbledore

I’ve been reading the Harry Potter series of books to my daughter as a bedtime story. It’s been over a year now, and we’re still only on book six! But while I read a few pages to her in the evenings, it strikes me that Dumbledore is almost certainly the type of manager I’d like to be. I may not quite have Dumbledore’s bohemian charm, but I can definitely study his techniques.

Read more on Management Lessons from Dumbledore…

Confessions of a failed indie developer

At the Develop Conference in 2011, Sean Murray of Hello Games was the keynote speaker for the Indie Dev Day. One key point he made was that we hear a lot about the successful indie developers, but barely ever hear from those who failed in the pursuit of their dream. This is my story.

Read more on Confessions of a failed indie developer…

Git Off My Lawn – Develop 2013

Recently myself and Andrew Fray (@tenpn) presented “Git Off My Lawn” at Develop 2013 in Brighton. The talk was designed to discuss how we took a Perforce centric development process and moved over to one centred around Git and a Git based branching work flow.

Read more on Git Off My Lawn – Develop 2013…

What documentation?

Imagine a situation where you have just been employed by a game development company with a large code base. You might setup your computer, adjust your chair, get some coffee and then start synchronizing your source code repositories. This might take a long while so you decide to take a look at the company documentation while your downloading. So you roll up your sleeves and start digging. You dig and you dig, but you just can’t seem to find anything useful. Puzzled you go to ask either the CTO or the technical director whether they would have some information as to were the documentation is lurking. So you enter the room of either person and candidly ask your question, only to be met with a blunt answer stating that there is none.

Read more on What documentation?…

The Trouble with Tickets

If you work with a big company, chances are you’ll have to deal with a ticket tracking system. They’ve become a critical part of IT helpdesk operations, of scrum and agile teams, of collaborating with remote teams, and pretty much everything. But tickets can lead to development paralysis, especially when they’re used to drive a Scrum/Agile team – so let’s talk about ways to deal with ticket overload.

Read more on The Trouble with Tickets…

Data-driven design with Unity 3d, Part 2 – Server design / API and assumptions

As mentioned previously, I’ve started fleshing out the backend for the server that I’m looking to build for my ongoing experiments.

Let’s recap the key points:

Read more on Data-driven design with Unity 3d, Part 2 – Server design / API and assumptions…

These Leadership Flaws Must Be Stopped Before They Eat Tokyo

In visiting with various companies over the past few months I’ve been struck by the common occurrence of certain leadership flaws. I won’t whitewash them…these aren’t “tendencies” or “styles” or any easy-to-swallow aphorism. They threaten the stability of your studio, the happiness of your team, and they’re so common that I wanted to bring them to light here, describe the damage they’ll do if allowed to run loose, and talk about what to do about them. Odds are they’ve already risen up out of a sea near you, so let’s talk about awareness and solutions before they make landfall and threaten to eat your Asian metropolis.

Read more on These Leadership Flaws Must Be Stopped Before They Eat Tokyo…

Life can be better (part 3 of 3)

The first article of this series briefly covered some of the quality of life issues that I’ve seen during the ten years I have been a part of the video game industry. The previous article was a deep dive into my own personal experience of burnout and depression and what it took me to regain my own health, vitality, and enthusiasm for the work that we all do. In this final article, I take a look at conditions of the work environment, share some practical things that I do to conserve willpower throughout the day, talk a bit about how I get quality sleep, and tie up some loose ends with the series.

Read more on Life can be better (part 3 of 3)…

There’s nothing like a tidy codebase

There you are! You, yes you! Been tasked with a new feature or a change, to the code or a script, to be done by yesterday, haven’t you?

Yes, yes, I know your pain. You’ll be wading through oddly named files, containing briefly labeled identifiers for elements in an obscure relation, and maybe a sprinkle of outdated documentation or commenting to help losing your way. Maybe you’ll be trying to patch in your tasked change, secretly cursing your predecessors’ names for their sloppiness, perhaps the commissioner’s demand to implement something that was clearly not in the scope of the contract, all the time looking at the ever-growing list of bugs (they breed while you’re not looking, you’re sure of that).

Read more on There’s nothing like a tidy codebase…

Creating powerful languages with Xtext

Today, I would like to introduce the Xtext framework to you. Xtext is an open source framework which allows you to define your own textual programming languages before you know it. Xtext was not developed specifically with game developers as a target group in mind. It is rather independent in terms of its application context, and I’m convinced that every tool department that ever needed to define their own programming language can immensely benefit from Xtext. So, although there already exists convenient documentation, examples, forums, and so forth, I would like to provide an article that uses a small, game-related example to introduce the technology.

Read more on Creating powerful languages with Xtext…

Accurately Reproducing Game Audio in the Playback Environment

Sound Designers are faced with a difficult proposition. Add sound effects, music and dialogue to a game, set rules that determine how those sounds are panned, attenuated and processed in real-time (both individually and with respect to one another), and then hope that the player will hear the resulting ‘mix’ over a system capable of reproducing the spatial accuracy, dynamic range and frequency response of the original content. It’s a difficult proposition… at best!

Read more on Accurately Reproducing Game Audio in the Playback Environment…

AI War: First Four Years Postmortem (And By Extension Arcen History)

Postmortem sounds so grisly, doesn’t it? I was tempted to call this a retrospective, but that sounds a bit foofy. So here we are. This isn’t even a true retrospective, because AI War is still going strong and looks to remain that way for some time.

Read more on AI War: First Four Years Postmortem (And By Extension Arcen History)…

Gentle introduction to Google Analytics in Flash


Being able to check out how many players play your game, from what countries, for how long, on which levels they have problems, how much points do they score, even do they ever visit your precious Credits screen or the average FPS number – that sounds incredibly useful, doesn’t it? Fortunately, in web browser games, there’s a way to get such informations. In this post I’m going to describe the process for Flash (ActionScript 3), because I’ve recently implemented it in my released game, and can share some experiences.

Read more on Gentle introduction to Google Analytics in Flash…

The Simulation Dream

There’s an old dream in game design. It drives the design of games like SimCityDwarf Fortress, Tropico, The Sims, and Prison Architect. I like to call it the Simulation Dream.

In 1996, Starr Long, the associate producer of Ultima Online, talked about the game before release:

Read more on The Simulation Dream…

Data-driven design with Unity 3d, Part 1 – Brainstorms, Initial Requirements.

This is a slightly-edited re-post of a series that I’ve been writing in quiet isolation (which you get used to doing indie development) on my blog.  Currently up to part 4 of the series, they have been received somewhat well by my small subset of beta testers, so might as well throw them out to the world at large ;}

Well, here goes.  The story starts back in March.  For the year previous, I had been working at DeNA Canada, helping them startup their first Canadian studio (I was employee #2), recruiting, getting coffee makers and all that fun.  Somewhere along the way I was immersed in the concept of ‘server-driven’ game development – a concept that I had experimented with in passing on a few titles, but nowhere to the extent that we did at DeNA.  Note that I started before Rage of Bahamut had hit the charts – even at DeNA, no one really believed that it would be popular, except for the fact that the Japanese market had/has an insatiable appetite for card battles, and the belief was that similar styles of games could translate across the water.  Well, the rest is history, I spent a year at DeNA, learned a huge amount and – most importantly to this series – spent 9 months building server-based games with Unity and discovering the huge potential and power of this kind of game architecture.   If you want to know the secret sauce of how DeNA and other top-grossing mobile titles generate so much revenue from their titles on an ongoing basis?  The answer is Server-driven game architectures.

Anyways, that’s where the story begins.

Read more on Data-driven design with Unity 3d, Part 1 – Brainstorms, Initial Requirements….

Understanding “It’s not what you know, it’s who you know.”

It is regularly said that “It’s not what you know, it’s who you know.” This is a common phrase that may be even more popular these days due to economic hardships.

Read more on Understanding “It’s not what you know, it’s who you know.”…

A project management view on IT vs. games

I come from a background of IT development, where I worked in multiple roles from programmer to system architect. During that time I saw many different project management techniques ranging from the overly heavy and bureaucratic ones to the very light and agile ones. It might actually come as a surprise to some of you that working on graphics heavy AAA games has not felt all that different from working on the kind of software projects I had been part of before. This is partly because I have a very strong background in developing games and related technology as a hobby but also because there are just so many similarities between the two.

Read more on A project management view on IT vs. games…

How a Recruiter Got My Phone Number

This is two part tale. The first is an amusing story of a recruiter who way over stepped their bounds. The second is a public service announcement on how you, yes you, may be unknowingly exposing both your phone number and home address to the entire internet.

Read more on How a Recruiter Got My Phone Number…

Opinion piece: Australian games industry social media culture

I’m a programmer. Through and through. I might pretend to be good at organising a community every now and then, or at speaking on panels, but in my heart I’m a programmer. I deal much better with pieces of code than I do with words or people. So please bear in mind that writing is not my forte as you read this. It is a struggle to communicate exactly what is on my mind – just ask the people who know me well. And sometimes I screw up: what I say doesn’t quite capture what I meant, and occasionally people can take other meanings from my words. Also, the following is all my opinion, and mine alone. It does not represent that of the IGDA, AIE, Convict Interactive, the GDAA, PAX or AltDevBlog. And if you would like to comment about this article, please do so here – as I mention below, discussion over Twitter is difficult.

Read more on Opinion piece: Australian games industry social media culture…

True Magic of Next Gen

Originally written for Climax Studios for publication in Develop. Reposted with Permission. Also since I wrote the original article E3 happened and Sony has revealed a lot more of the stratergy, some of which is shown in this video which is a good primer on the subject.

Read more on True Magic of Next Gen…