Game Development Community

AFX 1.1 for TGE - Now Available

by Jeff Faust · in Arcane FX (Public) · 03/06/2008 (1:21 pm) · 2 replies

AFX 1.1 for TGE 1.5.2 is now available.

Here is a summary of new AFX 1.1 features that pertain to TGE:

Particle System With TGEA-style Enhancements
On TGEA, the particle system went through a number of changes that reorganized its classes and made the rendering more batch-friendly. Starting with TGEA 1.01, additional functionality was added to the particle system, including: tiled particles on a single texture, tiled particle animation, fully expanded blend functions, and optional distance sorting. For AFX 1.1, we've duplicated these particle system enhancements on TGE.

Customized PhysicalZone Effects
AFX 1.1 customizes stock PhysicalZones to make them more useful as AFX effects. First, PhysicalZone forces can now be oriented using its transformation, which is meaningful when constraining the zone to other objects. We also added radial forces in spherical and cylindrical shapes for use as repel effects. Finally, we optimized PhysicalZone networking to reduce the cost of moving them around.

AFX 1.1 includes two new experimental spells that demonstrate PhysicalZone effects. Try Physical Zone shows how to use a PhysicalZone to repel objects. Try Flying shows how a small PhysicalZone constrained to a Player can be used like a steerable motor to achieve basic flying.

Client Datablock Cache System
We were going to postpone this feature to AFX 1.2, but we took a stab and managed to complete a stable system for AFX 1.1. The intent of this feature is, of course, to reduce load times caused by the transmission of large numbers of datablocks from server to client at startup. The speedup is achieved by caching all datablocks from a previous transmission in a file local to the client. On subsequent loads, if the cache matches the server's, the client loads datablocks from the file. Because datablock loading also includes asset loading in the datablock preload() methods, the speedup is not as dramatic as one might hope, but our own testing produces about a 50% speedup of load times when datablocks load from the cache.

Runtime Effect Load Filtering
The new datablock cache system is nice to have, but when you are actually developing new effects, you are often changing datablocks and this spoils the cache and its benefits. So, for more rapid prototyping during effects development, we added a check-mark gui to the AFX-Demo which allows you to enable loading of just the effects you need for current development and testing. It's nothing fancy, but when we were tuning all of our effects for AFX 1.1 and TGEA, this little gui sped up the process considerably.

New Spell Preview, Chill Kill
AFX 1.1 includes a preview of the icy sibling of Great Ball of Fire, dubbed Chill Kill. As you may recall, Matt wrote a blog about this spell some time ago. It's not completely finished, but it's close. It just requires a little polish on how the impact affects the target and it still needs audio.

New C++ Effect Adapter Mechanism for Integrating New Effects
For AFX 1.1, we overhauled the internal mechanism for connecting new effects into AFX. The new system is much easier to comprehend for any programmers who would like to extend AFX by integrating custom building-block effects into the AFX system.

(EDIT - made some changes to that last blurb for clarity)

About the author

Jeff Faust creates special effects indie middleware and games for Faust Logic. --- Blog: Effectronica.com --- Twitter: @FaustLogic


#1
03/06/2008 (1:43 pm)
Hoody hoo Jeff! Nice work. Can you tell more about the c++ effect adapter mechanism?
#2
03/06/2008 (2:25 pm)
@ Dave -- re: "the c++ effect adapter mechanism"

A - It still needs to be documented. (AFX Programming Guide 1.1 not written yet)
B - Operationally, the mechanism is mostly the same as it has always been, but re-organized. Previously, to add a new effect one had to make edits in a number of different locations and this was hard to explain and hard to figure out. With the new mechanism, each new effect adapter is consolidated in its own source file making easier to put together and easier to comprehend.
C - In short, an effect adapter acts as a bridge between the core part of AFX and individual building-block effects like Explosion that are outside of AFX. An effect adapter mainly deals with effect startup, shutdown, fading in and out, positioning, orientation, and some other things. Not all effects do these things exactly the same way, so an effect adapter is implemented to make it look the same to the AFX core.