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


Preview

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 www.programming2dgames.com.

Table of Contents

Getting Started
Overview
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
Vectors
Collisions
The Entity Class
Physics for 2D Games

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

Text 
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
Dashboard

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
Sending
Receiving
Closing a Socket
Get Error
Client/Server Chat
Client/Server Spacewar
Spacewar Server
Spacewar Client

The Journey

Index

Questions and Exercises appear at the end of each chapter.

...
View More

Author(s)

Biography

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.