GAME JOBS
Contents
Tutorial: Simple, High-Performance Particles for Mobile
 
 
Printer-Friendly VersionPrinter-Friendly Version
 
Latest Jobs
spacer View All     Post a Job     RSS spacer
 
June 6, 2013
 
Red Storm Entertainment, a Ubisoft Studio
Assistant/Associate Producer
 
Wargaming.net
Build Engineer
 
Gameloft - New York
Programmer
 
Wargaming.net
Build Engineer
 
Virdyne Technologies
Unity Programmer
 
Wargaming.net
Dev-Ops Engineer
spacer
Latest Blogs
spacer View All     Post     RSS spacer
 
June 6, 2013
 
Free to Play: A Call for Games Lacking Challenge
 
Cracking the Touchscreen Code [1]
 
10 Business Law and Tax Law Steps to Improve the Chance of Crowdfunding Success
 
Deep Plaid Games, one year later
 
The Competition of Sportsmanship in Online Games
spacer
About
spacer Editor-In-Chief:
Kris Graft
Blog Director:
Christian Nutt
Senior Contributing Editor:
Brandon Sheffield
News Editors:
Mike Rose, Kris Ligman
Editors-At-Large:
Leigh Alexander, Chris Morris
Advertising:
Jennifer Sulik
Recruitment:
Gina Gross
Education:
Gillian Crowley
 
Contact Gamasutra
 
Report a Problem
 
Submit News
 
Comment Guidelines
 
Blogging Guidelines
Sponsor
Features
  Tutorial: Simple, High-Performance Particles for Mobile
by Itay Duvdevani [Production, Interview, Console/PC]
4 comments Share on Twitter Share on Facebook RSS
 
 
May 20, 2013 Article Start Previous Page 4 of 4
 

The alpha channel tells the story. The first stage's RGB is not premultiplied, and the alpha channel set to black -- making the particle a complete addition mask. Note that I've chosen the particle's color to be a shade of orange that still has some color in the blue channel -- otherwise adding these particles on top of each other will give pure yellow, instead of the white we're aiming at. The particle's ADD mask is built to soften the edge of the flame in the ignition stage.

The second stage is similar to the first stage, except the add mask is softer -- the color added is darker, and the add factor is lower. This serves as a good transition between the bright ignition and the dark soot. The texture is not premultiplied, although it may seem that way at first glance.



The smoke is very simple -- it is a grey, alpha premultiplied particle, which only occludes the scene. We use a grey that is lighter than the shade of smoke we want, since we'll also be fading the particle to transparent black as its end-of-life approaches.

The emitter is a simple point emitter that emits 40-50 particles per second. It sets the particles lifetime and speed (height of the flame), its speed direction (flame spread), and its grow rate (flame's "body"). In addition, each particle is created with a slightly different semitransparent white "tint" (flame intensity) and finally, as mentioned before, each particle is tinted to transparent black toward the end of its life.

With a little trial-and-error we calibrate the emitter to achieve the final result:

There is plenty of room for modifications -- for example, by changing the time each particle spends in each stage we can get more intense ignition, or a longer smoke trail. We could also apply physical modifiers to each particle, adding wind or gravity for instance.

Conclusion

With the current product proliferation in the casual mobile gaming market, focusing on a single hit is a risk. Instead, publishing many titles quickly provide risk distribution and operational latitude to respond to the market's feedback, and experiment with different types of games and user experiences.

To achieve that, game development cycles need to shorten, in time and in cost. We focused on a factor that can affect both significantly -- graphics. Unless the gameplay explicitly requires 3D environment, I suggested choosing 2D, which is usually lighter on artist and developer resources.

As for user experience, we've seen a basic example that shows that a small amount of work and very basic 2D constructs can be used to generate elaborate graphic presentation.

But 2D effects aren't limited to the method I've presented. Even though it's in use all over the industry, over great range of complexities, this was just an example of what can be done with very basic building blocks. Many other effects can be achieved with the same facilities, giving developers great creative freedom in developing 2D games and users the visual experience they expect, even without impressive 3D environments and characters.

 
Article Start Previous Page 4 of 4
 
Top Stories

image
Keeping the simulation dream alive
image
Q&A: With Neverwinter inbound, Cryptic founds Seattle studio
image
A 15-year-old critique of the game industry that's still relevant today
image
Advanced audio streaming in Unity
Comments

Nick Ralabate
profile image
What exactly do you mean by each particle's ADD mask? I stared at the example image for a minute, and the edges look about the same softness to me.

Itay Duvdevani
profile image
This can be confusion - I'll try to explain better.

What I meant is that in the ignition stage we've softened the edged of the RGB channel not because we've premultiplied it with the alpha channel (which is all black) - but because we don't want our addition mask to be "sharp".

If we were to set the addition mask (RGB channel) to a single color, we would get a sharp transition on the flame's edge, instead of a soft one - this is different than the third (smoke) particle, which is premultiplied - in the ignition we want to "add less and less" around the edges while in the smoke we want normal occlusion blending.

Tom Hughes
profile image
Super interesting tutorial! I'm going to try it out as soon as I get home from work

Romain Guy
profile image
Just a quick note about Android: the behavior you ran into with premultiplied textures is because all bitmaps are always loaded premultiplied by the platform. It is definitely a problem for games, and not only for the reasons you mentioned here (if you use the 4 ARGB channels and need the RGB data to remain intact – say if you're storing normals for instance –). It's something I would like to fix at some point though. In the meantime, sorry about the inconvenience :)


none
 
Comment:
 




UBM Tech