Jump to content
  • Advertisement
Sign in to follow this  
BoReDoM_Inc

Game Engine Architecture

This topic is 4761 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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.

Share this post


Link to post
Share on other sites
Advertisement
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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 :)

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!