Great Deals on Used Textbooks & New Textbooks!               
My Account | Help Desk | Market Place Shopping Cart
Free shipping. Click here for details.
No items in cart.
Total: $0.00
Textbooks Sell Textbooks Books Supplies Medical Books College Apparel Movies Clearance
Search  Advanced >>
Related Topics: Computers >> Computer Graphics >> Game Programming
Cover Art for Game Programming With Python
Other versions by this Author

Game Programming With Python


Edition: 01
Author(s): Riley, Sean
ISBN10:  1584502584
ISBN13:  9781584502586
Format:  Paperback
Pub. Date:  10/24/2003
Publisher(s): Charles River Media

Buy in Bulk
Send to a friend
New Price  $48.75
List Price $50.00
eVIP Price  $46.32
New Copy:  Currently Available, Usually Ships in 24-48 Hours
add remove
Marketplace Price $55.95
List Price $50.00 Available in the eCampus Marketplace
Take 90 Days to Pay on $250 or more
with Quick, Easy, Secure
Subject to credit approval.
SummaryTable of Contents
If C and C++ are the languages of choice for game programmers, why should you consider using Python? Game Programming with Python explores this question in depth and teaches you why and how Python can reduce your development time, improve your technical designs, and make the entire development process more efficient. Game Programming with Python is about building games using Python. It deals with general concepts of game development and specifics that apply when using Python for game development. Some of the general topics include simulations, game architectures, graphics, networking, and user interfaces. The Python-specific topics covered include Python development strategies, using Python for data-driven systems, performance tuning, modules and packages, and interfaces between Python and other programming languages. Additionally, a series of increasingly complex examples are developed throughout the book using Python. Python is already being used by professional game developers in a number of popular commercial games, including the award winning Star Trek r Bridge Commander (Totally Games), Freedom Force (Irrational Games), and Earth & Beyond (Electronic Arts). Games such as these use Python in three major ways: as a full-fledged programming language to develop real software systems; as a scripting language to control and interface between systems written in other languages; and as a data language to describe game rules and game objects. Throughout the book, each of these major uses of Python is discussed along with the differences between them. Written for Python programmers interested in learning game development, as well as game developers interested in using Python, the book assumes you have some programming background and a basic grasp of software engineering principles. Some knowledge of the game development process is also assumed, although a concise overview is provided.

Python is an open source scripting language that provides an excellent, free, development choice for game programmers. Python is already catching on in this area, and has been used successfully in several published games. Game Programming with Python teaches programmers how to use Python to produce quality games. It details the general background issues on Python and provides some general game programming guidelines for those new to games. The majority of the book is focused on using python for game development, and how to use existing libraries for interfacing to other technologies, including audio, graphics, user interfaces, networking, and databases.

Throughout the book, users will work on developing a fully functional implementation of a game and learn all of the fundamentals of Python programming for games.

Preface xvii
Overview
1(4)
What This Book Is About
1(1)
What Is Python?
1(1)
What Is Game Development?
2(1)
Can Python Be Used for Games?
3(1)
The Contents of This Book
4(1)
Prerequisites
4(1)
SECTION I Introduction
5(20)
Game Architecture
7(12)
Architecture Diagram
8(1)
Physical Simulations
9(1)
Data Drivers
10(1)
Graphics Engines
11(2)
2D Engines
11(1)
3D Engines
12(1)
Graphics Engine Subcomponents
12(1)
Competing APIs
12(1)
Audio Systems
13(1)
Game Simulations
14(1)
User Interfaces
15(2)
Network Layers
17(2)
Summary
18(1)
Python Game Architectures
19(6)
Performance Characteristics of Python
19(1)
Pure Python
20(1)
Python Programming
21(1)
Python Scripting
22(1)
Python Data
22(1)
Other Languages
23(2)
The Lua Programming Language
23(1)
The Tcl Programming Language
23(1)
The Java Programming Language
24(1)
Summary
24(1)
SECTION II Game Infrastructure
25(72)
Python Game Framework
27(8)
Infrastructure Technology
27(1)
Initialization
28(1)
The Main Module
29(2)
The Main Loop
31(1)
Cleanup
32(2)
Running the Example Code
34(1)
Summary
34(1)
Simulation Concepts
35(20)
The Physical Simulation
36(1)
Components of the Physical Simulation
36(1)
Implementing Simulations with Python
37(1)
Reactive Simulation
37(2)
Controlled Simulation
39(1)
Parallel Simulation
40(1)
Simulation Conventions
41(2)
Variable Rate Updating
43(1)
The Base Simulation Class
44(3)
The Simulation World
47(2)
Updating the Simulation
49(6)
Summary
52(3)
Data-Driven Simulations
55(14)
Benefits of Data-Driven Systems
56(1)
Data Sources
57(1)
Text Files
57(1)
XML
57(1)
Relational Databases
58(1)
Scripting Languages
58(1)
Implementing a Data Repository
58(11)
Summary
67(2)
Collision Detection
69(28)
Classifying Objects for Collision
70(2)
Partitioning the World for Collision Detection
72(2)
Methods of Collision Checking
74(3)
Per Polygon
74(1)
Per Pixel
75(1)
Bounding Boxes
75(1)
Bounding Spheres
75(1)
Tiles
76(1)
Coordinate Spaces
77(2)
Coordinate Spaces for Collision Detection
77(1)
Coordinate Spaces and Bounding Boxes
78(1)
Axially Aligned Bounding Boxes
79(3)
Bounding Spheres
82(2)
Dealing with Moving Objects
84(3)
Implementing a Collision Grid in Python
87(7)
Making a Module
94(3)
Summary
95(2)
SECTION III Game Technologies
97(64)
Graphics
99(34)
Art Pipeline
100(1)
Using Python for Graphics Programming
101(2)
Minimize the Number of Elements Exposed in the Interface
102(1)
Minimize the Amount of Python Code Executed at Runtime
102(1)
Keep Graphics-Specific Data in the Graphics Engine
102(1)
Hide Implementation Details
102(1)
High-Level Graphics Interface
103(4)
Module Interfaces versus Object Interfaces
103(1)
The Graphics Engine Interface
103(4)
Python Graphics Engine
107(22)
The Module Interface
107(9)
The Graphics Object Interface
116(7)
Integrating with the Simulation
123(4)
Example Application
127(2)
Visualizing the Collision System
129(4)
Summary
131(2)
Audio
133(10)
Audio Concepts
134(1)
Amplitude
134(1)
Frequency
134(1)
Channels
134(1)
Sample Rate
134(1)
Pulse Code Modulation
135(1)
Playing Sound Effects
135(3)
Ambient Sounds
138(3)
Playing Music
141(2)
Summary
142(1)
Input
143(8)
Message Handling
144(2)
Keyboard Input
146(2)
Mouse Input
148(1)
Joystick Input
149(2)
Summary
150(1)
Unit Testing
151(10)
Introduction to Unit Testing
152(1)
Setup for Testing
152(2)
Testing the DataManager
154(1)
Testing the Simulation
155(6)
Summary
159(2)
SECTION IV Game Programming
161(134)
Game Simulations
163(34)
Players and Avatars
164(8)
The PongBallGame Class
165(2)
The PongPlayer Class
167(2)
The Simulation Objects
169(3)
Game Modes
172(13)
Mode Classes
172(2)
The Breakout Example
174(11)
The Entity Class
185(1)
Object Identification
185(3)
Game Events
188(9)
Summary
195(2)
Game Levels
197(16)
Game Levels
197(1)
Level Data
198(1)
Level Data in Python
199(3)
Game Modes for Levels
202(7)
The Pre-Level Mode
205(2)
The Post-Level Mode
207(2)
Managing Resources with Levels
209(4)
Summary
211(2)
User Interfaces
213(26)
Game User Interfaces
214(3)
UI Drawing
214(1)
Coordinate Systems
214(3)
User Interface Optimizations
217(1)
PyUI Introduction
217(1)
PyUI Concepts
218(3)
The Desktop
218(1)
Widgets
218(1)
Panels
219(1)
Windows
219(1)
Frames
219(1)
Dialogs
219(1)
Layout Managers
219(1)
Themes
220(1)
Renderers
220(1)
Fonts
221(1)
Events
221(1)
Using PyUI
221(9)
CanvasPanel Class
222(2)
CanvasFrame Class
224(3)
SaveDialog Class
227(3)
Interacting with the Simulation
230(5)
Drawing Text
235(4)
Bitmap Fonts
235(1)
Dynamic Fonts
236(1)
Summary
237(2)
Artificial Intelligence
239(30)
Basic State Machines
240(4)
State Machine Enhancements
244(9)
Transition Validation
244(1)
State Inputs
245(1)
Parallel State Machines
246(7)
Pathfinding Concepts
253(3)
World Representations for Pathfinding
253(3)
The A* Algorithm
256(2)
Implementing A* in Python
258(6)
Visualizing the Pathfinder
264(5)
Summary
268(1)
Procedurally Generated Game Content
269(26)
Predictable Random Numbers
270(4)
Random Number Distributions
271(1)
Predictable Random Numbers
272(1)
Using the random Module
272(2)
Terrain Generation
274(5)
Height Maps
274(1)
Mid-Point Displacement
275(4)
Terrain Generation in Python
279(8)
Name Generation
287(8)
Summary
293(2)
SECTION V Multiplayer Games
295(94)
Network Concepts
297(14)
Network Identification
298(5)
Internet Names
298(1)
IP Addresses
299(1)
Name Translation
300(1)
Port Numbers
301(1)
Subnets
302(1)
TCP/IP
303(1)
UDP/IP
304(1)
Blocking and Nonblocking I/O
305(1)
Bandwidth
305(1)
Latency
306(1)
Byte Ordering
307(4)
Summary
309(2)
Network Layers
311(30)
Socket Basics
313(2)
Sending and Receiving Data
315(2)
TCP/IP Server Models
317(11)
Connection Management
317(1)
Simple Iterative Server
318(3)
Concurrent Forking Server
321(3)
Concurrent Threaded Server
324(2)
Concurrent Asynchronous Server (Reactor Pattern)
326(2)
Introduction to Twisted
328(2)
The Twisted Reactor
329(1)
Twisted Protocols
330(1)
Game Protocol Design
330(11)
Static and Dynamic Protocols
330(1)
Streams and Packing
331(2)
Network Packets
333(6)
Summary
339(2)
Clients and Servers
341(26)
Multiplayer Game Architectures
342(5)
Peer-to-Peer Architecture
342(2)
Client/Server Architecture
344(1)
Massively Multiplayer
345(2)
Code Organization
347(1)
A Game Server
348(8)
A Game Client
356(11)
The LobbyFrame class
364(2)
Summary
366(1)
Multiplayer Game Example
367(22)
Code Organization
368(1)
The Tic-Tac-Toe Game
369(1)
The Game Server
370(8)
The TicTacGame Class
372(4)
The TicTacServerProtocol Class
376(1)
The TicTacServer Class
377(1)
Running the Server
377(1)
The Tic-Tac-Toe Game Client
378(11)
The Client Protocol
378(2)
The Client Application
380(1)
The TicTacWindow Class
381(4)
Running the Client
385(3)
Summary
388(1)
SECTION VI Advanced Topics
389(68)
Using the Python C API
391(16)
The Abstract Object Layer
392(3)
The Object Protocol
393(1)
The Number Protocol
394(1)
The Sequence Protocol
394(1)
The Mapping Protocol
395(1)
Other Protocols
395(1)
Reference Counting
395(3)
Heap vs. Stack Memory
396(1)
Reference Counting Macros
397(1)
Exception Handling
398(1)
Data Conversion
399(3)
Extracting Parameter Values
399(2)
Building Return Values
401(1)
Concrete Object Layer
402(5)
Fundamental Objects
403(1)
Numeric Objects
404(1)
Sequence Objects
404(1)
Mapping Objects
405(1)
Other Objects
405(1)
Summary
406(1)
Extending Python
407(36)
Writing Extension Modules
408(14)
Using Extension Modules
409(1)
Creating an Extension Module
410(3)
Extension Module Example
413(9)
Writing Extension Types
422(10)
Type Structures
423(3)
Instance Creation and Deletion
426(2)
Member Function of Extension Types
428(4)
Compiling Extension Code
432(3)
Automating Interface Generation
435(8)
SWIG
437(2)
Boost.Python
439(1)
Psyco
440(2)
Summary
442(1)
Embedding Python
443(14)
Embedding the Interpreter
444(5)
Python Context
446(2)
Executing Python Code
448(1)
Communicating with the Host Application
449(2)
Example Application
451(3)
Project Setup
454(3)
Summary
455(2)
Appendix About the CD-ROM 457(4)
Index 461

Check Out These Items!
eCampus.com Pink Backpack eCampus.com Pink Backpack
Retail Price $28.95
Our Price $10.00
eCampus.com T-Shirt eCampus.com T-Shirt
Retail Price $14.99
Our Price $2.00
eCampus.com 4GB USB Drive eCampus.com 4GB USB Drive
Retail Price $32.95
Our Price $25.00
  Buy Textbooks
  Sell Textbooks
  College Apparel
  Shop by School
  Virtual Bookstores
  Order Status
  Shipping Rates
  Return Policy
  Marketplace Info
  F.A.S.T.
  Contact Us
  Privacy Policy
  Legal Notices
  Site Security
  Employment
  Help Desk
  eCampus Blog
  Affiliate Program
  Bulk Orders
  College Marketing
HACKER SAFE certified sites prevent over 99.9% of hacker crime.
eCampus.com blog follow eCampus.com on twitter find eCampus.com on facebook RSS Need Help? eService@ecampus.com   Copyright© 1999-2008     
.