Creating a motion feeling in a game, a.k.a. space dust


I’ve been playing with Panda3d for few weeks now, but a lot still escapes me.
I tried googling this and read half of the forums here, but, since my problem cannot be that unique, I must be asking google wrong questions.

I am making a space game, an arcade shooter/mmo/something. In many space games I see ‘space dust’, tiny particles that do not move, but ships fly past them creating a feeling of a motion in a deep black space.
View on ship models is from top, and camera is always above selected model, looking straight down.

I tried playing with particles, especially with BoxEmitter, and shifted bounding box to be centered on model I am looking at. Looks great just until I zoom out camera, it creates a bright dotted rectangle at bit distances. Tried scaling it while zooming, but nothing nice came out.
Also, rendering particles on rander2d and moving them manually creates a very fake looking image.

So, being temporarily out of ideas, I’m asking here for some tips how a nice space dust can be created, which behaves nicely no matter where camera is and which reflects movement of selected model. It would be great if those particles could glitter (or blink a little) and appear to be before and after models.


How about creating a bunch of billboards, optionally with an animated texture on them?

Hello and welcome, Garagoth.

I needed a very similar effect for my own space game, and after trying different methods (including the one suggested above by DangerOnTheRanger), i ended up using treeform’s MeshDrawer.

The code i used to handle my starfield can be found on GitHub, in the ParticleEngine class of the file. Feel free to use it however you want (if you want to use any assets there, models, textures, sounds, etc, please check the license, since i’m not the author for all of them, and some of those assets are not public domain).

It looks like this :

I hope that helps, good luck.

That looks nice and a Freelancer makeover sounds even nicer :smiley:

I’m gonna keep an eye on this one!

Many thanks for working example. It is very close to what I need, so right now I am toying with it and truing to adjust my needs. I still have a zoom-out problems, but in the end I might just turn off this effect on big zoom outs. Also, my understanding of how MeshDrawer works has increased.

Animated textures have one drawback: it is hard to make them random in game. I have considered this, but scrolling and wrapping a scrolled texture (is it called parallax scrolling, btw?) is something I have not learned (yet).
Particles seemed to do this out-of-the-box.

I still have to figure out how MeshDrawer’s particles are better then classic particle effects…