Additional Information
Book Details
Abstract
Games software has its roots in a "cottage" industry, ignoring formal methodologies, instead leaving the programmers to find homespun solutions to the technical problems faced. The picture has now changed: the scale of the problems faced by programmers means that more methodical techniques must be applied to game development to prevent projects spiralling out of control, both in terms of technical complexity and cost. The book addresses how program teams can develop ever more complex entertainment software within the constraints of deadlines, budgets and changing technologies. It establishes a set of best practices tempered with real-world pragmatism, understanding that there is no "one size fits all" solution. No member of the game development team should be working in isolation and the book will be useful to producers, designers and artists as well as the programmers themselves. In addition, the book addresses the needs of the growing number of Game Development courses offered in academia, giving students a much-needed insight into the real world of object-oriented game design.
Table of Contents
Section Title | Page | Action | Price |
---|---|---|---|
Cover | Cover | ||
Object-oriented Game Development | iii | ||
Contents | vii | ||
Acknowledgements | xiii | ||
Introduction | 1 | ||
What is this book? | 1 | ||
But why? | 2 | ||
Who am I? | 2 | ||
Who are you? | 2 | ||
So what will you read about? | 3 | ||
A brief history of games | 4 | ||
The game development process | 9 | ||
Philosophy | 9 | ||
Reality bites | 14 | ||
Summary | 21 | ||
Software engineering for games | 23 | ||
The peasants are revolting | 23 | ||
The lords are revolting | 24 | ||
Stopping the rot | 25 | ||
The choice of language | 51 | ||
A C++ coding policy | 63 | ||
Summary | 67 | ||
Object-oriented design for games | 69 | ||
Notation | 69 | ||
The design process | 72 | ||
Patterns | 76 | ||
Summary | 134 | ||
The component model for game development | 135 | ||
Definition: game engine | 135 | ||
Motivation | 135 | ||
Some guiding principles | 138 | ||
Meet the components | 149 | ||
Summary | 227 | ||
Cross-platform development | 229 | ||
Introduction | 229 | ||
Summary | 265 | ||
Game objects | 267 | ||
Open your GOB | 267 | ||
Game object management | 281 | ||
Summary | 326 | ||
Design-driven control | 329 | ||
Decoupling behaviour from game code | 330 | ||
Simplifying the creation and management of high-level behaviour | 331 | ||
Event management details | 341 | ||
Language issues | 347 | ||
Summary | 349 | ||
Iterative development techniques | 351 | ||
Introduction | 351 | ||
Incremental delivery | 352 | ||
Iterated delivery | 355 | ||
Summary | 366 | ||
Game development roles | 367 | ||
The cultural divides | 367 | ||
The programming team | 368 | ||
The art team | 375 | ||
The design team | 379 | ||
Putting it all together | 384 | ||
Summary | 385 | ||
Case study: Cordite | 387 | ||
Technical analysis | 387 | ||
Summary | 414 | ||
Appendix: coding conventions used in this book | 415 | ||
Bibliography | 417 | ||
Web resources | 419 | ||
Index | 421 |