Hi People

I'm just starting to put together a design for my new engine and I would like some feedback. I posted a image of my current design thinking.


http://alertfighter.mirthmedia.co.uk...lassdesign.png

A couple of explanations. the TBaseObject is my base class for all items in the engine, this class has overridden memory management routines to ensure the object creation and deletion is a fast as possible, and so that the system can use the memory manager that I use. All classes in the engine are derived the this one base class.

Everything else should be self explanatory. The TAsset class (for example ) is the base class for all the assets being used, the TAssetManager will handle those assets and will know how to load them from disk/web/archive and will manage releasing the asset when it is not being used, specialised managers are derived from this class.

The TSceneManager will handle the TSceneNode's (which can be derived from by other specialized objects) and will be responsible for building up a list of all the visible objects and their materials and mesh data to be passed onto the TRenderingSystem. The rendering system will be responsible for Ensuring the data is passed to the graphics system as efficiently as possible using the available THardwareBuffers. The TShaderMaterial will contain all the base data from the TMaterial and TTextureMaterial as well as a TGraphicsProgram object.

If anyone has any comments on this current design (good or bad) let me know, this will be my first large scale engine (i.e I want to be able to push a heck of allot of poly's with this engine) so I want to get as much feedback as possible.

Cheers