Cover image for Software Engineering for Game Developers.
Software Engineering for Game Developers.
Title:
Software Engineering for Game Developers.
Author:
Flynt, John.
Personal Author:
Physical Description:
1 online resource (904 pages)
Contents:
Contents -- Introduction -- Chapter 1 Getting into the Game -- Software Engineering and Game Development -- Engineering -- Cottage Industries and Formalized Disciplines -- Repetition and Perfection -- To Engineer Is... -- The Path -- Integrity -- Answering Risk with Design -- Game Design and Software Design -- Design and Development -- Class Design and Implementation -- Refactoring and Patterns -- Development and Testing -- Code Documentation -- Learning and Capabilities -- Maintenance and Revision -- Measurement -- The Industry -- Profession and Craft -- Conclusion -- Chapter 2 Requirements-Getting the Picture -- Essential Notions -- What Are Requirements? -- Where Do Requirements Originate? -- Who Gathers Requirements? -- Why Do You Need Requirements? -- What Results from Requirements? -- Avoiding Difficulties with Requirements -- Establish the Scope of the Project -- Identify Your Customers -- Feasibility -- Uncontrolled Growth -- What Makes a Good Requirements Specification? -- Make Requirements Complete -- Make Requirements Correct -- Necessary Requirements Only -- Consider the Feasibility of a Requirement -- Requirement Priorities -- Eliminate Ambiguity -- Verify and Validate Requirements -- Manage Requirements for Change -- Engineering Requirements -- Iterative Increments -- Cycles of Requirements Development -- Eliciting Requirements -- The Requirements Specification Document -- Using the Design Document for the Game -- Using Mod Requirements -- Preliminaries of Use Case Exploration -- Exploration -- Using Use Case Diagrams and Scenarios -- The Sixty-Seconds-of-Play Use Case Diagram -- Making a Starting Specification List -- Finding Potential Class Names -- Using a TOR Chart -- Analysis -- Using Use Cases to Analyze Actions -- Activity Diagrams -- Refinement, Verification, and Validation -- Using Use Cases for Tests.

Using a Requirements Matrix -- Refining Specification Dependencies -- Anticipating and Managing Change -- Change Procedures and Reviews -- Document Control -- Conclusion -- Chapter 3 A Tutorial: UML and Object-Oriented Programming -- UML History -- A UML Diagram and Its Elements -- Why Bother with Symbols? -- Starter Terms -- UML Diagrams -- Use Case Diagrams -- Use Cases Tell Stories -- What If? -- Different Use Cases -- Activity Diagrams -- Class Diagrams -- Class and Object Basics -- Class Diagrams in Practice -- Diagramming a Class -- Class Relations and Class Diagrams -- Generalization -- Associations -- Aggregation and Composition -- Different Types of Association -- Object Diagrams -- Links, Dynamic Modeling, and Messages -- Message Types -- Message Arrows -- Message Parameters -- Sequence Diagrams -- Objects and Lifelines -- How to Read Messages -- Collaboration Diagrams -- State Chart Diagrams -- Events, States, and Transitions -- More on State Transitions -- Component Diagrams -- Package Diagrams -- Deployment Diagrams -- Conclusion -- Chapter 4 Software Design-Much Ado About Something -- Beginning Design -- Why Design? -- Architecture and Design -- Designing for Quality -- Maintainability -- Portability -- Usability -- Performance -- Testability -- Efficiency -- Reliability -- Finding Elements and Relationships -- CRC Cards -- Using the TOR Chart -- Generating Operations -- Moving to a Sequence Diagram -- Reframing Operations with a Collaboration Diagram -- Low-Level Design Tools -- Class Diagrams -- Operation Specifications -- Component/Package Diagrams -- Presenting the System Design -- The SDD Template -- How to Set Up the SDD -- Introducing an SDD -- Conceptual or Use Case View -- Behavioral or Implementation View -- Logical View -- Component View -- Deployment View -- Designing the System in Stripes.

Increments and Iteration in Stripes -- Team Efforts at Designing System Stripes -- A First Stripe from Ankh -- Beginning a Stripe -- The Use Case for the First Stripe -- Starting with a Context -- Discovering a Component -- Moving to a Scenario -- Stripe Collaboration Diagram -- Refining Operations and Generating Classes -- Creating the Component Diagram -- Verification -- Conclusion -- Chapter 5 Old Is Good-The Library Approach -- Libraries and Reuse in General -- Open C++ Libraries -- Game Engine Libraries -- Profiled Engines -- Criteria for Reuse -- What Qualifies for Reusable -- The Problems of Creating Reusable Code -- Taking a Class Approach -- Using Standard Class Forms -- Class Implementation -- Making Code Efficient -- Needless Declaration -- Needless Copying -- Reference Counting -- Exceptions and Errors -- Try and Catch -- Declaring Exception Classes -- Defining Exception Classes -- Throwing Exceptions -- Compatibility and Maintainability -- Reducing Redundancy -- The Danger of Early Optimization -- Using Shallow Hierarchies -- Installation and Ease of Use -- The Boost and STL Libraries -- Using the STL -- Using Boost -- Documentation and Deployment -- Watch for Cut-and-Paste Code -- Do Not Address Obvious Things -- State the Common Use First -- Show How to Do Things -- Avoid Preaching -- Self-Documenting Code -- Conclusion -- Chapter 6 Object-Oriented Fantasies and Realities -- Class Beginnings -- The Concept of Class -- Scope -- Construction -- Interface -- Abstraction -- Abstract States -- Abstract Behavior -- Encapsulation -- Cohesion -- Responsibilities -- Coupling -- Decoupling -- Inheritance -- Generalization -- Specialization -- Associations -- Aggregation or Hierarchy? -- Aggregation -- Composition -- Abstract Classes -- Polymorphism -- Coupling Problems with Collections of Classes -- Points on Class Design and Implementation.

Information Hiding -- Refactoring -- Modularity -- What Destroys Modularity? -- General Remedies -- Using Refactoring -- Practices of Refactoring -- Specific Ills and Remedies -- Conclusion -- Chapter 7 P Is for Pattern -- Patterns and Their Contexts -- The History of Patterns -- Patterns and Objects -- Pattern Origins -- GoF -- Kinds of Patterns -- A Short List of Patterns -- How to Document Patterns -- Applied Patterns -- Singleton -- Composite Pattern Features -- Chain of Responsibility Pattern Features -- State Pattern Features -- Strategy Pattern Features -- Observer Pattern Features -- Façade Pattern Features -- Memento Pattern Features -- Command Pattern -- Boss Pattern -- Boss Implementation -- Conclusion -- Chapter 8 Risk Analysis -- The Story of Risk -- Applied Risk Analysis -- External Risks -- Internal Risks -- What Promotes Risk Assessment? -- General Attitudes Toward Risk and Risk Management -- Things That Foster Awareness -- Goals -- Strategies -- The Paradigm -- Identifying Risks -- Scope Risk Identification -- Schedule Risks Identification -- Resource Risk Identification -- Estimating Risk -- Scope Risk Estimation -- Schedule Risk Estimation -- Resource Risk Estimation -- Evaluating Risk -- Evaluating Risks That Are Associated with Scope -- Evaluating Schedule Risks -- Evaluating Resource Risks -- Planning for Risks -- Planning and Scope -- Planning and Scheduling -- Planning and Resources -- Controlling Risks -- Scope Control -- Schedule Control -- Resource Control -- Monitoring Risks -- Scope Monitoring -- Schedule Monitoring -- Resource Monitoring -- Conclusion -- Chapter 9 Iterating Design -- Iterative Design Basics -- Applied Design -- Software Systems and Gravity -- Reversing Gravity -- Conceptualizing Iteration -- Ankh Development Using Stripes -- Stripe 1-Opening -- Use Case Scenario -- Component View.

Stripe 2.1-GUI Objects -- Use Slider Use Case -- GUI Objects Component View -- Stripe 2.2-Floor Tiling -- Select Tile Use Case View -- Level Floor Tiling Component View -- Stripe 2.3-Mesh Placement -- Select a Building Use Case View -- Mesh Placement Component View -- Stripe 2.4-Save and Load -- Save a Map Use Case View -- Save and Load Component View -- Stripe 3.1-Navigate Alexandria -- Navigate Alexandria Use Case View -- Navigate Alexandria Component View -- Stripe 4-Character Editor -- Create Character Profile Use Case View -- Character Editor Component View -- Stripe 5-Unit Physics -- Walk Character Use Case View -- Unit Physics Component View -- Stripe 6-Inventory Items -- Select Inventory Items Use Case View -- Inventory Items Component View -- Stripe 7-Combat -- Battle Guard Use Case View -- Battle Guard Component View -- Stripe 8-Acquire Skills -- Acquire Skills Use Case View -- Acquire Skills Component View -- Stripe 9-Acquire Weapon -- Acquire Weapon Use Case View -- Acquire Weapon Component View -- Stripe 10-View Statistics -- View Strengths Use Case View -- View Statistics Component View -- Stripe 13-Save Replay -- Save Replay Use Case View -- Save Replay Component View -- Map Editor Resources -- Construction Using the Map Editor -- Game Design Specification -- Conclusion -- Chapter 10 Control Freaks and Configuration Management -- Software Configuration Management in General -- Policies -- Defining Roles -- Change Control Parameters -- Setting Up the System -- Selection of Tools -- Version Control Applications -- TortoiseCVS -- Installer Creation Applications -- Problem Reporting Applications -- Creating an SCM Plan -- Using a Template -- Coding Standards -- Reviewing the Plan -- Development Activities -- Auditing Program States -- Build Activities -- Program Files and Components -- Controlling Development Domains.

Baselined Versions and Releases.
Local Note:
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2017. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
Added Author:
Electronic Access:
Click to View
Holds: Copies: