Home > Store > Programming > Games

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

Best Value Purchase

Book + eBook Bundle

  • Your Price: $59.39
  • List Price: $98.98
  • Includes EPUB, MOBI, 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.

    MOBI MOBI The eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

    Adobe Reader PDF The popular standard, used most often with the free Adobe® 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.

More Purchase Options

Book

  • Your Price: $43.99
  • List Price: $54.99
  • Usually ships in 24 hours.

eBook (Watermarked)

  • Your Price: $35.19
  • List Price: $43.99
  • Includes EPUB, MOBI, 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.

    MOBI MOBI The eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

    Adobe Reader PDF The popular standard, used most often with the free Adobe® 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

Online Sample Chapter

Multiplayer Game Programming: An Overview of Networked Games

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

Unlimited one-month access with your purchase
Free Safari Membership