Game Engine Architecture
There is a distinct lack of articles and documentation out there on how game engines are all pieced together. There are plenty that will say things like the client and server plug into the kernel etc.
But I have been unable to find any complete documents about how everything is integrated in detail, eg. how all the object instances are kept in a list (or vector) and about what classes are daughter classes of others etc.
I have made games before but none of which are truely game engines because to make a different game the source code must have been touched at least a small amount. I'm looking for an article that tells you how to make a complete engine (any genre i don't care) but will tell me how to integrate everything correctly. Questions I would like answered are how to correctly integrate the renderer, and whether it is right to make two classes one called CPlayer which is just input functions that will control certain instances and a CAIPlayer etc. and how this is all integrated.
The only article I did find which started on this road is the enginuity series which is incomplete and the arthur now says that if he did it again he would do things slightly different.
Any help would be appreciated, thanks.
What type of game engine are you speaking of 2D and 3D Game Engine Architectures are slightly differen't. One book id consider you looking at is this or this.
Its on 3D game enigne architecture (the first one) the second is on game engine design. Sounds like exactly what you want.
Its on 3D game enigne architecture (the first one) the second is on game engine design. Sounds like exactly what you want.
Well I'll say a 3D FPS shooter one that incorporates networking. It's not neccessarily a 3D FPS that I'm looking to make, however FPSs contains basically a combination of the features that all other genres have.
I'm quite interested in advneture games and I've already started on an engine but so far it's been basically impossible to find information on that as the gaming industry at the moment is focusing on 3D RPGs and FPSs, as much as I enjoy these games it's also a bit of a shame that there isn't as big a variety of game genres as there could be.
PS. Mhondoz I mentioned the enginuity series in my orginal post and explained that I did not want to use them because they are incomplete, though they are quite informative.
I'm quite interested in advneture games and I've already started on an engine but so far it's been basically impossible to find information on that as the gaming industry at the moment is focusing on 3D RPGs and FPSs, as much as I enjoy these games it's also a bit of a shame that there isn't as big a variety of game genres as there could be.
PS. Mhondoz I mentioned the enginuity series in my orginal post and explained that I did not want to use them because they are incomplete, though they are quite informative.
The main reason why you haven't seen specific tutorials is that there is no "correct way to integrate the renderer, and whether it is right to make two classes one called CPlayer which is just input functions that will control certain instances and a CAIPlayer etc. and how this is all integrated."
I've looked at some of the free engines, and I've got my own, and I've seen the inhouse one my company uses and all of them do it differently. No one can say "yes its correct todo A" because there is no correct. If it works and does what you like then yay, if its slow and doesn't work then boo but thats as a definition as you'll get.
And another reason is that it takes alot of work to just write a game engine to writing a tutorial on it is more than most people can be bothered todo.
If you've written a few games then the best thing you can do is see what you used in each one, and try to extract those out into seperate parts so they can be used in any project. Get an image loader, sound loader, ai system extracted and you've got a game engine - thats pretty much how I got mine.
I've looked at some of the free engines, and I've got my own, and I've seen the inhouse one my company uses and all of them do it differently. No one can say "yes its correct todo A" because there is no correct. If it works and does what you like then yay, if its slow and doesn't work then boo but thats as a definition as you'll get.
And another reason is that it takes alot of work to just write a game engine to writing a tutorial on it is more than most people can be bothered todo.
If you've written a few games then the best thing you can do is see what you used in each one, and try to extract those out into seperate parts so they can be used in any project. Get an image loader, sound loader, ai system extracted and you've got a game engine - thats pretty much how I got mine.
kaysik I realise this but I still don't think I'm experienced enough I have tried mixing all that I know into a single engine but I don't know enough specifically about the renderer. The best idea I've come up with is looking at open source engines like Quake 1 and 2, Crystal Space, Irrlicht etc.
Are you writing a software engine? Because unless you are I'm not really sure what you mean by your renderer. For 3D stuff you just have a mesh class/manager which loads models and draws them and its your graphics API which actually does the rendering. Personally I have a mesh manager which loads a mesh and then returns an ID. To render a loaded mesh just pass the manager the ID and it draws it - very simple and easy to use. If I want to add something fancy (ie. cell shading) I just change the render() function of my mesh manager and all is well.
I think most people make games engines out to be these huge complicated things. You can make one like that if you like, and the full profeshinal ones probably are, but you can make simple ones pretty easily. Just think about what you'll need in each game, design a few classes so that they can be reused for lots of different purposes and your set.
I think most people make games engines out to be these huge complicated things. You can make one like that if you like, and the full profeshinal ones probably are, but you can make simple ones pretty easily. Just think about what you'll need in each game, design a few classes so that they can be reused for lots of different purposes and your set.
My problem is I don't know what are core things and what are not, and how to make things like inventory and weapons systems very well. And generally in a game engine there is a part called a renderer, the camera is a part of this and when you draw the scence this is the renderer. Basically objects are passed to the renderer it organises how they will be drawn using an APIs functions, eg. OpenGL :) then OpenGL sends them off to the video card.
As you can see I've done a lot of reading just I'm not sure how to code these sort of things.
As you can see I've done a lot of reading just I'm not sure how to code these sort of things.
Quote:Original post by BoReDoM_Inc
and how to make things like inventory and weapons systems very well.
Those things you listed are completely game specific and are not part of an engine actually :)
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement