Sign in to follow this  

Open source game & game engine

This topic is 3042 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

My main project, Sirrf, is based upon Irrlicht. That means that you should consider this biased.

In the past few years I've tried various open-source engines: OGRE, Irrlicht and Crystal Space. Initially I tested OGRE, because it was the most reviewed open source engine at DevMaster.net (see: 3D engines database). I didn't get it to work and tried the next engine on the list: Irrlicht. I downloaded it and it just worked. I could immediately start working. The main reason for this is Irrlicht's simple API, which is incredibly easy to learn. At some point I also tried Crystal Space, but it felt way to complex. Eventually I also got OGRE working and I spend some time with it, but at some point I switched back to Irrlicht appreciating its simplicity.

And it looks like Irrlicht is becoming more awesome everyday. Development activity is increasing, games are being made and various tools and extensions (Sirrf for example) are being developed.

That doesn't mean that Irrlicht doesn't have drawbacks. Some people said that you'll need community plug-ins if you want next-generation graphics. Others have also mentioned that Irrlicht might not be suited for large scale projects. Genuine points, but so far I haven't run into them (yet).

The best advice would be to look around and try various engines. See which one fits you the best.

Share this post


Link to post
Share on other sites
Quote:
Original post by superoptimo
About Irrlicht, do you know to to configure its coordinate system to Right-handed system (like OpenGL) ??


This certainly a bit off-topic, but I'll try to answer your question anyway. However, if you've follow-up questions it's probably better to create a separate thread.

Irrlicht's coordinate system is left-handed. You could manually convert left-handed coordinates to right-handed coordinates with the following code:


myVector *= vector3df(-1.0f, 0.0f, 0.0f);



If you want to affect the whole system, you'd probably have to modify the engine. I'm not sure if you would want to do that. Especially considering the fact that it isn't that hard to learn to work with left-handed coordinates.

Share this post


Link to post
Share on other sites
Quote:
Original post by ZCCdark203
Quote:
Original post by superoptimo
About Irrlicht, do you know to to configure its coordinate system to Right-handed system (like OpenGL) ??

myVector *= vector3df(-1.0f, 0.0f, 0.0f);


Uh, that's ugly. How does Irrlicht define the result of multiplying two vectors? To me, only dot-prodict and cross-product make sense (btw, in C++ you could also define your operator* define to return dot or cross depending on the left hand side of assignment).

Share this post


Link to post
Share on other sites
Quote:
Original post by phresnel
Quote:
Original post by ZCCdark203
Quote:
Original post by superoptimo
About Irrlicht, do you know to to configure its coordinate system to Right-handed system (like OpenGL) ??

myVector *= vector3df(-1.0f, 0.0f, 0.0f);


Uh, that's ugly. How does Irrlicht define the result of multiplying two vectors? To me, only dot-prodict and cross-product make sense (btw, in C++ you could also define your operator* define to return dot or cross depending on the left hand side of assignment).


I've more commonly seen separate functions such as cross() or dot() instead of overloading * since it is more clear. I would guess that Irrlitch does the same.

Share this post


Link to post
Share on other sites
Quote:
Original post by c_olin
Quote:
Original post by phresnel
Quote:
Original post by ZCCdark203
Quote:
Original post by superoptimo
About Irrlicht, do you know to to configure its coordinate system to Right-handed system (like OpenGL) ??

myVector *= vector3df(-1.0f, 0.0f, 0.0f);


Uh, that's ugly. How does Irrlicht define the result of multiplying two vectors? To me, only dot-prodict and cross-product make sense (btw, in C++ you could also define your operator* define to return dot or cross depending on the left hand side of assignment).


I've more commonly seen separate functions such as cross() or dot() instead of overloading * since it is more clear. I would guess that Irrlitch does the same.


Though from ZCCdark203's code we have seen that Irrlicht at least allows such code.

My agreement on the "is more clear" argument.

Share this post


Link to post
Share on other sites
Quote:
Original post by phresnel
Uh, that's ugly. How does Irrlicht define the result of multiplying two vectors? To me, only dot-prodict and cross-product make sense (btw, in C++ you could also define your operator* define to return dot or cross depending on the left hand side of assignment).

I agree that it's ugly and I wouldn't recommend doing it on a large scale. That being said I wouldn't know why one would want to switch between left-handed and right-handed coordinate systems when using such 3d engine.

As for multiplying two vectors. As you can see in the API documentation, Irrlicht's vector3d<T> provides crossProduct and dotProduct methods, but also operators.

Share this post


Link to post
Share on other sites

This topic is 3042 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this