How much does Irrlicht abstract system level initialisation?

Discuss about anything related to the Irrlicht Engine, or read announcements about any significant features or usage changes.
Post Reply
Guesty

How much does Irrlicht abstract system level initialisation?

Post by Guesty »

I can't seem to find details on how Irrlicht and other (rendering rather than full game engines) abstracts the lowest levels of system / game initialisation.

What I mean is, when you have your main() function and have set up Irrlicht with it's few simple comands and for example selected EDT_DIRECTX8, how much is going on behind the scenes?

I am looking for a framework that I can rely on as being robust in the sense of not having to do my own caps.checking and fallbacks which I do at the moment. I know Irrlicht (and other engines) handily abstracts the rendering commands for different APIs but does it set up a robust app with just those few simple commands? At the moment I have pages of code which do a decent job (all the usual caps/system checks) but they are getting out of hand, and it would be great to use something that has been "pre-proven" on a wide range of systems.

Obviously given that the end user has DirectX8 would any feature you request in Irrlicht be emulated if not supported, or fail elegantly? Or is it still vital to check every cap somehow (in your own backend framework?).

I hope the above is clear and someone can advise. I just want to remove the uncertainty (or reduce it) that my game framework would be as compatible and functional as possible on a wide range of systems from lower end to mid.

Also does the engine fallback automatically to use Opengl for instance or do you do simple check for DX then fallback?

there is probably some info on this somewhere and I just need a link, but I am going around in circles trying to find comfirmation on this.
niko
Site Admin
Posts: 1759
Joined: Fri Aug 22, 2003 4:44 am
Location: Vienna, Austria
Contact:

Post by niko »

Irrlicht does all necessary caps checking for you. And it works, look at the amounts of users using Irrlicht, most of them have different hardware.
Irrlicht automaticly switches off several features if not available on the hardware of the user. For example if you want a stencil buffer for the shadows, and the device is not able to do this, the device will start up anyway, but with stencil shadows disabled. You can query if stencil shadows are available after you created the device with IVideoDriver->queryFeature().
If the Device is not able to start up at all, for example because you wanted it to use D3D9, but the user does not have installed D3D9, the createDevice() functions returns 0 instead of a pointer to an IrrlichtDevice. In that case, you could try to create a device with different parameters (D3D8, OpenGL) or you could ask the user to select one, or display a message box that he should install D3D9, or whatever.
Guest

Post by Guest »

Thanks Niko... that is nice clarification to have. And well done on your engine it seems very intuative! :)
Post Reply