   Some inquiries from an amateur
  Been searching for a while on this forums, an have found several interesting information on the past, so I thought I could use this site again to solve some question I have in mind.For the three past months, I've been involved in the creation of a naval simulation (to test navigation tacticas on sea), and I'm in charge of the 3d module. I was pointed to this task because I had some game programming background (mostly 2d, some really simple 3D Games) and would be the one most likely to catch up on the requiring concepts.The last months I've been reading several books about the subject (and still have a lot more to go) and started making the beginning ground for the simulator (forgot to mention, the selected language is C++ and OpenGL for 3D rendering), such as implementing a 3ds model loader, cameras, terrain, simplistic movement on the models I loaded, etc.However, given the amount of time we have to finish this project, I've reached the conclusion I could use a rendering engine (or maybe game engine) that is already built in, not to reinvent the wheel there (actually I want to reinvent the wheel, but I'll take that for my spare time, can't misuse work assets nor budget :p) and focus more on the implementation issues.So, this brings me to my first question. Which rendering (or game) engine would you recommend, having in mind the project is a Naval Simulator. I've been researching for some of them (OGRE, Irrlicht, etc.,) but time is a really restriction here, and can't really spare too much of it into evaluating the engines.I have been playing with OGRE for a while, but could like some advice from experienced programmers. The learning curve should be moderate, in order learn how to use it right and well (and recover for the lost time expended on a.. now useless code :p).Any comments and question could be great. It's a really interesting project I've got here, and a real good opportunity to learn.[Edited by - Yaraher on December 9, 2005 1:20:49 PM]
  Here is the thing, if you already know C++/OpenGL, and time is a big constraint, you might want to stick with that. The key is to use support libraries and reduce the ammount of code you have to write by hand.Engines are good if you have experience with them. But if time is an issue, it could prove to be a frusterating learning experience.Edit: Ok, that probably wasn't what you were looking for. Um, OGRE is good, and I've played around with panda3d a little bit. I think that one can do physics as well.http://www.panda3d.orgIf it's good enough for disney, it should be good enough for anybody. It has Python and C++ bindings I think.   ;  There are two main constraints with my project, time and trying to make the simulation (sea, shores, sky, meteorological effects, etc.) as realistic as possible without losing too much performance. The key here is that being a naval simulator, we don't really need 150FPS. That said, we don't want it too slow neither. However, being my first attempt at creating the 3D classes, time won't allow me to  research on how to accomplished this or that effect, or how to implement frustum culling, etc. I've reviewed most of the theory, but as I said before, I'll give it a try on my spare time. On this project, I think my own code won't do (or at least, not if I want to keep up with schedule) :p That's why I'd like some insides about which engine could be good for my problem. Thanks for your comments, KaptainKomunist. I looked into Panda3d a while ago, but didn't seemed so good to me (a bit unfair really, but other engines had better screenies :p). Between Panda3D and OGRE, which one would you consider to have a better learning curve?   ;  Well, this is the essential hello world program written using Panda3D in python...import direct.directbase.DirectStartfrom direct.task import Taskfrom direct.actor import Actorimport math#Load the first environment modelenviron = loader.loadModel("models/environment")environ.reparentTo(render)environ.setScale(0.25,0.25,0.25)environ.setPos(-8,42,0)#Task to move the cameradef SpinCameraTask(task):  angledegrees = task.time * 6.0  angleradians = angledegrees * (math.pi / 180.0)  base.camera.setPos(20*math.sin(angleradians),-20.0*math.cos(angleradians),3)  base.camera.setHpr(angledegrees, 0, 0)  return Task.conttaskMgr.add(SpinCameraTask, "SpinCameraTask")run()And this is roughly what you get...And here is a wiki link for a simple program in OGREHEREPanda doesn't have to be ugly either...Galery;  Comparing both of them, I like OGRE more.. seems a little more robust (and besides, Python doesn't grew too much on me when I learned it :p). Till now, I think OGRE should be the engine I could use. Is there any other that's OO like Ogre and have good characteristics? (performance, learning curve, etc.PD: I don't think Panda3D looks ugly :p, it's only those screenies didn't look good to me, I know, really unfair cause the content can be really anything from good to bad. I'm trying it anyway. Thanks for your replies Kaptain :p   ;  You can take a look at Open Scene Graph as well. It's specifically designed for OpenGL and among the cleanest OO designs I've seen so far.The one thing that really bugs me about OGRE is its huge size. A complete build will easily take up 1.5GiB of disk space - so if you use a stable and the CVS version in parallel, you'd need about 3GiB (I know, this isn't an issue for most of you, but I don't have/need/want a 80+ GiB HD [smile]).;  I second the advice to go with OpenSceneGraph. I've found it very easy to use, and far from being as intrusive as Ogre. Starting from one of the numerous samples available or from a tutorial (I recommend http://openscenegraph.org/documentation/NPSTutorials), you should be able to quickly build an application that can load and display meshes.;  OpenSceneGraph.. haven't heard of it. I'll definitely check it out this Monday (although I work from Monday to Friday.. I just enjoy learning more, so here I am on a Saturday :p). It could be really great if it had behind good learning resources. I'll review the tutorial you send me. Thanks so far.So.. between OSG and Ogre, the latter is too cluttering? I've been playing with OGRE and made a Release demo of a mesh model walking around, some simple camera functions, and it was about 13MB.. which is lot (the same demo made with my own code was less than 1MB). However, really liked the OODesign of it.;Quote:Original post by YaraherSo.. between OSG and Ogre, the latter is too cluttering? I've been playing with OGRE and made a Release demo of a mesh model walking around, some simple camera functions, and it was about 13MB.. which is lot (the same demo made with my own code was less than 1MB). However, really liked the OODesign of it.Guess I wasn't too clear about that - mea culpa [smile]. I meant the object files and libraries created when you rebuild OGRE from its source tree. If you already have pre-compiled libraries and dlls you won't need that much disk space. I, however, love to tinker a little with the code and see what's missing or apply custom patches (I contributed some swapchain code to OGRE), so I always rebuild from source if I can.;  I see. I also try to rebuild from source if I can, but I had some problems downloading the DirectX SDK at work (internet restrictions :p) so couldn't compile it, and have to coup with the SDK :pThanks for your answers so far, after installing Ubuntu at home, I'll start reading about OSG.   