Smoke - Game Technology Demo

What If Home | Product Overview | Intel® TM ABI specification | Technical Requirements
FAQ | Primary Technology Contacts | Discussion Forum | Blog


Product Overview

Smoke is a tech demo that showcases a framework to support n-way threading of game technologies. By properly threading a game it can have more accurate physics, smarter AI, more particles, and/or a faster frame-rate. Smoke demonstrates one way to achieve better games.

All of the source code for Smoke is available for download.

The demo includes:

  • N-way threaded framework using Intel® Threading Building Blocks
  • Physics simulation using Havok Physics™
    • Download a free copy of Havok PC (5.5 or greater) from www.havok.com
  • Graphics and scene management using Ogre3D
    • Complex meshes/shaders
    • Skeletal animation
    • Particle systems
  • Procedurally generated fire that spreads dynamically and realistically
  • 3D audio using FMOD
  • Artificial Intelligence controlled animals
  • Input and interactivity using DirectInput
  • Performance profiling
What's new with Release 1.2
  • Smoke now has a simpler build and builds with Visual Studio 2008 SP1
  • Fixed occasional crash when subdividing objects, after physics collision
  • Fixed a number of memory leaks and uses of uninitialized memory
  • Ambient lighting now lights the shaded side of objects
  • Smoke runs faster, mostly due to speedups in fire object code

 


Product Info

Video: Smoke Overview Video & Tech Overview Video

Article: An Overview of Procedural Fire,  Designing a Parallel Game Engine, &

Optimizing Game Engines with the New Intel® Graphic Performance Analyzers 3.0 Platform View

Installation: You can download the installer for the demo.

You can download all the source code here. There are build instructions included in the source code zip file under smoke\docs


System Requirements

  • CPU: Intel® Core™ 2 Quad Processor or better (Intel® Core™> i7 recommend)
  • GFX: NVIDIA 8800 GTS or better (Smoke was developed using 8800 GTS cards)
  • OS: 32-bit Windows XP or Vista
  • MEM: 2 GB of RAM of better
  • Optional: Stereo speakers, Xbox 360 controller for Windows
  • Software: Latest version of DirectX and .NET

 

You can also watch the other video done to Take an in-depth look at Intel’s Smoke Demo


Frequently Asked Questions

Q: Where can I get the source?

A: All the source is available.

Q: How do I build the source code?

A: There are build instructions included in the source code zip file under Smoke\docs.

Q: How do I see the advantages of threading?

A: While the demo is running you can toggle the number of active threads.

  • Press Ctrl+1 for 1 thread
  • Press Ctrl+2 for 2 threads
  • Press Ctrl+4 for 4 threads
  • Press Ctrl+x for maximum threads (depends on the CPU)

 

Q: What is the license?

A: You can read the license here. The goal is to allow developers to use the Smoke code written by Intel for any purpose (including derivative works) with no limitations or obligations.

 


Primary Technical Contacts

Orion Granatir is a senior engineer in the Visual Computing Software Division. He is the Tech Lead on the Smoke project. Prior to joining Intel in 2007, Orion worked on several PlayStation 3 titles as a senior programmer with Insomniac Games. His most recent published titles are Resistance: Fall of Man and Ratchet and Clank Future: Tools of Destruction.

 


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

Comments

DDd's picture

Wow, this is really great content. Thank you so much for the code and articles. Very COOL stuff!

's picture

Does it work with Windows Vista 64 or is it 32 bit only?

Orion Granatir (Intel)'s picture

Thanks for the comment DDd ^_^
I saw your post on AiGameDev.com, I'd like to hear what you end up doing with Smoke

Orion Granatir (Intel)'s picture

Hey Ricardo,
We built and tested Smoke using 32bit. You can try and build and run 64... let me know how it goes!

's picture

Hey guys,

I think this is an excellent project and something that deserves more attention in undergraduate games development based degrees. I'm a third year student at the University of Lincoln, UK doing a games based degree, but we don't really cover any basic engine fundamentals, let alone threading and paralell game design.

As part of my dissertation I'm doing an in-depth analysis of various open-source game engines, particularly the Quake-series. I'm planning to do a chapter on the importance of paralell game engines in today/tomorrow's games industry and all of this information you have provided will prove very useful. I had a quick play at bringing some threaded functionality to the Q3 engine (though it is very, very basic). I have a short blog entry about it here: http: // learninglab.lincoln.ac.uk/blogs/jmunro/2008/12/02/attempt-at-threading-quake-iii/

Thanks for the hard-work!

Orion Granatir (Intel)'s picture

Hey James,

I'm glad to hear about your interest in parallel game design. I'm working with the Intel Academic Community (http://software.intel.com/en-us/academic) to develop material about parallel game design using Smoke.

Here is a link you might be interested in: http://software.intel.com/en-us/videos/gdc-session-threading-quake-4-and-quake-wars-part-1 Anu has done some interesting working threading Quake 4.

It sounds like a very interesting dissertation. Please keep me up-to-date and let me how your project turns out.

's picture

Thank You!! I can't wait to check this out. I'm on an Intel Mac... I believe all the libraries you mention are cross-platform. Have you had anyone test out the engine on OSX yet?

's picture

woops, I missed the mention of the win32/Dx dependency, though I know Ogre3d claims abstraction over Dx and OGL. What might prevent this from running on an OSX intel mahine?

Orion Granatir (Intel)'s picture

Hey CJ,

No one has tried in on OSX. I would be very interested to know if you can get it to work. The biggest dependencies on Windows are DirectX and .NET. DirectX is used by Ogre3D... however, you should be able to use OpenGL instead of DirectX (OpenGL is just a separate plug for Ogre). The scripting system uses .NET... but you can feel free to disable the scripting project (it's not used in the demo at the moment). In the \bin folder you will find Smoke.gdf... delete the reference to the scripting system (you might need to remove it from Demo.cdf too).

Now here are the big challenges. There are a few systems that also depend on DX. These is SystemInput and SystemFire. SystemInput uses DirectX's input support. But that's easy enough to replace (or disable). SystemFire uses DirectX for some of the math calculations. Our math library should support all the needed functionality... we just didn’t have time to get all the DX out of there.

Good luck and let me know how it goes!

c0d1f1ed's picture

Is there any way to make the demo stop spinning like crazy? :)

Pages