Parts of a Game Engine?
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?
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.
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.
Entity/Component system.
Events, triggers.
Scripting.
GUI.
Debug screens, utilities (stack traces, memory dumps).
Concurrency framework.
Spatial partitioning.
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
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.
- This place offers entire engines to strengthen another.
- Unreal Development Kit
- An informative database of tools and resources.
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
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement