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.

Recommended Posts

Hi there, Does anyone know which is the best open source game and game engine out there? I am new to game programming. Thanks in advance. Regards.

Share on other sites
http://bit.ly/E6uED

Share on other sites
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 on other sites
About Irrlicht, do you know to to configure its coordinate system to Right-handed system (like OpenGL) ??

Share on other sites
Quote:
 Original post by superoptimoAbout 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 on other sites
Quote:
Original post by ZCCdark203
Quote:
 Original post by superoptimoAbout 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 on other sites
Quote:
Original post by phresnel
Quote:
Original post by ZCCdark203
Quote:
 Original post by superoptimoAbout 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 on other sites
Quote:
Original post by c_olin
Quote:
Original post by phresnel
Quote:
Original post by ZCCdark203
Quote:
 Original post by superoptimoAbout 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 on other sites
Quote:
 Original post by phresnelUh, 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 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.

Create an account

Register a new account

• Forum Statistics

• Total Topics
628744
• Total Posts
2984483

• 12
• 25
• 12
• 10
• 17