Software Engineering for Game Developers

Paperback (Print)
Used and New from Other Sellers
Used and New from Other Sellers
from $6.21
Usually ships in 1-2 business days
(Save 89%)
Other sellers (Paperback)
  • All (8) from $6.21   
  • New (3) from $66.07   
  • Used (5) from $6.21   
Sort by
Page 1 of 1
Showing All
Note: Marketplace items are not eligible for any coupons and promotions
Seller since 2008

Feedback rating:



New — never opened or used in original packaging.

Like New — packaging may have been opened. A "Like New" item is suitable to give as a gift.

Very Good — may have minor signs of wear on packaging but item works perfectly and has no damage.

Good — item is in good condition but packaging may have signs of shelf wear/aging or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Acceptable — item is in working order but may show signs of wear such as scratches or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Used — An item that has been opened and may show signs of wear. All specific defects should be noted in the Comments section associated with each item.

Refurbished — A used item that has been renewed or updated and verified to be in proper working condition. Not necessarily completed by the original manufacturer.


Ships from: Chicago, IL

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
Seller since 2014

Feedback rating:


Condition: New
New Gift Quality Book in Excellent Condition.

Ships from: Newton, MA

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
Seller since 2015

Feedback rating:


Condition: New
Brand New Item.

Ships from: Chatham, NJ

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
Page 1 of 1
Showing All
Sort by


Software engineering leads to better software products. This book teaches readers how to develop games according to a design and follow a standardized approach to game development. It provides a multitude of exercises that show just how software engineering practices can improve your game. All the basic categories of software engineering are covered. Programmers, designers, architects, generalists, software engineers, and game developers seeking knowledge about standard frameworks for games and their relative merits will find this text more than satisfying. Three frameworks (function, object-oriented, and patterned) are presented, contrasted, and fully described through design documents.

Read More Show Less

Product Details

  • ISBN-13: 9781592001552
  • Publisher: Cengage Learning
  • Publication date: 11/8/2004
  • Edition description: New Edition
  • Pages: 862
  • Product dimensions: 7.40 (w) x 9.08 (h) x 2.16 (d)

Meet the Author

John P. Flynt, Ph.D., works in the software development industry, has taught at colleges and universities, and has authored courses and curricula for several college-level game development programs. His academic background includes work in information technology, the social sciences, and the humanities. Among his works are In the Mind of a Game, Simulation and Event Modeling for Game Developers (with co-author Ben Vinson), and Software Engineering for Game Developers. John lives in the foothills near Boulder, Colorado.

Omar Salem served as a member of the technical staff at Bell Labs/Lucent Technologies/Avaya for 20 years. He is currently a game development teacher, holding bachelor¿s and master¿s degrees in computer science and mathematics. Salem lives in Denver, Colorado.

Read More Show Less

Table of Contents

Introduction xxxiv
Chapter 1 Getting into the Game 1
Software Engineering and Game Development 1
Engineering 2
Cottage Industries and Formalized Disciplines 3
Repetition and Perfection 4
To Engineer Is... 5
The Path 7
Integrity 10
Answering Risk with Design 11
Game Design and Software Design 13
Design and Development 14
Class Design and Implementation 16
Refactoring and Patterns 17
Development and Testing 19
Code Documentation 21
Learning and Capabilities 21
Maintenance and Revision 23
Measurement 23
The Industry 23
Profession and Craft 25
Conclusion 26
Chapter 2 Requirements-Getting the Picture 27
Essential Notions 28
What Are Requirements? 28
Where Do Requirements Originate? 29
Who Gathers Requirements? 31
Why Do You Need Requirements? 32
What Results from Requirements? 33
Avoiding Difficulties with Requirements 35
Establish the Scope of the Project 36
Identify Your Customers 38
Feasibility 38
Uncontrolled Growth 39
What Makes a Good Requirements Specification? 40
Make Requirements Complete 41
Make Requirements Correct 41
Necessary Requirements Only 42
Consider the Feasibility of a Requirement 42
Requirement Priorities 43
Eliminate Ambiguity 43
Verify and Validate Requirements 43
Manage Requirements for Change 44
Engineering Requirements 44
Iterative Increments 44
Cycles of Requirements Development 45
Eliciting Requirements 46
The Requirements Specification Document 47
Using the Design Document for the Game 52
Using Mod Requirements 55
Preliminaries of Use Case Exploration 55
Exploration 58
Using Use Case Diagrams and Scenarios 59
The Sixty-Seconds-of-Play Use Case Diagram 60
Making a Starting Specification List 61
Finding Potential Class Names 63
Using a TOR Chart 63
Analysis 64
Using Use Cases to Analyze Actions 65
Activity Diagrams 68
Refinement, Verification, and Validation 68
Using Use Cases for Tests 69
Using a Requirements Matrix 70
Refining Specification Dependencies 70
Anticipating and Managing Change 71
Change Procedures and Reviews 71
Document Control 72
Conclusion 72
Chapter 3 A Tutorial: UML and Object-Oriented Programming 75
UML History 75
A UML Diagram and Its Elements 76
Why Bother with Symbols? 77
Starter Terms 79
UML Diagrams 80
Use Case Diagrams 83
Use Cases Tell Stories 84
What If? 85
Different Use Cases 87
Activity Diagrams 89
Class Diagrams 91
Class and Object Basics 92
Class Diagrams in Practice 93
Diagramming a Class 94
Class Relations and Class Diagrams 96
Generalization 99
Associations 102
Aggregation and Composition 105
Different Types of Association 106
Object Diagrams 107
Links, Dynamic Modeling, and Messages 109
Message Types 110
Message Arrows 110
Message Parameters 111
Sequence Diagrams 112
Objects and Lifelines 112
How to Read Messages 113
Collaboration Diagrams 113
State Chart Diagrams 114
Events, States, and Transitions 115
More on State Transitions 116
Component Diagrams 116
Package Diagrams 118
Deployment Diagrams 118
Conclusion 119
Chapter 4 Software Design-Much Ado About Something 121
Beginning Design 122
Why Design? 122
Architecture and Design 125
Designing for Quality 132
Maintainability 133
Portability 133
Usability 134
Performance 134
Testability 134
Efficiency 134
Reliability 135
Finding Elements and Relationships 135
CRC Cards 137
Using the TOR Chart 138
Generating Operations 140
Moving to a Sequence Diagram 140
Reframing Operations with a Collaboration Diagram 142
Low-Level Design Tools 143
Class Diagrams 143
Operation Specifications 145
Component/Package Diagrams 146
Presenting the System Design 146
The SDD Template 147
How to Set Up the SDD 147
Introducing an SDD 148
Conceptual or Use Case View 150
Behavioral or Implementation View 150
Logical View 150
Component View 150
Deployment View 151
Designing the System in Stripes 151
Increments and Iteration in Stripes 151
Team Efforts at Designing System Stripes 152
A First Stripe from Ankh 154
Beginning a Stripe 155
The Use Case for the First Stripe 156
Starting with a Context 156
Discovering a Component 157
Moving to a Scenario 158
Stripe Collaboration Diagram 160
Refining Operations and Generating Classes 160
Creating the Component Diagram 162
Verification 162
Conclusion 163
Chapter 5 Old Is Good-The Library Approach 165
Libraries and Reuse in General 165
Open C++ Libraries 167
Game Engine Libraries 167
Profiled Engines 168
Criteria for Reuse 169
What Qualifies for Reusable 170
The Problems of Creating Reusable Code 171
Taking a Class Approach 172
Using Standard Class Forms 173
Class Implementation 175
Making Code Efficient 178
Needless Declaration 178
Needless Copying 179
Reference Counting 180
Exceptions and Errors 182
Try and Catch 183
Declaring Exception Classes 184
Defining Exception Classes 184
Throwing Exceptions 187
Compatibility and Maintainability 188
Reducing Redundancy 188
The Danger of Early Optimization 191
Using Shallow Hierarchies 191
Installation and Ease of Use 191
The Boost and STL Libraries 193
Using the STL 194
Using Boost 195
Documentation and Deployment 196
Watch for Cut-and-Paste Code 196
Do Not Address Obvious Things 196
State the Common Use First 197
Show How to Do Things 197
Avoid Preaching 198
Self-Documenting Code 198
Conclusion 199
Chapter 6 Object-Oriented Fantasies and Realities 201
Class Beginnings 201
The Concept of Class 202
Scope 202
Construction 203
Interface 203
Abstract 205
Abstract States 205
Abstract Behavior 205
Encapsulation 206
Cohesion 207
Responsibilities 208
Coupling 208
Decoupling 209
Inheritance 210
Generalization 210
Specialization 211
Associations 213
Aggregation or Hierarchy? 213
Aggregation 214
Composition 214
Abstract Classes 215
Polymorphism 216
Coupling Problems with Collections of Classes 217
Points on Class Design and Implementation 218
Information Hiding 219
Refactoring 220
Modularity 220
What Destroys Modularity? 222
General Remedies 223
Using Refactoring 224
Practices of Refactoring 224
Specific Ills and Remedies 225
Conclusion 230
Chapter 7 P Is for Pattern 233
Patterns and Their Contexts 234
The History of Patterns 234
Patterns and Objects 237
Pattern Origins 238
GoF 239
Kinds of Patterns 240
A Short List of Patterns 241
How to Document Patterns 244
Applied Patterns 248
Singleton 249
Composite Pattern Features 251
Chain of Responsibility Pattern Features 252
State Pattern Features 253
Strategy Pattern Features 254
Observer Pattern Features 255
Facade Pattern Features 257
Memento Pattern Features 258
Command Pattern 259
Boss Pattern 261
Boss Implementation 262
Conclusion 267
Chapter 8 Risk Analysis 269
The Story of Risk 269
Applied Risk Analysis 271
External Risks 272
Internal Risks 273
What Promotes Risk Assessment? 274
General Attitudes Toward Risk and Risk Management 274
Things That Foster Awareness 277
Goals 279
Strategies 280
The Paradigm 281
Identifying Risks 282
Scope Risk Identification 283
Schedule Risks Identification 286
Resource Risk Identification 287
Estimating Risk 290
Scope Risk Estimation 290
Schedule Risk Estimation 291
Resource Risk Estimation 293
Evaluating Risk 294
Evaluating Risks That Are Associated with Scope 294
Evaluating Schedule Risks 295
Evaluating Resource Risks 296
Planning for Risks 297
Planning and Scope 298
Planning and Scheduling 298
Planning and Resources 299
Controlling Risks 299
Scope Control 300
Schedule Control 300
Resource Control 300
Monitoring Risks 301
Scope Monitoring 301
Schedule Monitoring 301
Resource Monitoring 301
Conclusion 302
Chapter 9 Iterating Design 303
Iterative Design Basics 304
Applied Design 305
Software Systems and Gravity 307
Reversing Gravity 307
Conceptualizing Iteration 307
Ankh Development Using Stripes 30
Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)