Linux Game Programming
Mark Collins, Ben Campbell, Steve Baker, Martin Donlon
Résumé
With the growing interest in Linux on the desktop, it is only a matter of time until everyone will want high-quality Linux games. With commercial developers now setting up in-house teams for porting thier titles to Linux, people are finally acknowledging that the OpenSource platform is a viable gaming platform. Linux® Game Programming is your guide to game development for Linux, covering all the APIs and methodologies you will need, as well as some more advanced techniques rarely discussed in other game development guides, such as neural networks and genetic algorithms. You will also find valuable information on 2D graphics using SDL, Xlib, and SVGAlib; 3D graphics using OpenGL; networking, lobbying, and threading; artificial intelligence and learning systems; genetic algorithms; and much, much more!
What's on the CD:
- The Latest Linux® Kernel Source
- Indrema Entertainment Software Development Toolkit
- Mesa 3D Version 3.4
- OpenAL
- Pretty Poly Editor
- Sol
- Linux® SVGAlib
- Author Code
Introduction
Chapter 1: Introduction to Game Development
What Makes a Game?
Strategy Games
Simulations
Platform Games
Puzzle Games
Adventure Games
Role-Play Games
Card Games
Sports Games
Development
Testing
Releasing Your Game
Commercial Games
Shareware Games
Chapter 2: Linux Development Tools
Development Tools
Debugging Tools
Libraries
OpenGL
libX11
Other Libraries
Chapter 3: The Structure of a Game
The Parts of a Game
A Game Framework
Chapter 4: 2D Graphics Under Linux
The SDL API
Creating a Window
Creating a Surface
Drawing a Bitmap Image
Drawing Directly to the Screen
Plotting Pixels
Cleaning Up
Drawing to the Screen
Drawing Images
Installing Color Maps
Cleaning Up
Drawing to the Screen
Displaying Images
Displaying the Image
Cleaning Up
Chapter 5: Input with SDL
Understanding Input Devices
Mouse
Joystick
Polling
Layout
Interpreting Event Types
Reading from the Event Queue
Mouse Events
Joystick Events
Polling the Mouse
Chapter 6: 3D Graphics for Linux Games
Some History: Mesa and OpenGL
Where Can I Get OpenGL?
Getting Started
Compiling and Linking with OpenGL
Let's Draw Something!
Drawing in 3D: Perspective and Movement
Drawing in Orthographic or Perspective Mode
Code That Moves the Object
The GL_LIGHTING Option
The GL_TEXTURE_2D Option
The GL_COLOR_MATERIAL Option
The GL_BLEND Option
The GL_ALPHA_TEST Option
The GL_DEPTH_TEST Option
Establishing the Light Source
Setting Up Surface Normals
MIP Mapping the Image
Applying the Texture
Fogging
Chapter 7: Using OpenGL in Games
Understanding Display Lists
Understanding Vertex Arrays
Drawing with Triangle Strips and Fans
Adding Text
Understanding Matrices
Working with Plane Equations, Line Equations, and Distances
in 3D
Using Billboards to Simulate 3D
Working with Particles
Detecting Collisions
If the Objects Are Close, Test Again
Follow Surface Contours
State Management
Scene Graphs
Advanced Lighting
Putting It All Together
Chapter 8: Sound Under Linux
OpenAL
Creating Listeners
Loading a Sound File
Creating Sound Sources
Playing Sounds
Getting the State of the Sound
Stopping Sounds
Deleting a Source
Moving the Source
Compiling the Sample
Velocity and Doppler Shift
Reverb and Echo
Streaming Buffers
Loading Samples
Using the Audio Callback Function
Pausing the Audio Stream
Mixing Different Samples
Opening the Device
Getting a Track Listing
Playing a CD
Some Code
Chapter 9: Networking
Introduction to Modern Networking
Client/Server Networking
UDP
Connecting the Socket
Sending Data
Using the send() Function
The sendto() Function
A Mini-Exercise
The select() Function
Another Mini-Exercise
Creating a Server
Using the listen() Function
Accepting Connections
Using Message Queues to Communicate between Threads
Pings
Sending Controller Inputs
Using the Lobby Server
Logging In to the Lobby Server
Ending Games
Joining and Leaving Rooms
Sending Chat Messages
Denial-of-Service Attacks
Chapter 10: Artificial Intelligence
Basic Artificial Intelligence
Modify the Tree to Accommodate Multiple Routes
Search the Tree
Problem Solving
Min-Max Trees
The Genebot
Changing the Behavior of the Network
Personality
Chapter 11: OpenSource: Friend or Foe?
What Is OpenSource?
Ability to Charge for Expenses
The Bazaar
Security
Available Code
Free Software, Free Information
Many Developers
Fame
The Community Aspect
Availability of the Software
The Cause
Because You Like It
Paranoia
Plagiarists
New Technologies
Contracts
Selfishness
The "He Didn't, So I Won't" Attitude
Politics
Ego
Security through Obscurity
OpenSource Later
Limited License
Key Technologies
Emulators
Time-Share
Registered Testers
The Solution
Open Licenses
Custom Licenses
Liability
Appendix A: OpenSource License Agreements
GNU General Public License
GNU Lesser General Public License
BSD License
Artistic License
Mozilla Public License
The Apache Software License
MIT License
Appendix B: Porting
Porting Strategy
Getting Started
#ifdef Is Your Friend
The Harder Stuff
First Light
GCC Code Size
Mixing Signed and Unsigned Types
Assignment from void*
GCC Doesn't Complain About Missing Return Values
GCC Doesn't Complain About Use of Uninitialized Variables
GCC Is More Strict About Implicit Casting
Include Filenames
Struct Packing
Drive Letters and Path Separators
Line Termination
File Attributes and Home Directories
Register Naming
Opcode Naming and Operand Size
Immediate Values
Addressing Modes
Endianess
Timers
The Registry
Hungarian Notation
DOS Frame Buffer
Direct3D
Polygon Winding
Texture Management
OpenGL Extensions
Networking Issues
Include Files
Return Codes
Different Calls
Appendix C: References
Web Sites
GamaSutra
Flipcode
Happy Penguin
Indrema Developer Network
Linux Games
Linux Game Developer Resource Centre
OpenGL Reference (The Blue Book)
Graphics Programming Black Book
Game Architecture and Design
TCP/IP Illustrated (Volume 2)
Linux Device Drivers
Game Development Series
Develop
Edge
MCV
Computer Weekly
Computing
Mailing Lists
Appendix D: Glossary
Appendix E: What's on the CD-ROM
Running the CD-ROM with Windows 95/98/2000/NT
Running the CD with Linux
Index
L'auteur - Mark Collins
At the age of just 18 the infamous Mark 'Nurgle' Collins secured a job in the games industry developing network support for a successful product line, as well as being considered a guru for Linux game development by the GameDev.Net community. After having many adventures, including several run-ins with Microsoft, he's starting up his own development studio with the aim of making games good again.
L'auteur - Steve Baker
Autres livres de Steve Baker
Caractéristiques techniques
PAPIER | |
Éditeur(s) | Prima Publishing |
Auteur(s) | Mark Collins, Ben Campbell, Steve Baker, Martin Donlon |
Parution | 01/05/2001 |
Nb. de pages | 331 |
Format | 18,8 x 23 |
Couverture | Broché |
Poids | 763g |
Intérieur | Noir et Blanc |
EAN13 | 9780761532552 |
Avantages Eyrolles.com
Nos clients ont également acheté
Consultez aussi
- Les meilleures ventes en Graphisme & Photo
- Les meilleures ventes en Informatique
- Les meilleures ventes en Construction
- Les meilleures ventes en Entreprise & Droit
- Les meilleures ventes en Sciences
- Les meilleures ventes en Littérature
- Les meilleures ventes en Arts & Loisirs
- Les meilleures ventes en Vie pratique
- Les meilleures ventes en Voyage et Tourisme
- Les meilleures ventes en BD et Jeunesse