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. ;)

Roll-Your-Own Vector

(Also posted to, third in a series of posts about Vectors and Vector based containers.)

STL vectors offer a great combination of dynamically resizing convenience and low level contiguous buffer accessing performance, but std::vector is not the only option, and custom implementations of this container can sometimes be a better fit for your specific requirements.

Read more on Roll-Your-Own Vector…

Efficient Vectors of Vectors

(Also posted to, second in a series of posts about Vectors and Vector based containers.)

STL style vectors are convenient because they hide the details of internal buffer management, and present a simplified interface, but sometimes convenience can be a trap!

Read more on Efficient Vectors of Vectors…

Havok Physics: 4 tips you won’t find in the docs

Hey fellow coders, I’ve used Havok Physics at several game studios over the years and I thought I’d share some little-known but hopefully useful tips about this middleware.

For a rigid body, find all rigid bodies touching it

A recent game project involved a house interior scene, and I needed to know what objects were resting on a given table.  I could have added a collision listener to every table and maintained lists of contacting objects, but there’s an easier way.  The simulation already tracks these contacts every frame for all rigid bodies, so I dug into some undocumented internal classes (hkpLinkedCollidable and hkpSimpleConstraintContactMgr) and extracted what I needed.  This function is based on some code in one of the Havok demo projects.

Read more on Havok Physics: 4 tips you won’t find in the docs…

Reading The Papers: Guaranteed Candy

Screen Shot 2013-11-29 at 12.15.25

For some developers, all this talk of procedural content generation is bittersweet. If you’re generating a world map, for instance, you probably don’t have too many requirements of it. A bit of land, not too many mountains – other than that, the randomness is part of the appeal. But what if you have very specific requirements? Well, then you’d need to test the content you generate to make sure it’s okay to give to the player. For many games this is a tricky and daunting task. How on earth would you automatically test a physics puzzle game, for instance? I’m glad you asked. This week on Reading the Papers – a novel approach to simulation that can test real-time physics-based games (and more).

Read more on Reading The Papers: Guaranteed Candy…

Using STL Vectors

(Also posted to, first in a series of posts about Vectors and Vector based containers.)

Using STL Vectors

STL style vectors are a pretty useful construct.

I remember coming to C++ (and the STL) from a background in lower level programming, and finding STL vectors a bit surprising, with the idea of amortized constant time complexity and so on.

Read more on Using STL Vectors…

PRACTICE Makes Better: Self-Improvement Through Game Design

A slide from Robert Yang's talk, Well-Made: Back to Black Mesa.
A slide from Robert Yang’s PRACTICE 2013 talk, “Well-Made: Back to Black Mesa.”

“How do you let people betray each other?”

“How do you handle gay marriage?”

“How do you get people to want to play?”

Read more on PRACTICE Makes Better: Self-Improvement Through Game Design…

From Rags To Game Dev

Hello! My name is Josh Hughes. I’m a 30 year old in Great Falls, Montana crazy enough to think my crew and I can make it in the game industry. In one form or another, I’ve been trying since my Junior year in High School. My 10 year high school reunion was Spring 2012, and the road my family walked since I graduated was a weird one, but we walked it, made it our own and through every road bump faced I’ve fallen more in love with the art form of video games!

Read more on From Rags To Game Dev…

The indie roadmap

Last week I had lunch with some friends who enjoy their new-indie game developer status. We discussed game ideas, concepts, some mechanics… And right after the first beer, they told me: “We don’t have anything playable yet but I’m working on the decal system.” This brought me back to my own troubles working on .the rush//. I tried to make them understand that if when you don’t have something playable within the first week of development, even if you spend the next 10 years in production, you won’t have a good game….or even just a game. With my humble experience I’ve made an Indie GameDev Roadmap.

Read more on The indie roadmap…

Always Multiply Your Estimates by π

Project estimation is a black art, nowhere more so than in game development. I once heard of a mysterious cabal of numerologists that multiplied their time estimates by π. The practice allegedly gave them sufficient buffer for new requirements, testing, iteration, and other arcane changes in scope.

Read more on Always Multiply Your Estimates by π…

4 Beginner Projects for Launching into Game Programming


Photo credit: minipixel

Lots of students and beginner developers ask me, “What’s the fastest way to become a game programmer?”

Once you’re an amazing programmer, the world is open to you. You can make your own indie projects. Other developers and artists will want to work with you. You can get a job at a small or a large studio. The possibilities are endless!

Read more on 4 Beginner Projects for Launching into Game Programming…

OpenGL dumb mistakes: the mysterious Perfect Circular Hole

I’ve got a long-running project around rendering 3D Earth in interesting ways. It’s being used in a game project, and some non-game stuff too. Here’s a recent screenshot:

I added a particle system that uses Vector Fields to move the particles based on arbitrary incoming data, and then wraps it round a globe. Yay!:

Read more on OpenGL dumb mistakes: the mysterious Perfect Circular Hole…

How to become a Graphics Programmer in the games industry

As we were recently hiring a new Graphics Programmer at work I had to identify what kind of technical knowledge and skills we would expect from a potential candidate. Although this definition will be somewhat specific to what we look for in a candidate, it might still be of interest to other coders trying to score a job in the industry as a Rendering Engineer.

Read more on How to become a Graphics Programmer in the games industry…

#gamedev Lead Quick Start Guide

Congratulations! You’re a lead. Now what? In general, whatever skills you’ve demonstrated that got you to this point aren’t the same things you’ll be doing from here on out (or at least not as much.) Not everyone is suited to a lead role or would be happy in one. Trust I believe you have every chance to excel as a lead; Otherwise, you wouldn’t be one.

Read more on #gamedev Lead Quick Start Guide…

You have failed

This appears also on c0de517e.

Today i was watching Mike Acton’s talk at SIEGE 2013 on leadership, and it prompted me to stop the article I was working on to start drafting this. I recommend watching his talk, it’s quite good and it talks about the key to leadership: responsibility.

Read more on You have failed…

Easy Collaboration with Object URLs

At DROOL, we’ve recently started using URL “links” to our game objects that we can easily share via e-mail.  It’s simple and probably not a unique solution.  But it’s been useful and feels like a feature every engine should have.   It was quick and easy to implement, but the most time was spent working around some minor annoyances.

Read more on Easy Collaboration with Object URLs…

iOS Open GL ES 2: Multiple objects at once


  1. Part 1 – Overview of GLKit
  2. Part 2 – Drawcalls, and how OpenGL code is architected
  3. Part 3 – Vertices, Shaders and Geometry
  4. Part 4 – (additions to Part 3); preparing for Textures

Read more on iOS Open GL ES 2: Multiple objects at once…

Honor Thy Player’s Time

Chrono Trigger clock
It’s a glorious Sunday morning. You stir and stretch in your bed, a mess of wonderfully soft sheets and covers. The whole day is open. Will you laze around for a bit more? Get up and go for a walk, or to the gym? Make plans to meet up with friends? Whatever you decide, this moment is the birthplace of the day’s possibilities, when just thinking of the wide expanse of possibility makes you smile.

Read more on Honor Thy Player’s Time…

OpenGL ES 2: debugging, and improvements to VAO, VBO

UPDATE: This post sucks; it has some useful bits about setting up a breakpoint in the Xcode debugger – but apart from that: I recommend skipping it and going straight to Part 4b instead, which explains things much better.

Read more on OpenGL ES 2: debugging, and improvements to VAO, VBO…

Simplex Update #2: Unit-Testing

NOTE: If you want to read this post with syntax highlight I strongly suggest you read it on my blog:

It’s been almost a month since the first update, and I’m not entirely happy with this, but here I am with some news.

Read more on Simplex Update #2: Unit-Testing…

What’s so great about Oculus Rift?

Over the last few months, alongside the Xbox One and PS4 PR trains, articles on Oculus Rift have been gaining more and more traction. I’ve been in the category of keeping an eye on its progress, but not with any impression of it having much of an effect on my day to day life. Like 3D movies, VR tech comes and goes. The news that John Carmack joined Oculus full time definitely raised my eyebrows, but only for a moment.

Read more on What’s so great about Oculus Rift?…

Wolfram’s Mathematica 101

This will appear in a longer, more rambling form, on C0de517e.

It’s main section is inspired by LearnXinYminutes


Games and rendering are becoming increasingly “data driven”, in a sense that we use big amounts of “offline” data, either through acquisition or simulation, that we have to fit into our games via forms of approximation. These can be derived analytically, through simplifying assumptions, numerically, by fitting functions to data (learning), or using both methods.

Read more on Wolfram’s Mathematica 101…

OpenGL ES 2: Vertices, Shaders, and Geometry

(this is Part 3; Part 1 has an index of all the posts)

We finished Part 2 with the most basic drawing of all: we filled the screen with a background colour (pink/magenta), but no 3D objects.

Read more on OpenGL ES 2: Vertices, Shaders, and Geometry…

How to Survive Working with Remote Collaborators

Photo: Laptop

For many game developers, the appeal of working with remote collaborators is hard to pass up. If you’re an indie, cutting out office space costs and commuting time is a no-brainer. If you’re an established studio, being able to work with employees and contractors in remote locations grants you access to a far greater talent pool than whoever happens to live in your city.

Read more on How to Survive Working with Remote Collaborators…

Accurate Collision Zoom for Cameras

Figure 1 - Camera, lookat target, and obstacle
Here’s the takeaway of this whole post: For camera collision zoom, don’t cast a ray. Don’t cast a sphere. Cast the near face of the view frustum.

Now, let’s start from the beginning. Consider the typical third-person camera: a lookat target (often the player character) and an offset to the camera. We never want to lose sight of the player, so how do we handle obstacles like walls that get in the way? One solution is to move the camera in towards the player, past all obstacles—this is collision zoom.

Read more on Accurate Collision Zoom for Cameras…

Fixing the DirectX D3D debug layer

If you’ve ever done any serious Direct10/11 work, then you’ll know how invaluable the  Direct 3D debug layer can be when you’re having problems. When it is set running you get a stream of informational messages, warnings and errors telling you where you were going wrong.

Read more on Fixing the DirectX D3D debug layer…

The Jones On Fire Postmortem: A Game In Five Acts

Author’s Note: I should mention that Michael Nielsen was with me on Jones On Fire from the very beginning – he did the music for it during Blaze Jam, and stayed on from there. Nathan Madsen was brought on shortly after, to round out the music and handle sound effects. Folmer was brought on toward the end, to handle promotional art, icons, that kind of thing. So, when you see a “we”, that’s the “we” I’m referring to.

Read more on The Jones On Fire Postmortem: A Game In Five Acts…

Scripted Network Debugging

Debugging network problems is horrible. Everything is asynchronous. Messages can get lost, scrambled or delivered out-of-order. The system is full of third-party black boxes: external transport layers (PSN, Steam, etc), routers, firewalls and ineptly written packet intercepting anti-virus programs. (I’ve got my eye on you!)

Read more on Scripted Network Debugging…

Horrible Hansoft

I’ve used Hansoft for 5 years across 2 jobs. Over that time, I’ve had more arguments about Hansoft than I wish to remember. In this post, I’m going to present a dialogue between Socrates, a software development, and Phonion, a Project Manager (Producer, Product Owner, Product Manager, whatever) about use of Hansoft. I’m not going to introduce Hansoft because it isn’t worth learning about it if you aren’t already subjected to it.

Read more on Horrible Hansoft…

The Karaoke Rules of Game Development

Karaoke singers

The act of going to a karaoke bar is filled with more dramatic tension than you might think. The sheer amount of questions in play at any given time is intense: What will the next person sing? Will they do a good job? Will they be ungodly terrible? Does this place have songs I want to sing? Will they call me next? Will the crowd like my song? What are the happy hour specials again?

Read more on The Karaoke Rules of Game Development…

The Morality of Library Sound Design

Some sound designers have a serious hair up their butts when it comes to using commercial sound libraries for sound design.

If you’re a sound designer, especially a budding one just starting to claw your way into the industry, you may be in for some pretty severe judgments if it is found out that you’re using sound libraries in a way that offends other sound designers. If you’re just starting out, you could make one wrong move with the way that you use sound libraries, and it’s curtains for you! Your reputation could be sullied far and wide! And you may not even be doing anything wrong, at least technically speaking.

Read more on The Morality of Library Sound Design…