Programming 2D Games  book cover
1st Edition

Programming 2D Games

ISBN 9781466508682
Published June 21, 2012 by A K Peters/CRC Press
440 Pages

FREE Standard Shipping
USD $99.95

Prices & shipping based on shipping country


Book Description

A First Course in Game Programming
Most of today’s commercial games are written in C++ and are created using a game engine. Addressing both of these key elements, Programming 2D Games provides a complete, up-to-date introduction to game programming. All of the code in the book was carefully crafted using C++. As game programming techniques are introduced, students learn how to incorporate them into their own game engine and discover how to use the game engine to create a complete game.

Enables Students to Create 2D Games
The text covers sprites, animation, collision detection, sound, text display, game dashboards, special graphic effects, tiled games, and network programming. It systematically explains how to program DirectX applications and emphasizes proper software engineering techniques. Every topic is explained theoretically and with working code examples. The example programs for each chapter are available at

Table of Contents

Getting Started
The Development Environment
What Is DirectX?
Why C++?
Naming Conventions 
Game Engine
Tips and Tools

Windows Programming Fundamentals
Windows Programming Fundamentals
"Hello World" Windows Style
Device Context
Keyboard Input with Windows API
Using a Mutex to Prevent Multiple Instances 
Multitasking in Windows

Introduction to DirectX
Introduction to DirectX
Initializing DirectX
Creating a Device
Clearing a Display Buffer
Page Flipping
A Clean Exit
The Graphics Class
Our First DirectX Program
Fullscreen or Windowed
Debug vs. Retail DLLs
Determining Device Capabilities

The Game Engine
The Game Engine, Part 1
The Game Class
The Input Class
The Spacewar Class

Sprites and Animation
Obtaining Game Graphics
The Graphics Pipeline
Drawing with Transparency
The TextureManager Class
The Image Class
Game Engine
Simple Animation

Collisions and Entities
The Entity Class
Physics for 2D Games

Obtaining Audio Files
Creating Audio Files
Using XACT
Adding Audio to the Game Engine
Adding Sound to the Game
Adjusting Audio Playback 

Sprite Text
Creating Custom Fonts
Text Class Details
DirectX Text
TextDX Class Details 
Adding an FPS Display 
Adding a Console
Console Class
Incorporating the Console into the Game Engine

Enhanced Appearance
Bitmap Scrolling
Painter's Algorithm
Parallax Scrolling 
Shadows and Reflections
Message Dialog
Input Dialog
Windows Dialogs in Fullscreen DirectX Applications

Tiled Games
Why Tiled?
Creating a Tile Set
Creating Levels
Displaying the Tiles
Orthogonal Projection
Oblique Projection
Isometric Projection
Isometric Terrain
Elevation Layers 

Building a Complete Game
Evolutionary Prototyping  
Project Management
Design Document 
Prototype Textures 
Spacewar Tasks
Spacewar v1.0
Saving and Loading 

Network Programming
Network Overview
The Net Class
Initialize the Network
Creating a Server
Creating a Client
Get the Local IP Address
Closing a Socket
Get Error
Client/Server Chat
Client/Server Spacewar
Spacewar Server
Spacewar Client

The Journey


Questions and Exercises appear at the end of each chapter.

View More



Charles Kelly is an associate professor at Monroe County Community College, where he teaches game programming and other computer science courses. He is also the project lead of and major contributor to the open source assembler/simulator "EASy68K." He earned a master’s degree in computer science from the University of Michigan-Dearborn, where he is also an adjunct instructor.