Quote:Original post by Icefox
I'm not sure it's possible to write a good book on "game engine design", because the topic is far far too broad.
How is it too broad? Designing a game engine isn't any different than designing any other type of program. You're still faced with the exact same issues such as resource management, user input, visual presentation, communication between objects, communication between subsystems, triggering events, maintaining collections of data, etc. I don't see anything about games that make them so unique as to require a domain specific approach to design. If the same design methodologies and patterns are applied to just about every other type of software (graphics editors, word processors, databases) why aren't they suitable for game design?
There's plenty of software design resources on the web so there's really no reason to believe they don't exist. I also find it hard to believe that a book (or other resource) specific to game engine design is any be more beneficial than existing information even if the contents are domain specific.
Clarification from Helter SkelterThis post was very badly worded and definitely did not convey the point I was trying to make. I have scratched off the above post (kept for historical purposes) and included the following equally feeble clarification:
1. By saying that designing game engines is no different than designing any other application I meant to convey that we don't need to create any special processes, practices, or patterns to design game engines.
2. The comment about a book on game engine design not being beneficial was worded incorrectly. I mean to say that it would be
more beneficial but content doesn't need domain specific practices or patterns.
3. There's some context missing after the 'domain specific' comments. It was intended to express that a good book with practical and valuable information on game design IS possible.
After reading this post a couple of extra times the only reason I can think of why it came off so feeble minded is I was thinking of more than just your post when I wrote it.
The following is a quick and far from complete list of existing design patterns that can be easily and quite successfully applied to game engine design without the need to include domain specific characteristics.
Abstract factory Interface Balking Iterator Builder Observer Container Pipeline Command Proxy Delgation Scheduler Event Listener Singleton Extensibility State Flyweight Strategy Immutable Object Visitor
Feel free to browse through the following:
Resources:
Wikipedia: Design PatternsIntro to design patternsAnother intro to design patternsIntroduction to design techniqueYet another intro to design patternsUI Design PatternsBooks:
Design PatternsAlthough this book is 10 years old and the notation is fairly dated the quality of this book is still high. If you find one used and at a good price I highly recommend it. This book continues to receive good reviews. The contents on the CD do not work very will with current browsers.
UML Distilled - Third EditionDesign Patterns ExplainedApplying UML and Design PatternsSoftware Architecture in PracticePattern-Oriented Software ArchitectureSoftware Architecture: Organizational Principles and Patterns[Edited by - Helter Skelter on July 7, 2005 4:41:22 PM]