I have been looking at the matrix and transformation code in this. It's really well done. I did not realize that Blitz3D created a global matrix every time an entity changed. That is quite a bit easier to work with than storing the local matrix and rendering entities in hierarchies of pushed and popped matrices.
I have a little experimental mod running, using MiniB3d's transformation code, and the rest is code ripped from my engine. The Blitz3D entity system is its greatest strength, but I prefer my own terrain, lighting, and materials setup. I also use special BSP brush geometry for the world, instead of triangle meshes.
I think collision and raycasting should be handled exclusively by third-party libraries. Even with an mesh octree, Newton is much faster than Blitz3D, and it allows things like returning an array of triangles within a bounding box, which is how I render fast dynamic shadows.
The convenience of the Blitz3D API is what makes it a great system. It just needs a technology boost, like shaders, instanced meshes, and better lighting.
We'll see what happens...
I have a little experimental mod running, using MiniB3d's transformation code, and the rest is code ripped from my engine. The Blitz3D entity system is its greatest strength, but I prefer my own terrain, lighting, and materials setup. I also use special BSP brush geometry for the world, instead of triangle meshes.
I think collision and raycasting should be handled exclusively by third-party libraries. Even with an mesh octree, Newton is much faster than Blitz3D, and it allows things like returning an array of triangles within a bounding box, which is how I render fast dynamic shadows.
The convenience of the Blitz3D API is what makes it a great system. It just needs a technology boost, like shaders, instanced meshes, and better lighting.
We'll see what happens...