Our Properties: Gamasutra GameCareerGuide IndieGames Indie Royale GDC IGF Game Developer Magazine GAO
My Message close
Contents
Sponsored Feature: Scaling Ambient Animations for Improved Game Experience
 
 
Printer-Friendly VersionPrinter-Friendly Version
 


Part of:



Latest News
spacer View All spacer
 
February 10, 2012
 
Road to the IGF: Lucky Frame's Pugs Luv Beats
 
Analyst questions validity of unusual January NPD results [4]
 
Strong Tales of Xillia sales help Namco Bandai to Q3 profits
spacer
Latest Jobs
spacer View All     Post a Job     RSS spacer
 
February 10, 2012
 
Beachhead / Activision
Senior Operations Engineer
 
Sony Computer Entertainment America LLC
Manager Quality Assurance
 
Beachhead / Activision
Senior Front End Web Engineer
 
Beachhead / Activision
Senior Back End Web Engineer
 
Beachhead / Activision
User Experience Lead
 
Sony Computer Entertainment America LLC
Senior Software Engineer
spacer
Latest Features
spacer View All spacer
 
February 10, 2012
 
arrow Principles of an Indie Game Bottom Feeder [19]
 
arrow Postmortem: CyberConnect 2's Solatorobo: Red the Hunter [1]
 
arrow Jerked Around by the Magic Circle - Clearing the Air Ten Years Later [40]
 
arrow Building the World of Reckoning [4]
 
arrow SPONSORED FEATURE: TwitchTV - How to Build Community Around Your Game in 2012 [13]
 
arrow Happy Action, Happy Developer: Tim Schafer on Reimagining Double Fine [9]
 
arrow Building an iOS Hit: Phase 1 [11]
 
arrow Postmortem: Appy Entertainment's SpellCraft School of Magic [5]
spacer
Latest Blogs
spacer View All     Post     RSS spacer
 
February 10, 2012
 
Audio Passes: Success Through Layering
 
What the current RPG can learn from Diablo 1
 
Double Fine's Kickstarter Windfall: Will Patronage Supplant Traditional Game Publishing? [5]
 
The Principles of Game Monetization
 
Did DoubleFine Just break the publishing model for good? [14]
spacer
About
spacer Editor-In-Chief/News Director:
Kris Graft
Features Director:
Christian Nutt
Senior Contributing Editor:
Brandon Sheffield
News Editors:
Frank Cifaldi, Tom Curtis, Mike Rose, Eric Caoili, Kris Graft
Editors-At-Large:
Leigh Alexander, Chris Morris
Advertising:
Jennifer Sulik
Recruitment:
Gina Gross
 
Feature Submissions
 
Comment Guidelines
Sponsor
Features
  Sponsored Feature: Scaling Ambient Animations for Improved Game Experience
by Mike Yi & Orion Granatir [Programming, Visual Computing, Sponsored Feature]
7 comments Share on Twitter Share on Facebook RSS
 
 
September 17, 2009 Article Start Page 1 of 3 Next
 

[In this Intel-sponsored feature, part of the Visual Computing microsite, an Intel duo introduce Horsepower, a demonstration of enhanced, multi-CPU specific ambient animation -- with full, redistributible source code included.]

Game developers want to deliver the best experience possible for each player, but they also want a game that is fair to all players. A higher-performing machine for one player can and should lead to a better game experience, but not a gameplay advantage in a multi-player situation.

Many solutions to this dilemma exist; one approach is to use the extra power to render more frames. Another approach is to take incidental effects and amplify them on multi-core machines. This leaves gameplay consistent across all computer platforms, but rewards those with higher-end systems.

This article introduces a demo called Horsepower that shows such a technique: enhanced ambient animation when run on a multi-core CPU. The source code for Horsepower is free to use and improve.

Horsepower started with the code base of the Intel Smoke demo, which features a multi-threaded game framework with tremendous flexibility. Smoke is a free application and its source code can be downloaded.

Most of the existing Smoke systems were carried over to Horsepower. Smoke already contained a threaded AI system so this capability was migrated to Horsepower. The Smoke framework also utilizes Havok Physics, which is threaded, and Horsepower benefits from this as well.

Horsepower was created to showcase a perceptible difference for users with a multi-core CPU. By threading to take advantage of multi-core CPU power, a few horses running in a field are multiplied to hundreds of horses (Figs. 1-3). Dynamically adjusting the number of horses drawn on-screen maintains a consistent frame rate of 30 frames per second (fps).

The demo decreases the number of horses drawn on screen until 30 fps is hit and maintained and, on the flip side, increases the number of horses on screen until the target 30 fps is hit. Although the horses are the main animated objects in this demo, you can use this technique on any ambient animations in a game for a better game experience.


Figure 1. On an Intel Core i7 processor-based system using eight threads, we can maintain almost 600 horses.


Figure 2. On the same Intel Core i7 processor-based system using four threads -- which means no Intel Hyper-Threading Technology -- we drop to 570 horses. So simultaneous multi-threading gives us about 20 additional horses by adding logical cores (and not adding any physical cores).


Figure 3. When we drop to two threads, and therefore are only using two of the four physical cores and no Intel Hyper-Threading Technology, we can maintain roughly 235 horses.

In this article, we introduce the technique of threading an animation system, and you'll see how to apply it to your ambient animations. We'll show you the code we built to explore the idea, show how we changed an animation system so it would scale as desired, and describe some issues you might find as you try this in your game. Your gamers will thank you for providing a richer gaming experience!

 
Article Start Page 1 of 3 Next
 
Comments

Andre Gagne
profile image
What was the threading model that was utilized? Was it master-slave with new threads generated for each frame or was it a work-pooling model?
The problem/solution sounds embarrassingly parallel.

Alex Champandard
profile image
While it's interesting to see multi-threading applied like this, it's most likely not the best solution to this problem. First, optimizing Ogre's animation could get you at least 2-4x performance boost, then animation LOD, and using instancing or even impostors would do a better job for anyone looking to animate this many characters. Multi-threading at best can give you a linear performance increase, but thinking out of the box will allow you to scale to any hardware.

Orion Granatir
profile image
The link for the source code and executables is incorrect. We'll get it fixed, but for now the correct link is here: http://software.intel.com/en-us/articles/horsepower-source-code-download/

Daniele Benegiamo
profile image
Have been submitted some patches to Ogre team so that everyone can take advantage of this good work? Would be a pity to loose them.

Orion Granatir
profile image
Hey Andre,
The threading model is task pool built on top of Thread Building Blocks. Basically all the the AI, graphics, animation, etc are broken into a task pool to be serviced by n-worker threads. Where n is the number of available thread on the system. You are right about the problem being embarrassingly parallel :D Animation lends itself to threading like a fish to water. The only challenge is properly sharing the data between threads (but it’s a minor one).

Orion Granatir
profile image
Hey Daniele,
With the source code, there is a docs folder that contains Ogre Version.rtf; this file lists all the patches submitted to Ogre. Patch 2695804 is the one created to support the functionality described in this article. It was submitted to the Ogre project a while back ^_^

Simon Carless
profile image
(We did fix the link to Horsepower yesterday, by the way, for those looking for it!)


none
 
Comment:
 




UBM Techweb
Game Network
Game Developers Conference | GDC Europe | GDC Online | GDC China | Gamasutra | Game Developer Magazine | Game Advertising Online
Game Career Guide | Independent Games Festival | Indie Royale | IndieGames

Other UBM TechWeb Networks
Business Technology | Business Technology Events | Telecommunications & Communications Providers

Privacy Policy | Terms of Service | Contact Us | Copyright © UBM TechWeb, All Rights Reserved.