Code Uploaded

We've done a first upload of the code for the examples in the book. Apologies for the delay in doing this, I have been busy with projects and students over the past few months.

 

Acknowledgements

 

It is difficult to acknowledge everyone who contributed in some way to the production of a book. A list of colleagues who helped in some small way, by teaching us something or having interesting discussions would run to several pages. We can identify a few individual who gave generously of their time to help us with the book, either identifying important areas to look at, helping us with material or reviewing. They include Ian Shaw, Olivier Carrere, Richard Parr, Paul Ross, Alex Veal, Andreas Schultz, Stephen Ellis, Rebecca Garnet, Jon Crowcroft, David Roberts, Tim Rance, Ian Yarwood-Lovett and Kevin Jenkins.


Even if they weren't aware of the development of this book, we would like to acknowledge some collaborators as they had considerable influence on our thinking about networking or graphics: Emmanuel Frécon, Olov Stahl, Chris Greenhalgh, Mel Slater, Don Brutzman, Tristan Henderson, Brian Levine,
Mário Gomes, Joâo Pereira, Christophe Diot and Tom Rodden. Anthony would also like to acknowledge the whole team he worked with at Electronic Arts in 2006-2007 who made him feel very welcome and gave him an excellent introduction to current generation console development. A large part of the impetus to write this book came from that experience and hearing about colleagues' experiences on other games projects. He would also like to acknowledge various students he has worked with who have implemented various research ideas. These include: Will Steptoe, Bingshu Zu, Cameron Angus and Roula Abou-Haidar.

We would like to acknowledge the editorial and production team at Morgan Kaufman who saw this book through its development. In particular Paul Gottehrer, Gregory Chalson and Heather Scherer.

Finally we both would like to acknowledge our families who had to live with drafts and proofs appearing in evenings and occasionally on vacations. Thank you for being patient.

Preface

Networked games and networked virtual environments exploit two well developed fields of computer science: real-time computer graphics and networking. Whilst each is a vast field with many good resources, both in print and online, this book was borne from a frustration with the small amount of material that spanned the two. Thus whilst there was a burgeoning research field, with many interesting systems and architectures, it was very difficult to find a text that gave an in-depth overview of the problems of networked graphics.


Whilst there are already resources that do explain technical aspects of networked graphics, they start from a rather high level of assumed knowledge about the practicalities of building systems. We aim to make networked graphic software more accessible by clearly explaining how to get started with building systems, explaining the pitfalls and system requirements and contrasting various approaches to architectures and middleware. We then examine some key aspects of networked graphics focusing on latency and scalability. We give examples of novel and influential systems and outline the state-of-the-art in research. All this is supported by working code examples for illustration purposes.

Audience & Scope

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.

Authors


Anthony Steed is a Professor at University College London. His research interests are in collaborative virtual environments, immersive virtual reality, interaction, and human animation. He has over 110 refereed conference and journal papers to date, and is author with Mel Slater and Yiorgos Chrysanthou of the Addison-Wesley textbook, Computer Graphics and Virtual Environments: From Realism to Real-Time. He was program chair of the 2007, 2008, and 2009 IEEE Virtual Reality conferences. For part of the academic year 2006 - 2007 he was on sabbatical to Electronic Arts in Guildford. He is also the director of the Engineering Doctorate Centre in Virtual Environments, Imaging, and Visualization.

Manuel Fradinho Oliveira is the research director of Cyntelix, and is responsible for the business development of several successful innovations. His research interests include collaborative virtual environments, immersive virtual reality, networked virtual environments, game design, human factors, and serious games. He has more than 70 refereed conference and journal publications to date. His PhD thesis focused on creating networked virtual environment systems, which yielded a patent addressing subjective network compensation techniques.