GDC 2011: What you should know about task based game engines

Here at Game Developers Conference Europe 2011 in Cologne, Germany, I'm not only talking to people about their favorite topics like morphological anti-aliasing, but also about important tech sessions which take place  at this biggest gaming event of Europe.

The first session I attended was held by Leigh Davies, Intel fellow and game specialist. Leigh was talking about task based game engines with a lot of interesting information and insights. With his talk „Efficient Scaling in a tasked based Game Engine“ he pointed out some crucial aspects when you as a game developer want to make sure that your gaming titles run best on multicore systems. In order to achieve this, serial game code has to be transformed into task based source code so that different tasks of your game can be distributed to available processor cores and threads. The final goal of this work is the scalability of the whole game which will perform best on a multicore PC.

As parallelizing source code is hard work it's kind of smart to use professional software tools which can help you to get your source code optimized for multicore systems. One of these tools is Intel Threading Building Blocks with its own task scheduler which helps developers to get different tasks being distributed to the available threads properly so that hardware and software are running full steam and are used in the best way.

In a very impressive manner Leigh Davies from Intel could demonstrate  that most of today's gaming titles benefit from getting parallelized, as rendering jobs need several cores at the same time in order to get performed fast and accurate. As one good way to achieve this goal Leigh talked about Morphological Anti-Aliasing (MLAA) versus Multisample Anti-Aliasing (MSAA).

Single threaded animation versus multithreaded approach

As we learnt from his yesterday's video talk you as a game developer have to change the way implementing anti-aliasing in your gaming title. Instead of using MSAA which is time consuming, MLAA uses a post-processing effect which is faster and less expensive. After a picture is rendered it will be analyzed with the help of color differences and all edges will be softened with a dedicated shader. The difference between MSAA and MLAA: not all the pixels will be checked but only the just analyzed edges which will accelerate the whole calculation. Moreover the CPU has to work less as the GPU perform most of the operations.

BTW: If you are looking for a helpful tool for optimizing your game code you should have a look at Intel Graphics Performance Analyzers. This tool suite profiles your gaming title, finds critical hotspots and many more things. Just step by at Intel stand 150 here at Game Developers Conference 2011 and Leigh will be happy to show you Intel GPA 4.1.

If you interested in more information about task based game engines you should read this article on ISN.
For more complete information about compiler optimizations, see our Optimization Notice.