Jorrit's blog

2005-06-14

Things TODO

Now that the celtest demo is released I can start thinking about what to do next. Here is a list of things that I have in my head and that I would like to do:

Extend genmesh with alpha channel support for every color (similar to spr3d).

Redesign the collision detection system in CS so that it will become possible to initialize more efficient colliders for well known primitives like boxes and heightmaps. It is specifically for the last example that this will be useful as doing CD on a huge terrain is now a costly operation due to the high amount of triangles needed to represent the terrain for the CD plugin.

Add a new flag to disable rendering a mesh after a certain distance. This is particulary useful for portals. In the celtestdemo that I made there are several portals that are only visible in close range due to the way the level is made but the sectors all use frustvis so they are not culled at all except when they go outside view frustum.

Make a new visibility culler that tries to find out when portals are invisible and doesn't worry a lot about the rest. A more general version of this would be a culler that only attempts to cull 'expensive' objects.

I'm considering adding a more general flag system for objects. Currently there are three ways to attach flags to a mesh. You can attach it to iMeshWrapper, to the iMeshObject, or to iVisibilityObject. The problem is that you can't choose. Some flags go to that interface and cannot be used elsewhere. From the interpretation of the flag it is not always easy to guess where it should go. I wonder if we shouldn't have a more generic flag system that is based on string ID's similar to how the event system will work.

I also want to work on the CEL pathfinding class. I need to find out how to use it and I would like to redesign it a bit.

CEL needs a new trigger for Line Of Sight.

CEL needs a new trigger for when two objects collide.

I would also like a 'notification' property class in CEL that can be used as a kind of reporter for in game messages.