Question: Understanding the components used for game programming
Hi there, by the look of the new ppl to gaming development(Yes I am one of them) asking questions about game development I will try to keep my questions short and concise.
I have been developing in C# for a long time and have started developing small C++ apps for about a month now. Having looked at possible game engines I found a couple I like 3D Game studio, Torque Engine.
Regardless of the requirements of any game that I may attempt (fail) to produce, what really goes into developing these games?
I mean im new sure, and google is my friend yes but im still vague:
I understand a game engine as:
Bunch of scripts that can be inherited/called which will allow you to interact with graphics(sprites/text/objects/etc..)
I understand a world builder as:
Linking the game engine to the world builder and then dropping objects created through the engine and placed into the world I create, and then utilising C++ to write methods/classes to move the objects in the world?
What I guess i am asking is i want to understand the mechanics of how to piece together the foundation part of game programming before I dive in.
In contrast I typically open up Visual Studio, drop some objects from the toolbox and then code them up, is this the same format for game development or.. what else am I missing?
I think it really depends on to what level you want to sink your teeth into the development, you might want to take a look at this book as an interesting blood and guts insight into making a game engine Artificial intelligence for games by ian (h/m)illington. It's really informative.
Thank you for the response, I will start looking into it.
As an update my understanding i believe I have slightly improved i now see game programming made up of the following:
.| . |
Game Engine Graphics Engine (OpenGL/Direct X)
Windows API Windows API
The game ide is asically something such as Visual C++ (Visual Studi0).
The game engine is responsible for handling events that occur in the windows o/s (if your game is windows o/s comaptible ofc).
The graphics engine handles the graphics but also interacts with the game engine, as the game enigne has to map graphics to the 'world' that you build.
The 'world' is a virtual environment whereby you place objects/text/sprites/etc.. into by setting co-ordinates.
The other aspect is defining game state. This is where you define the state in which the game can be in (e.g. Menu, Running, Player Dead).
Once you have defined your game state you can then start to write code that maps your graphics (objects) into each game state, and following on set whereabouts they exis within your game 'world'.
Once this is achieved you can then add things such as sound/collision detection/sprites/etcc.. to beef up the realism of the objects in your 'world'.
After completing this you can then start to think about the networking (if mulitplayer) and fine tuning the objects.
Finally you then add 'the game' logic to it. This where you really delve into making such things as the game itself where there are levels etc.. What I have discussed above the finally part is something that you do typically on a level by level basis.
Hopefully im starting to make more sense of game programming.
Last edited by Dagma20; June 4th, 2008 at 06:52 AM.