Home > Store

Multiplayer Game Programming: Architecting Networked Games

Register your product to gain access to bonus material or receive a coupon.

Multiplayer Game Programming: Architecting Networked Games

Book

  • Sorry, this book is no longer in print.
Not for Sale

eBook

  • Your Price: $46.39
  • List Price: $57.99
  • Includes EPUB and PDF
  • About eBook Formats
  • This eBook includes the following formats, accessible from your Account page after purchase:

    ePub EPUB The open industry format known for its reflowable content and usability on supported mobile devices.

    Adobe Reader PDF The popular standard, used most often with the free Acrobat® Reader® software.

    This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.

About

Features

  • Students will gain a thorough understanding of each of the engine level systems necessary to add multiplayer support to a computer game
  • Includes working implementations of each of the major systems
  • Discusses multiplayer game engine system implementation in relation to the game development process as a whole, specifically concentrating on how to always keep in mind the overall issues of runtime performance and code maintainability
  • Covers Internet functions with relation to multiplayer gaming
  • Includes review questions at the end of each chapter

Description

  • Copyright 2016
  • Dimensions: 7" x 9"
  • Pages: 384
  • Edition: 1st
  • Book
  • ISBN-10: 0-13-403430-9
  • ISBN-13: 978-0-13-403430-0

The Practical Guide to Building Reliable Networked Multiplayer Games

Networked multiplayer games are a multibillion dollar business: some games now attract tens of millions of players. In this practical, code-rich guide, Joshua Glazer and Sanjay Madhav guide you through every aspect of engineering them. Drawing on their immense experience as both game developers and instructors, the authors lead you through building a robust multiplayer architecture, and creating every engine-level system. You’ll learn through in-depth working code examples for two complete games: an action game and a real time strategy (RTS) game.

First, Madhav and Glazer review the essentials of networking and network programming from the standpoint of game developers. Next, they walk through managing game data transmission, updating game objects across the network, and organizing the devices that join your game. You’ll learn how to ensure reliable performance despite the Internet’s inherent inconsistencies, and how to design game code for maximum security and scalability. The authors conclude by addressing two increasingly crucial issues: incorporating gamer services and hosting your games in the cloud.

This guide’s content has been extensively tested through the authors’ multiplayer game programming courses at USC. It is equally valuable both to students and to working game programmers moving into networked games.

Coverage includes

  • How games have evolved to meet the challenges of networked environments
  • Using Internet communication protocols and standards in game development
  • Working with Berkeley Socket, the most widely used networking construct in multiplayer gaming
  • Formatting game data for efficient Internet transmission
  • Synchronizing states so all players share the same world
  • Organizing networking topologies for large-scale games
  • Overcoming latency and jitter problems that cause delays or lost data
  • Scaling games without compromising performance
  • Combating security vulnerabilities and software cheats
  • Leveraging the networking functionality of the popular Unreal 4 and Unity game engines
  • Integrating gamer services such as matchmaking, achievements, and leaderboards
  • Running game servers in the cloud

About the Website C++ source code for all examples is available at github.com/MultiplayerBook. Instructors will also find a full set of PowerPoint slides and a sample syllabus.

Extras

Companion Site

Please visit the website associated with Multiplayer Game Programming at here.

Sample Content

Sample Pages

Download the sample pages (includes Chapter 1 and Index)

Table of Contents

Chapter 1: Overview of Networked Games 1

A Brief History of Multiplayer Games 2

Starsiege: Tribes 5

Age of Empires 10

Summary 13

Review Questions 14

Additional Readings 14

Chapter 2: The Internet 15

Origins: Packet Switching 16

The TCP/IP Layer Cake 17

The Physical Layer 19

The Link Layer 19

The Network Layer 23

The Transport Layer 39

The Application Layer 52

NAT 53

Summary 60

Review Questions 61

Additional Readings 62

Chapter 3: Berkeley Sockets 65

Creating Sockets 66

API Operating System Differences 68

Socket Address 71

UDP Sockets 79

TCP Sockets 83

Blocking and Non-Blocking I/O 88

Additional Socket Options 96

Summary 98

Review Questions 98

Additional Readings 99

Chapter 4: Object Serialization 101

The Need for Serialization 102

Streams 105

Referenced Data 119

Compression 124

Maintainability 130

Summary 136

Review Questions 136

Additional Readings 137

Chapter 5: Object Replication 139

The State of the World 140

Replicating an Object 140

Naïve World State Replication 148

Changes in World State 152

RPCs as Serialized Objects 159

Custom Solutions 162

Summary 163

Review Questions 163

Additional Readings 164

Chapter 6: Network Topologies and Sample Games 165

Network Topologies 166

Implementing Client-Server 170

Implementing Peer-to-Peer 182

Summary 196

Review Questions 197

Additional Reading 197

Chapter 7: Latency, Jitter, and Reliability 199

Latency 200

Jitter 204

Packet Loss 206

Reliability: TCP or UDP? 207

Packet Delivery Notification 209

Object Replication Reliability 221

Simulating Real-World Conditions 228

Summary 230

Review Questions 231

Additional Readings 232

Chapter 8: Improved Latency Handling 233

The Dumb Terminal Client 234

Client Side Interpolation 236

Client Side Prediction 238

Server Side Rewind 248

Summary 249

Review Questions 250

Additional Readings 251

Chapter 9: Scalability 253

Object Scope and Relevancy 254

Server Partitioning 260

Instancing 262

Prioritization and Frequency 263

Summary 263

Review Questions 264

Additional Readings 264

Chapter 10: Security 265

Packet Sniffing 266

Input Validation 270

Software Cheat Detection 271

Securing the Server 274

Summary 277

Review Questions 278

Additional Readings 278

Chapter 11: Real-World Engines 279

Unreal Engine 4 280

Unity 284

Summary 287

Review Questions 288

Additional Readings 288

Chapter 12: Gamer Services 289

Choosing a Gamer Service 290

Basic Setup 290

Lobbies and Matchmaking 294

Networking 298

Player Statistics 300

Player Achievements 305

Leaderboards 307

Other Services 308

Summary 309

Review Questions 310

Additional Readings 310

Chapter 13: Cloud Hosting Dedicated Servers 311

To Host or Not To Host 312

Tools of the Trade 313

Overview and Terminology 315

Local Server Process Manager 318

Virtual Machine Manager 324

Summary 333

Review Questions 334

Additional Readings 334

Appendix A: A Modern C++ Primer 337

C++11 338

References 339

Templates 341

Smart Pointers 343

STL Containers 347

Iterators 350

Additional Readings 351

Index 353

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.