Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

Are there any good resources for learning about game architectures? I am looking for high level overviews of different architectures. I tend to find information about the various pieces of a game such as entities, physics engines, scripting, etc but not about how to bring all of the pieces together.

As a bonus, how does the type of game influence this? For example, a platformer and an MMO would have differences.

share|improve this question

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

closed as too broad by Byte56 May 28 at 14:08

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

11 Answers 11

up vote 58 down vote accepted

Game Engine Architecture by Jason Gregory is a good book in this topic. You can read it in Google Books before buying it.

share|improve this answer
4  
I cannot recommend this book highly enough. If you're looking for hand-holding code samples, this is not the book for you. But if you're looking for a high level tour of all the components that make up a modern game engine and how they fit together, this is absolutely a stellar book. The writing style is very professional (it was written as a textbook) but accessible to anyone with a basic knowledge of Computer Science principles. –  Bob Somers Jul 16 '10 at 10:31
    
Looks good. Added to my list of books to buy. –  Colin Gislason Jul 16 '10 at 15:42
1  
This is one of my favorite books. The only problem I had with it (which the author recognized) was the very sparse details on audio. –  SAHChandler Jul 17 '10 at 2:40
1  
That is a good point, the book doesn't cover everything. The two big things that I noticed that were missing were audio and networking, which are both mentioned only in passing. But the author was honest about the fact that he had to give those the shaft for various reasons. Perhaps in the second edition? :) –  Bob Somers Jul 17 '10 at 5:46
    
Wow, that book looks absolutely brilliant. –  NM01 Sep 2 '10 at 10:28

An interesting source of game-building knowledge that I recently became aware of is Penny Arcade - Extra Credits. They are in the form of short (~5 minute) weekly videos. They have covered a variety of topics, all of which are available for viewing at the above link.

share|improve this answer
    
I don't think they really go into game architecture. –  Kylotan Aug 16 '12 at 18:55

Enginuity is one of the best free tutorials on game engine design. Behold, this is not exactly what You asked for. It's a tutorial on writing a game engine down to the low level aspects - however - it's a general purpose engine and You might be able to derive a greatest common divisor for every game.

Just read through the introduction and stop when it becomes too detailed for Your taste ;)

share|improve this answer
    
I read through a good chunk of this. There was a lot of information that was useful, even if it wasn't exactly what I asked for. Thanks for the link. –  Colin Gislason Jul 16 '10 at 15:21
1  
noticed that the link is broken and can't find a working link. If anyone finds one, please update, thx. –  Dave O. Feb 24 '11 at 23:31
    
I ran the page through search and I found this:gamedev.net/page/resources/_/reference/programming/… –  DMan May 7 '11 at 23:49

Jeff Plummer "A Flexible and Expandable Architecture for Electronic Games":

http://members.cox.net/jplummer/Writings/Writings.htm

Nice overview and comparisson of different Game architectures.

share|improve this answer
1  
This site is down, but the page, along with the 380 page thesis that Plummer wrote, is available through archive.org. It's easy to read and very informative for a beginner! –  Philip Aug 16 '12 at 19:14

I can recommend the book Game Coding Complete, Mr. Mike knows a lot about Game Architecture and does a good job explaining it to the reader. I don't know about the third edition, I only have the second edition, but it was worth a read. He explains everything from Scripting to Sound, even a bit of 3D math. Not in the deepest possible detail, but good enough to dig deeper using other materials. At the end of the book he constructs a complete game utilizing everything you learned with this book.

share|improve this answer

Game Programming: The Express Line to Learning provides a nice, beginner-level introduction to a basic game engine structure the author calls "IDEA/ALTER":

  • I – Import and initialize
  • D – Display configuration
  • E – Entities
  • A – Action (broken into ALTER steps)
    • A – Assign values to key variables
    • L – Loop (setup main Loop)
    • T – Timer to set frame rate
    • E – Event handling
    • R - Refresh the display

The book walks through a complete example game implemented in Python/Pygame.

share|improve this answer

Not game-related, actually, but an invaluable resource for any programmer: The Pragmatic Programmer: From Journeyman to Master. It won't tell you how to write a 3D pipeline--rather, it will take you on a tour of the principles that underly good software architecture.

share|improve this answer

My book, Game Programming Patterns, is incomplete and on hiatus, but what I have is freely available online. You may get some use out of it.

share|improve this answer
1  
I've read this already. Very good content, if not complete. However, this is and example of information about pieces without how to put them together. –  Colin Gislason Jul 16 '10 at 15:22
2  
That's an intentional choice, but that probably doesn't help you much. The problem is that every game is different, especially across genres, so there's no "here's the entire architecture you should build" unless you're really just trying to clone some existing game. I think the best you can do is say "here's a bunch of big pieces, pick the ones you need and hook them up". Game programming books on graphics, AI, etc. should give you the big pieces. The goal of my book is to tell you how to hook them up. –  munificent Jul 16 '10 at 15:28
1  
Yeah, I definitely understand that. Most software is like that. I guess the thing I'm looking for is examples of how it has been done so I can make more informed decisions for the games I work on. Great work on the book/site, btw. –  Colin Gislason Jul 16 '10 at 15:42
3  
Please finish this book, it is incredibly good so far. I would definitely be willing to Donate for a complete version :) –  Kyle C Nov 23 '10 at 20:50
3  
Your book looks really good, thanks for sharing it. I hope you will finish it! –  GvS May 2 '11 at 11:27

Scene graphs ftw. These can be used for game logic as well as rendering, and they let you really optimise your pipeline. If you're going to use them, you want to do it from the start.

share|improve this answer
    
If you want to make "one of those" first person shooters, go for scene graph. If you want to make games, use your brain. (I use scene graphs for teaching, but never for production code.) –  Andreas Jul 16 '10 at 13:31
1  
care to expand on that or provide a link? –  tenpn Jul 16 '10 at 14:20
2  
Scene Graphs - just say no home.comcast.net/~tom_forsyth/… –  NocturnDragon Jul 18 '10 at 15:01
    
TomF is talking there about graphs for graphics, and his criticisms are all based around graphics applications. This question was about general game architecture and that's the context in which I talk about scene grpahs. The dependencies between pathfinding, streaming, UI message handlers and audio are all static across the life of your game. However they're generally not understood, or if they are they're not expressed in code so you can't use those dependencies to thread nicely. That's where scene graphs come in. –  tenpn Jul 19 '10 at 8:01

My good friend Joel posted a talk he gave at a conference concerning the architecture he ended up using on some PS1 games. Though the talk is specific, he ends up bringing it all back to general advice about what to look for in a good architecture.

Talk is here: http://jdinolt.tumblr.com/post/756062883/hrraaah-ego-trippin-my-first-talk-at-the-igad

share|improve this answer

I think for overall architectural knowledge, experience/trial/error are the main resources.

Because the overall architecture WILL change so much based on the kind of game you're writing, looking at resources/papers on entity systems/engines/scripting/etc and putting it together into something that has meaning in your own application is the best way to learn.

That said, I really like the Game Programming Gems books for going into depth on the individual components that you can use in your games, I still commonly use a lot of the ideas published in them across my professional activities, as well as in my hobby-code.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.