万本电子书0元读

万本电子书0元读

顶部广告

Game Development Patterns and Best Practices电子书

售       价:¥

5人正在读 | 0人评论 9.8

作       者:John P. Doran

出  版  社:Packt Publishing

出版时间:2017-04-27

字       数:49.0万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
Utilize proven solutions to solve common problems in game development About This Book ?Untangle your game development workflow, make cleaner code, and create structurally solid games ?Implement key programming patterns that will enable you to make efficient AI and remove duplication ?Optimize your game using memory management techniques Who This Book Is For If you are a game developer who wants to solve commonly-encountered issues or have some way to communicate to other developers in a standardized format, then this book is for you. Knowledge of basic game programming principles and C++ programming is assumed. What You Will Learn ?Learn what design patterns are and why you would want to use them ?Reduce the maintenance burden with well-tested, cleaner code ?Employ the singleton pattern effectively to reduce your compiler workload ?Use the factory pattern to help you create different objects with the same creation logic and reduce coding time ?Improve game performance with Object Pools ?Allow game play to interact with physics or graphics in an abstract way ?Refractor your code to remove common code smells In Detail You've learned how to program, and you've probably created some simple games at some point, but now you want to build larger projects and find out how to resolve your problems. So instead of a coder, you might now want to think like a game developer or software engineer. To organize your code well, you need certain tools to do so, and that's what this book is all about. You will learn techniques to
目录展开

Title Page

Credits

About the Authors

About the Reviewers

www.PacktPub.com

Customer Feedback

Preface

What this book covers

What you need for this book

Who this book is for

Conventions

Reader feedback

Customer support

Downloading the example code

Downloading the color images of this book

Errata

Piracy

Questions

Introduction to Design Patterns

Chapter overview

Your objective

What are design patterns

Why you should plan for change

Understanding UML class diagrams

Relationships between classes

Inheritance

Aggregation

Composition

Implements

Separating the why and the how

Understanding the separation of concerns

An Introduction to interfaces

Polymorphism refresher

Understanding interfaces

The advantages of compartmentalizing code

The structure of the Mach5 engine

Mach5 core engines and systems

The app

The StageManager

The ObjectManager

The graphics engine

Tools and utilities

The problems with using design patterns in games

Setting up the project

Summary

One Instance to Rule Them All - Singletons

Chapter overview

Your objective

An overview on class access specifiers

The static keyword

Static keyword inside a function

Static keyword in class definitions

Static as a file global variable

Pros and cons of global variables

What is a Singleton?

Keeping the single in Singleton

Deleting our object correctly

Learning about templates

Templatizing Singletons

Advantages/disadvantages of using only one instance

The Singleton in action - the Application class

Summary

Creating Flexibility with the Component Object Model

Chapter overview

Your objectives

Why a monolithic game object is a bad design

The monolithic game object

The problem with object behavior

The benefits of the monolithic game object

Why inheritance hierarchies are inflexible

Organizing the code by what it does, not what it is

Avoiding the Diamond of Death

The Strategy pattern and the Decorator pattern

The Strategy pattern explained

The Decorator pattern explained

The Component Object Model explained

Implementing the Component Object Model

Implementing components

Creating and removing objects and components

Performance concerns

Summary

Artificial Intelligence Using the State Pattern

Chapter overview

Your objectives

The State pattern explained

Introduction to State Machines

An overview of enumerations

Acting on states

Issues with conditionals

Expanding on the State Machine

The State pattern in action - the M5StateMachine class

The State pattern in action - StageManager

Issues with FSMs

Summary

Decoupling Code via the Factory Method Pattern

Chapter overview

Your objective

The trouble with switch statements

The Dependency Inversion Principle

The Factory method pattern

The Static Factory

The Dynamic Factory

Creating our Stage Builders

The template builder

Creating the Dynamic Factory class

Using the Dynamic Factory

Creating a component and Object Factory

The Templated Factory

Architecting versus over-architecting

Summary

Creating Objects with the Prototype Pattern

Your objectives

The trouble with using a factory for game objects

Using builders with objects

Solution - reading from files

The Prototype pattern explained

The virtual constructor

The problem with constructors

The benefits of a virtual constructor

We don't need to know the type

No need to subclass

It's easy to make exact copies

Examples of the clone method in Mach5

The Gfx and collider components

Cloning an object

Choosing a copy constructor

Covariant return types

Loading archetypes from a file

Archetype files

The object manager

Summary

Improving Performance with Object Pools

Chapter overview

Your objectives

Why you should care about memory

The Object Pool pattern explained

Implementing a basic object pool

Operator overloading in C++

Building the object pool for Mach5

Issues with object pools

Summary

Controlling the UI via the Command Pattern

Chapter overview

Your objectives

How can we control actions through buttons?

Callback functions

Repeated code in the component

The Command pattern explained

Two parameters and beyond

Pointers to member functions

Pointer to member command

The benefits of the command pattern

Treating a function call like an object

Physically decoupling the client and the function call

Temporal decoupling

Undo and redo

Easy UI with commands in Mach5

Using commands

Summary

Decoupling Gameplay via the Observer Pattern

Chapter overview

Your objectives

How gameplay creeps into every system

Hardcoding requirements

Polling

The Observer pattern explained

The Subject and Observer

The Player

The Observers

Push versus Pull

Benefits of using the Observer pattern

Problems using the Observer pattern

Dangling references

Overuse

Implementing interfaces

When to notify

Summary

Sharing Objects with the Flyweight Pattern

Chapter overview

Your objectives

Introductions to particles

Implementing particles in Mach5

Why memory is still an issue

Introduction to the Flyweight pattern

Transitioning to ParticleSystems

Creating different system types

Developing the ParticleFactory

Using the ParticleFactory

Summary

Understanding Graphics and Animation

Chapter overview

Your objectives

Introduction to monitor refresh rates

What is a pixel?

The horizontal and vertical blank

Refresh rate

Double buffering

The back buffer

VSync

Triple buffering

LCD monitors

Time-based movement and animation

Frame-based movement

Time-based movement

Summary

Best Practices

Chapter overview

Your objectives

Learning fundamental code quality techniques

Avoid magic numbers

White space

Indentation

Blank lines and spaces

Comments and self-documenting code

Commenting

Learning and understand the uses of the const keyword

Const function parameters

Const classes as parameters

Const member functions

Problems with const

Learning how iteration can improve your game and code design

The game development cycle

Production phase

Prototyping

Playtesting

Conducting a playtest

Iteration

Meeting milestones

Learning when to use scripting in a game

Introduction to assembly

Moving to higher-level programming languages

Introducing the compiler

Introduction to scripting languages

Using interpreters

Just in time compilation

Why use a scripting language?

When to use C++

Compiled versus scripting

Summary

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部