We had several audiences in mind when writing this book.
For system architects and designers we present an overview of current systems, underlying code and strategies that have been used in real-systems. In our own work, we often found ourselves wanting a reference and tutorial that we could give to colleagues and students to explain why networked graphics was not just a simple case of getting your graphics engine and bolting on some networking.
For students and teachers we hope this book provides a suitable resource for a university module at undergraduate level. Particularly we had in mind, a course on networking for a computer games programme or a course on advanced graphics, where there might not be time for standard university module on computer networking.
For researchers in graphics and networking we hope this book helps explain the “other side”. Having worked on the boundary between two large fields, there is a lot of misconception of the relative difficulty of the complementary field. Graphics researchers do tend to consider networking to be a black box, and networking researchers do tend to underestimate the problems of making your NVE work smoothly. Fortunately this gulf is being straddled by the increasing academic interest that recent games have attracted. Meetings such as the ACM-sponsored NetGames Workshop, Advances in Computer Entertainment and Sandbox Symposium have given a venue for focused discussion.
This book is not, however, an introductory text on either networking or graphics. We assume that the reader will have some experience with computer graphics or computer games, so they are at least familiar with computer graphics terms such as scene graph and in some places we use some simple vector algebra. We also assume the reader will have some awareness of operating system concepts, such as relative performance of disk and memory speed, CPU performance, etc. though nothing more than a familiarity with computing or a first-year undergraduate course on computer hardware will be necessary.
We don’t aim to compete with thorough and complete teaching books on networking. We give sufficient information to get up and running and explain particular aspects of networking that are very relevant for networked graphics such as latency and throughput. However, we don’t have the space to do justice to topics such as routing control and network hardware. We do introduce a variety of network tools and middleware and give brief tutorials. In these cases we refer to the often excellent online documentation that can give you the full details.
Finally, this is not a book about how to build your networked game, we do not give recipes or example code for large-scale systems though we do discuss the role of middleware that can be a drop-in solution for many requirements. However, we believe it is important to understand the underlying concepts and issues thoroughly otherwise you risk using the middleware ineffectively. This book does not touch on the issues of designing and running online games. There are such books on the market, often with great insight in to difficult aspects of game production. But before you rush out and buy one of those books instead, those books often focus on production and game mechanics, not the networking or graphics technology. We suggest that the book you hold gives a more rounded introduction to the general technology issues.