Software Architecture for Computer Games

Greetings,

I am in the early stages of a research project on software architectures for computer games. I will have a small group of students investigating various games and analyzing them for idioms, design patterns, and architectural patterns. We will also look at some issues in software evolution. This has always been a friendly and introspective community, so I thought I’d start a thread to see if anyone had any ideas or contributions. Please feel free to share, especially if you have any thoughts on the following issues:

  1. What software architectures are most appropriate for games, and is it dependent on platform or genre? (“Software architecture” being used in the spirit of Buschmann et al. (http://www.amazon.com/Pattern-Oriented-Software-Architecture-System-Patterns/dp/0471958697/)).

  2. How does game software (game engines and/or games themselves) change during development?

  3. Is there a preferred path for software evolution (or an engineering methodology) that is specific to game development?

Cheers!

You might some useful info at http://www.gamesfromwithin.com/.

There is also Patterns in Game Design. I don’t know if it is any good though.

Well, the way i see it, is that the process of game development heavily relies on agile development, but in an somewhat informal and pragmatic way :slight_smile: I cant suggest real books on the specific subject tho, so if anyone has a recommendation i would like to hear it too, because its an interesting subject :slight_smile: Maybe this link is worthwhile: http://www.agilegamedevelopment.com

This link has some very interesting articles. I had not seen it before but will surely share it with my team. I’m tempted to try test-driven development on my next game project now :slight_smile:

I do have this book, but it’s not really applicable to software design and engineering. The title is misleading: the book is not about “design patterns” as the term is used in architecture or software. This book defines some terminology used in game design, but there is insufficient discussion of the problem that their “patterns” solve. I suppose it is a decent lexicon of game design concepts, although most of it is obvious to anyone who has played a modicum of games. YMMV.

Bear in mind that the GamesFromWithin people are doing game library development, not an actual game. IMHO TDD is great for actual library code but not terribly helpful for constantly changing and hard to quantify gameplay code. But if all your library/common/utility code is done via TDD then you’ve got a pretty good base to write the gameplay bits on top of it without worrying if the underlying bits are working correctly.

Scrum

TDD works extremely well inside Scrum for games dev with, generally, no downsides. In fact, I’d say it was essential to make Scrum work for games - and given the point above, that means TTD is great for games dev :stuck_out_tongue:

Scrum?