Parallelization of Game AI - Presentation from the Paris Game AI Conference '09

In June 2009 I gave an overview and motivation for Parallelization of Game AI at the Paris Game AI Conference '09. The conference was a blast - great discussions with many interesting people and inspiring presentations - look out for the next installment, I will do so for sure!

Alex and Petra Champandard from AiGameDev.com, the main organizers and master-minds behind the Paris Game AI Conferences, just published the video and audio recordings of my presentation and put it online for AiGameDev.com premium members. Petra did a great job editing the recordings and put in a lot of hard work to synchronize my talk with the downloadable slides.

Video and slides at AiGameDev.com:

Slides with speaker notes can also be found at bjoernknafla.com:

Slides-movie and brief presentation recap

I find it extremely awful to watch and listen to myself / my presentation. I worked very hard on the talk and created slides that were full of animations to explain the presented parallelization concepts - making the slides a kind of script to follow during speaking. A script that needs accurate transitions and explanations under time pressure to stay inside the presentation time slot. This rigid structure to follow in combination with my nervousnes lead to lots of "ahs" and "errs" and let me struggle with my English speaking skills. To amend for th is, I created a quicktime movie from the slides showing the actual animations and added a coarse talk outline below. This in combination with the speaker note extended slides and the video recording at AiGameDev.com should give you much of the useful information of my talk.

(download)

Introduction

  • Why we need parallel programming: parallel hardware, performance.
  • Parallel programming isn't easy - but no rocket-science either:
    • parallel programming errors: race conditions, deadlocks,
    • performance problems: contention,
    • be aware that order of parallel instruction execution isn't deterministic.
  • Parallel hardware dictates how to program for performance:
    • maximize throughput - to fight memory latency,
    • maximize memory locality - to save bandwidth,
    • minimize (false) sharing - to prevent contention,
    • combined: balance maximization of locality vs. minimization of sharing.
  • Artificial intelligence (AI) model referenced in the talk: agent-based AI.

References:

Read the rest of this post »

Parallelization in Games: Codemasters Colin McRae Dirt 2

I am always on the hunt for gamedev industry parallelization approaches deployed in computer and video games. Typically I scribble down some bullet points about game parallelization infos I find to use as a reference later on - so: why not share it on the web? Here we start:

Todays issue of the Intel Visual Adrenaline Magazine (issue 4, 2009, web, pdf) contains the article The Muddy Beauty of DiRT* 2*: Where rally realism meets the raw road by Jon Jordan about Codemasters Colin McRae DiRT 2 ralley/driving game with some bits of technical details provided by Codemasters Gareth Thomas (senior graphics programmer).

Read the rest of this post »

Integration of Posterous with web presence

I am beginning to blog and don't want to administrate my blogging software/server myself (greetings to the currently running attack on non-updated WordPress blogs). Because of its ease of use for short blog posts and its (constantly growing) integration with many other web services (like Twitter) I decided to test Posterous.
 
My plan: integrate Posterous as transparently as possible into my tiny web presence. Posterous allows to run your blog at your own domain instead of just under <yoursitename>.posterous.com - they call it custom domains.
 
And here I hit a stumbling block: I am also using my website and blog as an outlet for my freelancing and consulting in the area of computer and video game parallelization and my countries law requires to show an imprint with contact infos. Where to show this imprint? And where to put my short about info?

Read the rest of this post »

Context, context, context - and locality - how not to lose your mind in parallel times

Alex Champandard from AiGameDev.com ranted about the negative sides of Singletons on Twitter:

Been thinking about the best argument against Singletons. It's down to assumptions, they make an ass out of your code now and bite me later.

There have been lots of discussions and battles regarding the pros and cons of Singletons and I don't want to incite them here again. Singleton's are a tool to use and as every tool they have their positive and negative sides.

Read the rest of this post »