Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I have heard that Ogre 3D is not actually a game engine, rather it is a 3D render engine. I have also heard people claim that one can piece it together with other components (engines?) to create a full featured game engine. So my question is:

  • What are the other types of components/engines one would have to add to Ogre 3D to create a game engine?

  • Also, what are the most popular and powerful examples of these other components/engines?

share|improve this question
    
For your second point, is there a specific platform(s) you are targeting? –  Ari Patrick Oct 29 '10 at 18:44
    
Ari Patrick, I am planning on making a first person MMO adventure game for the XBOX 360/Kinect, PS3 and Wii. Thanks for asking. –  J3M7OR3 Oct 29 '10 at 20:47

2 Answers 2

up vote 7 down vote accepted

This question is pretty much 'what is a game engine'. Game engines are whatever software is needed to make a game, and there is no accepted checklist of what needs to be in such an engine for it to qualify.

That said, any simulation-style game will essentially do three things: acquire input, perform simulation, and present output.

For input you need to consider spatial peripherals such as mice, keyboards, joysticks, joypads, tablets, touch-screens, computer vision systems like Kinect, Wiimotes, etc. You might also consider audio peripherals such as microphones and indeed speech-to-text one layer up from that. The network is also another potential form of input.

For simulation, a lot of this is game-specific so it's hard to provide generic functionality that suits all games. But systems that may exist for this purpose could include physics simulation, pathfinding and planning algorithms, hooks for script-based decision-making, different types of time-based animation, and so on.

For output, the classic one is graphics - typically divided into the presentation of 3D models (which in turn tends to divide into environments and vehicles/characters) and 2D sprites and particles, but often with some overlap between the two and additional functionality for post-processing. There may also be support for video streaming support, multi-monitor displays, a GUI/HUD system, etc. Beyond graphics you have sound, usually including positional and non-positional sound effects, streamed music, and maybe filters to apply to the sound. Other forms of output include networking (again), force-feedback devices, log files (often more complex than you think), on-screen debugging aids and overlays.

There will also be some systems that exist outside of or parallel to the simulation which are useful for development - eg. tools for creating and manipulating game assets, persistence of game state (for save/load), script editors, internationalisation and localisation tools, test suites, etc.

How many game engines contain all of the above? Probably none of them. I expect some of the commercial offerings come pretty close however.

What would you have to add to Ogre to get a full game engine? Well, you find out what you need for the kind of game you want, see what Ogre provides for you, and add the rest.

share|improve this answer
1  
+1 for the detailed and accurate response. Excellent work, Kylotan! –  Ari Patrick Oct 29 '10 at 18:45
    
Kylotan Thank you so much. I have a good idea of what to look for now. –  J3M7OR3 Oct 29 '10 at 20:48

I'd say the most important are:

Sound Physics Networking

Of course, depending of the kind of game you want to do, you have to choose how to implement the game architecture and the AI. I don't really know if there is a common way to program AIs of such or such kind. And you may also strike out networking if you want to make a solo game.

Of course there are dozens and dozens of other feature you might want to implement in a game engine, but those are subject to how you plan to design your game engine. Things like game file loading, GUI...

Sound: Fmod, IrrKlang Physics: Havok, Bullet, PhysX Networking: I don't really know if there exists a popular networking engine... networking in a game has already several architectures to choose from and even then, it depends a lot on the architecture of the game (I think).

share|improve this answer
    
Thanks for pointing out a few examples of Sound and Physics engines. –  J3M7OR3 Oct 31 '10 at 17:45
    
Unlike most software libraries, gaming-related libraries are often proprietary, mainly because the problem they solve are hard to solve, but also because the software built is not software for the industry, but for the entertainment, and with a tons of other reasons: unlike traditional software, game code always evolve because the language available on the platform are not always all-featured C++, but also, the speed of execution changes a lot, and there are a lot of different things that becomes available when a faster machine is there (without thinking about embedded consoles). –  jokoon Oct 31 '10 at 19:14
    
I agree that thinking about making an engine based on existing robust libraries is a noble task and idea, but in the absolute, the fact that the game programming task evolves a lot and the fact that platforms will always be an implementation barrier, you will quickly understand why applications like Unity are the only way to abstract those problems: code alone will not ease the task of the programmer. The best way I can think about when easing the task, is come of with your own basics to handle the task, but making maintainable enough, obviously meaning doing it the K.I.S.S. way. –  jokoon Oct 31 '10 at 19:22

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.