GCDC'08: get the best out of your gaming titles

By Michael J Huelskoetter (90 posts) on August 12, 2008 at 4:19 am

When you think of game development there's one major issue that concerns many developers: single-threaded code which doesn't scale on a multi-core platform.

In order to get the best performance out of a single-threaded 3D application it has to be multi-threaded and there are lots of examples how this could be achieved:

Supreme Commander by Gas Powered Games is a perfect example that shows how to turn single-threaded code into a multi-threaded application. First all threads were decoupled - where it was possible - in order to compute rendering and simulation processes in parallel. In order to achieve this Sim Thread Interface was used. Second a new memory manager was implemented into Supreme Commander. This helped to allocate free memory faster and more efficiently. The good thing about those necessary changes: you can do this even in the middle of a running project. But at best multi-threaded applications are developed from scratch.

Another huge challenge in game development are cross-platform applications. Instead of writing the same code several times for different platforms like PC, Xbox and Wii it’s better to do this once – and then integrate the specific needs of each platform. This way of common primitives, used by all the targeted platforms, are taken care of. The magic word behind this is Stream Processing. To put it simple: many streams will be chunked and can be computed by each kernel. And who is helping to achieve this? Right, Emergent, who is providing cross-platform middleware solutions. With their development engine Gamebryo the company helped many gaming titles like Empire Earth II and Civilization IV to be developed successfully for multi-platforms.

But there is another challenge many game developers are confronted with: how can I add more features scaling with the number of available cores. Especially when the threading optimization has been done already and frame rates are maxed out for 2-core-systems. You can for example add more realistic weather effects by using each core. This is achieved by asynchronous updates and synchronous rendering. One of the good examples where this could be implemented successfully is Hellgate: London by Flagship Studios, where more visual features are available depending on the numbers of processor cores.

Categories: Events, Game Development, Graphics & Media, Manageability & Security, Parallel Programming
Tags:

For more complete information about compiler optimizations, see our Optimization Notice.

Comments (1)

August 12, 2008 4:43 AM PDT


Gordon
Ya Cross-Platform-Applications are challenging.Thanks for sharing

Trackbacks (3)


Leave a comment  

To obtain technical support, please go to Software Support.
Name (required)*

Email (required; will not be displayed on this page)*

Your URL (optional)


Comment*