Managing visual effects

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Managing visual effects

      "Visual effects" means the things that are used for showing some state of the game world. The effects have no real impact to the game world.
      For example, assume that a player character do some damage to an enemy in game. The game should display something to show the amount of the damage. Here, "something" is some kind of "visual effects".
      How should we achieve this?

      One possible approach is to create an actor along with some particular render components to show the effect when needed.
      But, since the effect doesn't affect the game world, it seems to be somewhat strange to create an actor purely for displaying the effect.

      Is there any better way to manage the visual effects? :)
    • babygogogo wrote:


      One possible approach is to create an actor along with some particular render components to show the effect when needed.
      But, since the effect doesn't affect the game world, it seems to be somewhat strange to create an actor purely for displaying the effect.

      Is there any better way to manage the visual effects? :)

      This is exactly what actors are for. Now, I wouldn't make every single particle an actor, but the particle emitter itself? I would almost certainly make that an actor. Our voice-over for the tutorial was an actor in Barbie Diaries. It only had a sound component (it didn't even have a transform!) It is absolutely valid to have an actor that has no effect on gameplay.

      This doesn't mean that everything should be actor, though some engines do follow this model (like Unity), but most things should be.

      -Rez
    • Most of the time, effects are actually controlled by the logic side. Not the rendering of effects, but whether or not they're on. In this case, you can think of the actor and component as an interface to the effect.

      You can already see an example of this kind of interface in GCC if you look at the Renderable component. It behaves much like I'd expect the emitter to. In fact, the particle emitter could potentially be a type of renderable, depending on how you wanted to implement it.

      -Rez
    • Typically, yes. The animation system itself can be seen as something that lives on the render side, but not always. High-level animation (i.e. what anim state should I be in) is almost always on the logic side.

      -Rez