Sold out

Multiplayer Game Programming - Architecting Networked Games

English · Paperback / Softback

Description

Read more

Multiplayer Game Programming is a detailed investigation of networked multiplayer game engineering. A guided tour through the trials and challenges of building a robust multiplayer architecture, this book provides explanations and in-depth working examples of all the engine-level systems needed in a multiplayer game.

List 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

About the author

Joshua Glazer is a cofounder and CTO of Naked Sky Entertainment, the independent development studio behind console and PC games such as RoboBlitz, MicroBot, Twister Mania, and more recently, the mobile hits Max Axe and Scrap Force. As a leader of the Naked Sky team, he has consulted on several external projects including Epic Games’ Unreal Engine, Riot Games’ League of Legends, THQ’s Destroy All Humans franchise, and numerous other projects for Electronic Arts, Midway, Microsoft, and Paramount Pictures.
Joshua is also a part-time lecturer at the University of Southern California, where he has enjoyed teaching courses in multiplayer game programming and game engine development.
Sanjay Madhav is a senior lecturer at the University of Southern California, where he teaches several programming and video game programming courses. His flagship course is an undergraduate-level game programming course that he has taught since 2008, but he has taught several other course topics, including game engines, data structures, and compiler development. He is also the author of Game Programming Algorithms and Techniques.
Prior to joining USC, Sanjay worked as a programmer at several video game developers, including Electronic Arts, Neversoft, and Pandemic Studios. His credited games include Medal of Honor: Pacific Assault, Tony Hawk’s Project 8, Lord of the Rings: Conquest, and The Saboteur—most of which had networked multiplayer in one form or another.

Summary

Multiplayer Game Programming is a detailed investigation of networked multiplayer game engineering. A guided tour through the trials and challenges of building a robust multiplayer architecture, this book provides explanations and in-depth working examples of all the engine-level systems needed in a multiplayer game.

Product details

Authors Josh Glazer, Sanjay Madhav
Publisher Addison-Wesley
 
Languages English
Product format Paperback / Softback
Released 31.01.2017
 
EAN 9780134034300
ISBN 978-0-13-403430-0
No. of pages 384
Dimensions 178 mm x 228 mm x 14 mm
Weight 514 g
Series Addison-Wesley
Game Design
Addison-Wesley
Game Design
Subjects Guides > Hobby, home > Games, quizzes
Natural sciences, medicine, IT, technology > IT, data processing

Customer reviews

No reviews have been written for this item yet. Write the first review and be helpful to other users when they decide on a purchase.

Write a review

Thumbs up or thumbs down? Write your own review.

For messages to CeDe.ch please use the contact form.

The input fields marked * are obligatory

By submitting this form you agree to our data privacy statement.