Why no November Release?
As many might have noticed the release of the November Beta delayed and delayed since 31.10.2011. The simple reasons are: University, another Mod (Food Fight) I'm working on and, too name the frustrating one, heavy problems with the implementation of my own Mesh Render System.
So let me explain why Meshes makes it that difficult to be used for Particle Systems. In Build 250 (September Beta) I finally implemented Static Mesh Support, it worked fine and I intended to use the system for all mesh-based Emitters. That'd be: Mesh Emitters, Vertex Emitters, Beam Emitters, Spark Emitters and Ribbon Emitters. In fact these are actually the majority of all Emitters adapting the Static Mesh Support on the Particle Engine it made many things more difficult.
Emitters using the Mesh System
- Mesh Emitters: are used to draw 3D Models extensively as Particles
- Vertex Emitters: based on Mesh Emitters these render Sub Sprite Particles at the Vertices of a 3D Model (giving a volumetric appearence, simulating fog, HDR/Bloom)
- Beam Emitters: each Particle consists of multiple Segments forming a Beam, Meshes are used for real Beam Emitters here, sprite-based Beam Emitters DO work currently
- Spark Emitters: render stretched thin Particles giving the appearence of Sparks (example: sparking during welding)
- Ribbon Emitters: similar to Beam Emitters, but the Segments behave like Ribbons (example: Skyrim's Healing Spell Effect in 3rd Person)
First I simply rendered a Static Mesh at the position of a particle. Worked fine. But when it comes to the critical property "Rotation", the C++ Function GetFrame (UT Public Source) makes life miserable as it's limiting the usage of any Mesh Instance on Actors. Even if passing a different Coordinate System to get arround the rotation issue, it tend to didn't work properly. So I wrote a dummy Actor that is spawned with each particle to be passed to the GetFrame function... well, even that tended to give problems (Critical Errors, using Actors which has to be avoided for performance reasons). Well and without control over Rotation each mesh-based Particle won't turn, spin or orient, which is even much more worse for Beam Emitters as they consist of linked Meshes. After frustration grew so much I stopped working on it and focussed back again on drawing a Mesh directly at the particle's position without a dummy Actor and ask for help now.
December Beta Preview
Thus there'll be no November Release and I hope that I will get around that major problem until the release of the December Release (end of December / early January). Instead the December release will feature a couple of more new features and a lot of bug fixes that were once planned for November Release:
- Realtime editable Emitters (changing spawn rate of particles and more)
- all Corona Emitters removed, all Sprite-based Emitters have the option to render the Sprites as Coronas instead
- new SubUVEmitter (as seen in Unreal Engine 3.x)
- working SpriteBeamEmitter (they don't rely on the Mesh issue)
- LOD Support for Emitters
- Attractor Support for Emitters
- Wireframe Render Support for Particles
- new HUD and Gametype specialized for game/mod development with minimalistic look and no weapon (ideal test environment)
- fixed: floating point function generators (used in the Particle System for manipulating Size, Color, Brightness etc.)
- fixed: serious game crash caused by the new LevelInfo when starting Game
- fixed: not saving map after it has been newly created when having a sdkLevelInfo in the map
- New SDK directory structure, makes it possible to install the SDK completely outside of the Unreal Tournament directory and prevents messing up your configuration files as the SDK will have it's own
- Material Shader Support for Static Meshes (previously only working on BSP), Decorations and Pawns