Déjà client ? Identifiez-vous

Mot de passe oublié ?

Nouveau client ?

CRÉER VOTRE COMPTE
Multi-player game programming
Ajouter à une liste

Librairie Eyrolles - Paris 5e
Indisponible

Multi-player game programming

Multi-player game programming

John Cunningdham, André LaMothe

784 pages, parution le 01/06/2001

Résumé

Learn techniques and secrets of online game technology!

Multiplayer Game Programming is the first technical guide to enable you to write a complete Internet-ready video game using DirectX® 8. The first part of the book covers the history of online gaming, the architecture of multiplayer games, basic networking, and an introduction to Visual C++® and Windows® programming. After you cover the basics, you'll move on to sockets, DirectPlay,® Direct3D,® DirectAudio,® and DirectInput® programming, as well as multiplayer game design. Whether you are new to game programming, or you have extensive game programming experience but want to break into the multiplayer phenomenon, this book is for you. Multiplayer Game Programming teaches you the skills necessary to create interactive, online games!

What's on the CD:
  • Microsort® DirectX® 8 Software Development Kit
  • Evaluation Version of Fastgraph®/Light 6.0
  • Trial Versions of Microsoft® MechWarriorTM 4: Vengeance and Microsoft® Crimson SkiesTM
  • Source code from the book
  • CuteFTP
  • WinZip®

Contents

Foreword
Letter from the Series Editor
Introduction

Part I: Understanding the Technology

Chapter 1: Sup, Wait! It's the History of Online Gaming!
Your Name Will Be MUD

Persistent Worlds
Let There Be Modems
BBS Games
Modem-to Modem Games
Real-Time Strategy Games
Command & Conquer
The Appeal of RTS Games
Massively Multiplayer Online Role-Playing Games
Meridian 59
Ultima Online
EverQuest
Starsiege Tribes
Asheron's Call
The Present and the Future
Review

Chapter 2: Understanding the Magic
Game Loops

Initialization
Inside the Game Loop
Inside Online Games
Client/Server Games
Peer-to-Peer Games
Graphics, Graphics, Where Are the Graphics?
Bitmaps
Backgrounds and Layering
Animation and Frames
Blitting
Collision Detection
What about the Third Dimension?
Review

Chapter 3: Introduction to Network Communication
Network Theory

Standard Methods for Game Communication
Game Communication Hardware
Connecting to the Internet
Local Area Networks
Server Architecture
Packet, Packet, Who's Got the Packet?
The Tic-Tac-Toe Example
Ideal Packet Size
Review

Part II: Sockets-Based Network Programming

Chapter 4: Writing Your First Network Programs
Overview of the SocketObject Class

SocketObject Class Member Functions
SocketObject Class Sample Code
Writing the ConnectionTest Program
Components Needed to Build the Program
Getting Started with the Compiler
Writing and Compiling the Code
Running the Server and Client Programs
Examining the Code
Writing a Program to Send Data
Components Needed to Build the Program
Writing the SendDataTest Program
Running the SendDataTest Program
Walking through the SendDataTest Code
Writing a Simple Chat Program
Components Needed for the Chat Program
Writing the SimpleChat Program
Running the SimpleChat Program
Walking through the SimpleChat Code
Review

Chapter 5: Creating a Sockets Class Object
C++ Classes in All Their Glory

An Overview of C++ Smaller than a Fly Burp
Get to the Point Already!
Designing the SocketObject Class
The SOCKET DataType
The Bind Functionality
The SOCKADDR Data Type
The Socket() Function
The C Version of Binding
The C++ Version of Binding
The Listen Functionality
The Listen() Function
The C++ Version of Listening
The Accept Functionality
The Accept() Function
The C++ Version of Accepting a Client Connection
The Connection Functionality
The Connect() Function
The C++ Version of Establishing a Connection
Sending Data
The C Version of Sending Data
The Send() Function
The C++ Version of Sending Data
Receiving Data
The Recv() Function
The C Version of Receiving Data
Receiving Data with C++
Review

Chapter 6: Introduction to Windows Programming
A Brief History of Time According to Gates

DOS
Windows 1.0-2.0
Windows 3.1-3.11
Windows 95
Windows 98
Windows 2000 and Others
The Architecture of Windows Programs
Multitasking
What Is a Window anyway?
Events That Don't Even Require a Ticket
How to Make Sense of Windows Code
MFC, Insert Favorite Acronym Here
Why It's a Good Thing
Why It's a Bad Thing
A Little Compromise
Creating a Window from Start to Finish
The All Important WinMain() Function
Handling Window Messages and Events
The Complete Code Listing
Basic Theory of Multithreading
Stack Space
Communicating with Threads
Thread Synchronization with Mutexes
Creating a thread Using CreateThread()
Closing a thread Properly
Review

Chapter 7: Practical Window Programming
Setting Up the Visual C++ Project
Creating the Hello World Program

The PeekMessage() Function
Adding Static Text to a Window
Resource Identification
Creating a Child Window
Having Fun with Buttons in Windows
The Button Class
The ListBox Child Class Object
The CreateWindowEx() Function
The SendMessage() Function
Accepting Text Input with Edit Fields
The GetWindowText() Function
The WinUberClient Program
Review

Part III: It's All About DirectX, Baby!

Chapter 8: What the Heck Is DirectPlay Anyway?
DirectPlay, the Equalizer

Service Providers
Game Sessions
DirectPlay Addresses
The Address Object
IDirectPlay8Address Functions
Components of an Address
The DirectPlay Message Handler
Creating the Message Handler
Processing Messages
Peer-to-Peer Sessions
Initializing a Peer-to-Peer Session
Hosting a Peer-to-Peer Session
Joining a Peer-to-Peer Session
Review

Chapter 9: Chatting with DirectPlay
Creating the Project Space

The DPChat Header File
The Main Project File
Review

Chapter 10: Lions and Clients and Servers, Oh My!
The Wicked Server of the West

Client/Server Architecture Overview
The IDirectPlay8Server Interface
The IDirectPlay8Address Interface
Hosting the Session
Managing Players
Receiving Client Messages
The hrSendServerMessage() Function
The IDirectPlay8Client interface
Joining the Server's Session
Sending Messages to the Server
Review

Chapter 11: DirectX Graphics
What Is Direct3D?

Device Independence
Software Emulation
Texture Mapping
Mip-Mapping
Gouraud and Flat Shading
Multiple Hardware Lights
Hardware Acceleration
Page Flipping
Z-Buffers
Fog
How to Use DirectGraphics
The IDirect3D8 Interface
Your First Direct3D Application
Setting Up Visual C++ for 3D Applications
The WinMain() Function
The hrlnit3D() Function
The vRenderScene() Function
The vCleanup() Function
Your Second Direct3D Program
The D3DXMATRIX Data Type
The D3DXVECTOR3 Data Type
The vSetupView() Function
Review

Chapter 12: Inside Direct3D Rendering
Polygons

Cartesian Coordinate Systems
Primitives
Point Lists
Line Lists
Line Strips
Triangle Lists
Triangle Strips
Triangle Fans
Drawing a Primitive
The Header Information
The Globals
The WinMainO Function
The hrInit3D() Function
The vInitGeometry() Function
The vSetupView() Function
The vRenderScene() Function
The vCleanup() Function
Show Me the Textures!
The Header Changes
The vInitGeometry() Changes
The vRenderScene() Changes
The vCleanup() Changes
Lights, Cameras, Action!
The D3DFVF_NORMAL Vertex Format
How to Create Hardware Lighting
Loading X-Files
The XFileLoader Project Space
The XFileLoader Header
Loading the X-File
Rendering the X-File
The Living World
Radians or Die!
The Dynamic Message Loop
Reading the Arrow Keys
The Rotation Matrix
Review

Chapter 13: Now Showing, DirectInput and DirectAudio!
Using a Keyboard with DirectInput

The IDirectInput8 Interface
The DirectinputKeyboard Project
The DIK_Read Project
Introduction to DirectAudio
The IDirectMusicLoader8 Interface
The IDirectMusicPerformance8 Interface
The IDirectMusicSegment8 Interface
How to Initialize DirectAudio
The DirectAudioInit Header Information
The hrInitDirectAudio() Function
Cleaning Up DirectAudio
Playing Sound with DirectAudio
New Additions to the Project
The hrLoadSound() Function
The hrPlaySound() Function
Cleaning Up the Segment
Review

Chapter 14: SpacePirates: Your First Complete Game
SpacePirates:The Game Design

The Game Objective
The Game Objects
Game Timing
Time-Based Movement
Network Synchronization
Scheduled Updates
Non-Synchronization
The Game Classes
The Sound Classes
The 3D Object Class
Space Pirates: The Game Architecture
The WinMain() Function
The vInitializeObjects() Function
The hrInitializeDirectPlay() Function
The hrInit3D() Function
The hrBuildDeviceList() Function
The hrInitDirectInput() Function
The hrInitKeyboard() Function
The vInitGeometry() Function
The vSetupView() Function
The vCreateLights() Function
The vInitSoundEngine() Function
Controlling the Game
The Command Console
Movement Keys
The Game Loop
Updating the Game
The vUpidateObjects() Function
Updating the Remote Players
Rendering the Scene
Player Management
The DirectPlayMessageHandler() Function
Review

Part IV: Developing Online Worlds

Chapter 15: MMORPG Design and Implementation
Game Architecture

Persistent Worlds
Every Player Is a Hero
Player Communities
The Good, the Bad, and the PK
Player Advancement
Item Ownership
Server Architecture
Server Specifications
Internet Connection
Server Layout
Server Security
Player Validation
Client Architecture
Action Validation
Dynamic Patching
Client Portability
The User Interface
Review

Chapter 16: Writing the RPGQuest Game Server
The Game Project Space

RPGQuest Gameplay
Program Structure
The Game-Server Code
TheWinMain() Function
Processing Player Messages
Calculating the Time of Day
Updating the Players
Review

Chapter 17: Writing the RPGQuest Game Client
The Project Space

The Object3DClass Files
The SoundSystem Class Files
The Graphics System
Direct3D Initialization
Loading the 3D Data
Lighting the Scene
Setting the Camera Position
Setting the Client's Time of Day
Rendering the Scene
Sound and Input Handling
Handling DirectInput
Handling DirectSound
Network Handling
Sending Messages to the Server
Processing Incoming Messages
Player Synchronization
Review

Part V: Appendixes

Appendix A: Game-Development Resources
Gaming Sites
Development Sites
Product Sites
Magazines

Appendix B: Installing the Software
Installing the DirectX 8 SDK
Configuring the Microsoft Visual C++ Compiler

Appendix C: ASCII Chart

Appendix D: What's On the CD

Index

L'auteur - André LaMothe

André LaMothe

holds degrees in mathematics, computer science, and electrical engineering. He is the author of the best-selling books Tricks of the Game Programming Gurus, Teach Yourself Game Programming in 21 Days, and the Black Art of 3D Game Programming. Andre has also written numerous articles in Game Developer, Byte, Software Developer, and Circuit Cellar.

Caractéristiques techniques

  PAPIER
Éditeur(s) Prima Publishing
Auteur(s) John Cunningdham, André LaMothe
Parution 01/06/2001
Nb. de pages 784
Format 18,8 x 23
Couverture Broché
Poids 1350g
Intérieur Noir et Blanc
EAN13 9780761532989
ISBN13 978-0-7615-3298-9

Avantages Eyrolles.com

Livraison à partir de 0,01 en France métropolitaine
Paiement en ligne SÉCURISÉ
Livraison dans le monde
Retour sous 15 jours
+ d'un million et demi de livres disponibles
satisfait ou remboursé
Satisfait ou remboursé
Paiement sécurisé
modes de paiement
Paiement à l'expédition
partout dans le monde
Livraison partout dans le monde
Service clients sav@commande.eyrolles.com
librairie française
Librairie française depuis 1925
Recevez nos newsletters
Vous serez régulièrement informé(e) de toutes nos actualités.
Inscription