13th March 2002

Well since my first update there has been quite a bit of work done on the engine as well as multiple changes.

The main engine object structure has gone through two major re-builds.
The first was to clear up a lot of the crap that was in there and to make it more development friendly.
Now instead of having the engine create and destroy all of the engine objects (eg. Meshes, Particle Systems, Terrains, Etc.) that is now left up to the program using the engine. This makes it a lot easier to use and it makes debugging a lot easier.

The second re-build was to move the objects from a list type structure to a tree type structure.
This makes clipping algorithms easier to implement because it let's you clip an entire branch of the tree so it doesn't get rendered.
The tree format also allows you to create objects that have child objects and by moving the parent object all the child objects will get moved with it. This makes it possible to have things like a tank with a separate turret object. By moving the tank the turret get's moved automaticly.

The other part of the engine that has gone through a rebuild was the messaging system.
In the first version the messages were placed in a queue and each object picked up any messages for them in an update function.
Now the messages are sent directly to all objects allowing them to be acted upon immediately.
I have plans to do another re-work on the messaging system sometime but that will be at a later date.

At the moment I'm working on the particle system. The difficult thing about particle systems is the fact that the particle update function needs to be very quick. This is because in a particle system with 5000 particles it going to get called 5000 times per game update. If you try to do anything fancy it hurts your frame rate badly.
My solution is simply not to update every frame. By only updating a specified number of times per second that is frame rate independent I've managed to go from 70fps with 2000 particles to 70fps with 15000 particles with almost no loss in quality.

Ok that's enough from me now. More next time.

  • Matt
  •   4th January 2002

    First update of the Diary page.

    First work on the engine done.