not to be funny but I am running out of patience with what TGC keep saying about the 3D,
there is STILL no DBO format, which was suppose to be implimented by now.
there is STILL no real object access, although there are now commands for this - without documentation its about as useful as a chocolate fireguard.
quite frankly if the TPC SDK had a library file and headers for the Basic3D DLL, there would already be low-level vertex access, there would already be CSG, there would already be additional Shader support.
TGC can keep sitting there fixxing bugs, but quite frankly if some of us had some REAL access to the engine we'd of been able to impliment one hell of alot.
Quite frankly what has stopped me from wanting to release things is the sheer speed difference between natively doing operations and doing them within DBPs command structure.
20ms speed difference might not seem much, but you do that every frame per second @ 60fps thats a 1,200ms latency (1.2 SECONDS!!)
what does that mean? well you ever played Quake3 online on a 33.6/56k modem? Well then you know EXACTLY what that means.
i'm not against TGC adding these features themselves, but they're effectively tieing the hands of the TPC developers ... the way the dbp is setup, it would also make it impossible to replace anything without replacing several other things at the same time.
Basic3D -> Memblocks -> Sound/2D/Music -> Core
before you know it you've had to replace the entire sodding engine, when all you wanted to do is simply edit the vertex positions.
it is extremely inefficient to have to
Object -> Mesh -> Memblock -> Change Mesh -> Object
you end up having not only 3seperate versions of an object
so a 250kb object will now take up 750kb, but also you have the latency between each of the creations - which although this is simply the declaration of the memory and copying of memory to memory isn't even close to as fast.
At most you should ever only require a single index/vertex buffer and edit its size to suit the current data load...
swear i'd love to get my hands on the source to see how this is all setup, my guess is it is definately not optimised, either memory or processing wise - just built for compatibility.