Multiplayer Game Programming
Addison Wesley (Verlag)
978-0-13-403430-0 (ISBN)
- Titel ist leider vergriffen;
keine Neuauflage - Artikel merken
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.
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.
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
Erscheint lt. Verlag | 5.1.2016 |
---|---|
Reihe/Serie | Game Design |
Verlagsort | Boston |
Sprache | englisch |
Maße | 179 x 227 mm |
Gewicht | 590 g |
Themenwelt | Informatik ► Software Entwicklung ► Spieleprogrammierung |
ISBN-10 | 0-13-403430-9 / 0134034309 |
ISBN-13 | 978-0-13-403430-0 / 9780134034300 |
Zustand | Neuware |
Haben Sie eine Frage zum Produkt? |
aus dem Bereich