rent-now

Rent More, Save More! Use code: ECRENTAL

5% off 1 book, 7% off 2 books, 10% off 3+ books

9780321176608

Object-Oriented Game Development

by
  • ISBN13:

    9780321176608

  • ISBN10:

    032117660X

  • Edition: 1st
  • Format: Paperback
  • Copyright: 2004-01-01
  • Publisher: Addison Wesley
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $53.20
  • Digital
    $53.99*
    Add to Cart

    DURATION
    PRICE
    *To support the delivery of the digital material to you, a digital delivery fee of $3.99 will be charged on each digital item.

Summary

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. 

Author Biography

Julian Gold is a software engineer at Microsoft Research in Cambridge investigating advanced machine learning for videogames, and Senior Programmer for Sony Computer Entertainment Europe.

Table of Contents

Acknowledgements xiii
Introduction
1(8)
What is this book?
1(1)
But why?
2(1)
Who am I?
2(1)
Who are you?
3(1)
So what will you read about?
3(1)
A brief history of games
4(5)
The time that land forgot
4(2)
It's all academic
6(1)
My! Hasn't he grown?
7(1)
From bedroom to boardroom
8(1)
Summary
8(1)
The game development process
9(14)
Philosophy
9(5)
Context
9(1)
Iterate!
10(1)
Not all statistics are damned lies
11(1)
Don't do it again
12(1)
Do it again
13(1)
Don't do it again (again)
13(1)
See it from all sides
13(1)
Reality bites
14(7)
Hard cash
14(1)
The Hacker's Charter
15(3)
So why are games different?
18(2)
Conclusion
20(1)
Summary
21(2)
Software engineering for games
23(46)
The peasants are revolting
23(1)
The lords are revolting
24(1)
Stopping the rot
25(26)
From bedroom to office
25(1)
Working practices for programmers
26(1)
Software standards
27(3)
Good working practice
30(1)
Good programming practice
30(3)
Code reuse
33(5)
Dependencies: the curse of Hades
38(7)
Reuse granularity
45(5)
When not to reuse
50(1)
The choice of language
51(12)
The four elements of object orientation
52(4)
Problem areas
56(3)
Standard Template Library
59(1)
Templates
60(3)
A C++ coding policy
63(4)
General
64(1)
Policy specifics
64(3)
Summary
67(2)
Object-oriented design for games
69(66)
Notation
69(2)
Classes
69(1)
Relationships
70(1)
The design process
71(5)
Phase 1: brainstorming
71(1)
Phase 2: prune the tree
72(1)
Phase 3: draw the bubbles and lines
73(2)
Phase 4: validate the design
75(1)
Patterns
76(58)
The interface
77(4)
Singleton
81(8)
Object factory
89(6)
Manager
95(1)
Visitor/iterator
96(9)
Strawman
105(3)
Prototype
108(3)
Russian doll
111(23)
Summary
134(1)
The component model for game development
135(94)
Definition: game engine
135(1)
Motivation
135(3)
Your engine has stalled
135(1)
The alternative
136(2)
Some guiding principles
138(11)
Keep things local
138(2)
Keep data and their visual representations logically and physically apart
140(3)
Keep static and dynamic data separate
143(5)
Avoid illogical dependencies
148(1)
Better dead than thread?
149(1)
Meet the components
149(78)
Naming conventions
150(1)
The application
150(2)
Container components
152(6)
Maths component
158(20)
Text and language processing
178(3)
Graphics
181(5)
Prim
186(3)
Collision detection
189(3)
Resource management
192(13)
Newtonian physics
205(15)
Network gaming
220(6)
Summary
226(1)
Summary
227(2)
Cross-platform development
229(38)
Introduction
229(36)
Analyse this
229(1)
Welcome to Fantasy Land
230(5)
Same capability, different methodology
235(16)
Platforms of different capability
251(3)
Cross-platform component architecture
254(11)
Summary
265(2)
Game objects
267(62)
Open your GOB
267(14)
Collapsed hierarchy
267(2)
Shallow hierarchy
269(1)
Vertical hierarchy
270(4)
Mix-in inheritance
274(7)
Game object management
281(45)
Creation and destruction
282(14)
Referencing
296(15)
Persistent damage
311(15)
Summary
326(3)
Design-driven control
329(22)
Decoupling behaviour from game code
330(1)
Simplifying the creation and management of high-level behaviour
331(10)
A functional paradigm
331(4)
Task-based control
335(6)
Event management details
341(6)
Language issues
347(2)
Summary
349(2)
Iterative development techniques
351(16)
Introduction
351(1)
Prioritising tasks
351(1)
How long is a piece of virtual string?
351(1)
Incremental delivery
352(3)
Milestones round my neck
352(1)
Internal and external milestones
353(1)
The breaking wheel of progress
354(1)
Always stay a step ahead
354(1)
Iterated delivery
355(11)
Waste not, want not
361(1)
Ordering using priorities and levels
361(4)
Scheduling with an iterated delivery system
365(1)
Summary
366(1)
Game development roles
367(20)
The cultural divides
367(1)
The programming team
368(7)
Programming roles
369(4)
Recruitment
373(1)
Programming production phases
373(2)
The art team
375(4)
Art roles
375(4)
The design team
379(5)
Design risk management
379(4)
Design personnel
383(1)
Putting it all together
384(1)
Summary
385(2)
Case study: Cordite
387(28)
Technical analysis
387(27)
Low-level file management
388(3)
Object streams
391(2)
Collision
393(2)
Scripted behaviour
395(3)
Objects
398(3)
Human control
401(3)
Particles
404(8)
And so on
412(2)
Summary
414(1)
Appendix: coding conventions used in this book 415(2)
Bibliography 417(2)
Web resources 419(2)
Index 421

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program