JJ Malone wrote:Of course the runtime size of 5 megs for something so simple as rotating cubes isn't enchanting ..
The DarkBasic Professional engine is plugin-based and resolves all possible dependencies depending on the entire library and not individual commands. This means that plugins may be included in your project that you don't actually use, because the entire plugin is still required as a dependency.
The advantage of this is that you don't have to resolve the dependencies yourself (bonus!). The downside is that you now have to exclude
those libraries you don't need. This can be done in the setup.ini 'EXCLUSIONS' key of the DarkBasic Professional compiler.
DarkBasic Professional 6.8 introduced the ability to compile with the engine DLLs outside of the exe. This allows you to build a loader that compresses the engine until runtime. The engine DLLs are large because they're optimized for speed and not compactness. You can compress them with a very good ratio of 1:6 and up.
JJ Malone wrote:Next, creating appropriate water that reflects / refracts and that contain depth fog is something I know how to do in Blitz3D. I have seen examples of this in DB Pro but it didn't have depth fog. To do this, you need to have a clip plane above the water level so the fog will be generated from under that.
You can specify the clip plane in PureGDK using dbSetCameraClip:
dbSetCameraClip(CameraID, ClipOnOff, x.f, y.f, z.f, nX.f, nY.f, nZ.f)
This command will set the clipping plane for the specified camera. The parameters include the origin (x, y, z) and a normal on the plain to specify the distance (nX, nY, nZ).
For fog have a look at dbFogDistance, dbSetObjectFog, dbFogColor, and dbFogOn/Off. You can also use fog through your own pixel shaders.
JJ Malone wrote:So, being borderline 60 fps for displaying 1000 cubes didn't really enchant me!!!
Enchant you or not it's just a simple benchmark for comparison. It shouldn't be taken as a real-world example for any of the engines. You have to actually use the engine and decide if it is adequate for your needs in features and capacity.
JJ Malone wrote:A physics engine is absolutely required for my project. I know how to use Newton, and a little PhysX. So, that is still something pretty far off for now as using a physics engine is rather complex if you don't have a simplified version of it in a wrapper type of API.
Well, with PureGDK you have a choice! There is both Newton and DarkPhysics PhysX (hardware and software). With DarkGDK there is only DarkPhysics.
JJ Malone wrote:Honestly, I would be surprised that the CSG routines aren't bug free as CSG is rather pretty complex to do.
You will have to decide for yourself the state of DarkBasic Professional's CSG features. If you prefer another CSG solution like OpenCSG then it's entirely possible for you can write a wrapper plugin yourself for DarkBasic Professional using PureBasic.