Sign in to follow this  
EmpireProductions

Parts of a Game Engine?

Recommended Posts

I am trying to layout the folder structure for my Game Engine so I need to know all the different parts that are included in a game engine. I know that general components are included in the engine while more game specific components are included in the game and not the engine. Here is what I have so far: Graphics - the classes and methods for starting the rendering engine and things like that go in Graphics. Audio - the Audio engine Network - Networking manager Math - Math helper classes Objects - helper classes for loading different types of objects Particle - Particle Manager Physics Would AI go in the engine or the game? I know different types of games need different types of AI. What else should be included in the engine?

Share this post


Link to post
Share on other sites
BoReDoM_Inc    112
Input, OS event handling etc. would also be a part of the game engine. AI is usually a part of a game itself. A game engine usually comes with tools for world creation, asset importing etc.

Share this post


Link to post
Share on other sites
Hodgman    51220
Everything that you need to build your game (so probably a base AI module, like A* routines) is in the engine ;)

Entity/Component system.

Events, triggers.

Scripting.

GUI.

Debug screens, utilities (stack traces, memory dumps).

Concurrency framework.

Spatial partitioning.

Share this post


Link to post
Share on other sites
zyrolasting    280
Hey Empire!

As you likely know, An engine is really just the application you "really" run when you start a video game. When you start up a copy of a popular game like COD4 or even an obscure one like Pac-Man World, the game in itself doesn't really have much of a unique manifestation. You just ran the engine that was simply made aware of resources to bring a world to life. I babble about that because there is no way we can tell you all the parts that can be included in a game engine. We can list several useful tools like light map compilers and script interpreters, but some of these may be abandoned overnight in favor of a new concept.

There is no one Game Engine you can make that can sit on your drives ready for anything. However, some teams can dedicate a huge amount of time and resources to develop a "general" engine that keeps up with the industry like the powerful and widespread Unreal Engine. These applications offer well-to-do editors, but the games that are output are really just copies of the engine with different resources. UT3, Bioshock and Mass Effect are all one app.

Hobbyist and indie developers can dedicate time to making powerful tools and engines, but should understand that it's probably better to parametrize very general tasks that all of your games WILL go through and just concentrate on making specialized features for each game. You can surgically extract specialized code you want to use again or start a new project dedicated to writing an engine tool like Terragen, which can really help you out.

This wikipedia article answers your question more specifically in the first paragraph.

Here are some links to game tools I scavenged, as well as the wiki article.



Long story short: Whatever your game requires is what your engine needs. You will always need a new engine at some point anyway. Just try to generalize some parts of the engine that you know can be reused, and try to collectively make a piece of software you can eventually come back to over and over again for developing your next big hit. [smile]

Hope this helps, and cheers!
-Zyro

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this