I would like to generate realistic 3D images using a rendering engine to reproduce outdoor environments. Here is my list of the most specific constraints :
- Linux and Windows support
- Moving clouds generation
- Terrain generation with mountains and holes
- Basic vegetation generation or importation
- Water and waves generation
- Particles generation (to simulate smoke)
- Objects importation (car, buildings)
- Camera view control through HMI interface (arrows or joystick)
I also need to retrieve the image matrix at anytime for network interfacing with another computer.
The project may be subject to changes during the next 10 years. I'm looking for a sustainable and mature engine with enough documentation and a large community to make sure my software will easily be improved in next years by my successors, and that it will still be competitive.
Choosing a 3D engine from scratch is not so easy. The most attractive engines I found for the moment are Ogre, Irrlicht and Unity 3D. Torque 3D seems very interesting since it switched into MIT license but the Linux support seems to be quite unstable...
I hope that your experienced opinions will help me in this choice.
I can buy a license if an proprietary engine has many more benefits than others for my application.
Any advice would be greatly appreciated !
It's really hard to compare engines because it takes a long time to learn any one. I think you can get a little jump on game creation if you pick Unity from those choices. Unity's main problem is it doesn't have dynamic shadows with the free version. The database will help compare features and give you opinions of users. Also, go to the site and look at games created with the engine and talk to people on the forums about features, etc.
Check out the DevDB here on devmaster. Read some of the feature specs and reviews to help you make your decision. No engine will be cookie-cutter for you. Almost everything on your list you will have to handle yourself or least modify the way it may be done by any specific framework. An engine will try to provide you the tools and code to work on those tasks as easily as possible, but you will still be required to build something from the ground up or modify how the engine currently does things. Keep that in mind when you settle on something.
Ogre and Unity are the only engines I've heard of being used commercially. Ogre however is not a complete game engine and handles only graphics, requiring you to do the rest. Unity is more feature complete, but depending on your needs you may need to go pro.
For good looking terrain, you may want to take a look at Terragen. You can build and then export the data to be used in your game. Some frameworks like Ogre support terrain rendering, but I'm not sure how good their algorithm is or what's required on your part to import the data. You'll need to read their docs to get a better idea of the support level you can expect.
For clouds and water, you might want to take a look at Sundog Software. I believe they posted their work here in the IOTD days and it was quite good. You'll need to interface these with whatever engine you decide to settle on.