I have tried to search up an answer for this but haven't found a really great answer... What would the difference between 3D engines like Irrlicht and Ogre3D be compared to a full-fledged game engine like Panda3D? Disregarding that Irrlicht and Ogre3D are able to make prettier graphics than Panda3D what can Panda3D do that the two 3D engines can't? The reason I'm asking this is because that I read on the Irrlicht website that it has built-in collision detection and that was something that I thought would be only in a game engine so where is the line drawn between an engine that is considered a 3D engine and an engine that is considered a game engine?
Now I'm not asking for an answer specific to those engines but in general. And if it helps the only game programming experience I have is a few months of developing with Dark GDK.
well it took me a second to figure out what you were asking, but i guess that's kind of a good question. I guess I don't really know if there's a true "line" because the definition of a game engine is just any underlying core technology that powers the game. If you break it down though, the term game engine doesn't really have a definition. Personally I consider the qualifications for an engine to be either:
1) the same code has been used to create multiple games
2) a programed designed in a fexible enough way to be incorperated into many different existing game projects
Now notice I'm not saying anything about the quality there.
Unfortunatley the question you're asking doesn't really have an answer. It's just kind of a judgment call from someone who has experience working with them. Even if it did have an answer, no one should base their engine choice off of its classification, its all about the needs you have. If you need better graphics, get a graphics engine. Physics help? get a physics engine? Need to make a game quick? You're getting into map editor territory...
So sorry to give such an unsatisfying answer but... I really don't know what else to say. I guess the straitest answer I can give is that it just kind of boils down to what it was intended to be. If Irrlicht has collision detection + AI + networking, then yes, I would probably call it a game engine. If Ogre just has graphics support, its just a graphics engine. If panda claims to have everything, well, it's an everything engine.
How I see it, a 3d engine is used to "play" 3d content, like a video, while a game engine includes everything to handle the "physical" side of the world as well.
Nothing stops you from making a game using "just" a 3d engine. That said, irrlicht at least is more of a game engine than a 3d engine..
Another way of making the distinction would be to draw the line between "generic" engines and engines that have been used in some game. You can do anything with a "generic" engine, while the other would be more of a modding target.
So in the end it's pretty clear nobody knows what the difference is, and you'll have to study the engines more closely to figure out what they're capable of. =)
Well, I was asking because knowing the "definition" of 3D engines and game engines would give me a better general idea of the feature sets in different engines which are commonly classified as either 3D or game. But I guess like startstutter says, it's really the call of the developer and it can vary greatly. So the only way to find out is to research on the specific engine and see what it can do rather than just looking at the type of engine classification of it.
Thanks for your help! =)
A 3D engine is a rendering engine primarily. It may have associated features, usually in the realms of middleware subsystems, but it doesn't range far from visual technologies.
A game engine would contain one or more different elements that go into a game, meaning: visual, audio, input/output, middleware (AI, physics, networking, etc...) and tools (editors, validators, etc...).
Of course, I have no authority whatsoever to enforce this eminently logical separation...
Thanks for your input, alphadog.
I think I'm gonna go ahead and work with Panda3D, just for it's broad feature set and completeness which should serve a newbie like me well. I think looking into specialized systems and binding together different libraries for different things I will look at some time in the future.
A 3d engine is just that, a realtime renderer that can be used for games.. or something else. Theoretically, it provides a host of additional facilities for rendering a scene above and beyond what is provided in a lower level 3d framework like Direct 3d.
A game-engine is altogether different. It includes a rendering system, as well as systems for AI, collision detection, and everything else required by your core game application.
Further, I would say that a 'game engine' is a singular integrated system of frameworks and facilities that were designed and intended to work specifically together in the support of a game application. By that I mean that if you take a 3d engine, a physics engine, a AI framework, and sundry bits and pieces of cool tech from here and there, you will never reach a point where you have a 'game engine'. You can certainly use all of those things to make a game, but it will require a substantial amount of glue code that is simply not necessary with a 'game engine'.
That is why Ogre is not a game engine, no matter how many extra parts you can download with it, and Panda is. When you see alot of these projects with these feature sets, make sure you know what you are getting. It does not matter if it includes a physics engine or anything else, if its not a game engine you will have to write one to get from those pieces and parts to an actual game...