[Review] Exodus to the Virtual World

In Exodus to the Virtual World, Dr. Edward Castronova explores a possible future wherein participation in virtual worlds and MMOs becomes so widespread that major social effects are felt here in the real world. He suggests that as more people spend more time in virtual worlds, they will come to expect the real world to provide many of the conveniences of those virtual worlds: more fairness, more opportunity, more fun. This, he theorizes, will lead to a conflict over attention between the real and the virtual, with the real world being forced to adopt social policies inspired by game design.

The author frequently suggests that game designers may be better-equipped than most to handle the social policy issues of the 21st century and beyond. As a game designer, I found this rather gratifying, though I remain skeptical whether it’s actually true. However, the parallels he draws between social policy design and virtual world design are compelling, and many of the mechanics we find today in virtual worlds and MMOs are in fact elegant solutions to social issues that have yet to even be well-addressed in the real world.

This book is primarily a speculative, futurist work. Many of the author’s claims go largely unsubstantiated precisely for that reason: they’re speculations into one possible future. I had no problem with this, and the author makes it clear up front what type of book this is. You just have to come into it with the right mindset. That said, he does frequently reference verifiable present-day facts in order to establish trends which inform his projections, making them more educated predictions than wild guesses.

My only major complaint with the book is that, as the author has extrapolated the present state of virtual worlds and MMOs into a vision of future society, he’s undertaken significant cognitive effort to evolve the social side of things, and spent almost no effort on the evolution of the virtual worlds and MMOs themselves. In effect, there seems to be an unstated assumption throughout the book that the design of virtual worlds and MMOs will remain largely static, and that the only variable will be the percentage of the population participating in them. But if the relatively brief history of video games shows us anything, it’s that we can expect meteoric paradigm shifts in games around every 5-10 years. Relevant examples include the introduction of the first text-based MUD, the first graphical MUD, and the original Everquest. Why should we not expect similar paradigm shifts to dramatically alter the landscape of virtual worlds and MMOs in the next 5, 10, 20, even 50 years? And of course, these paradigm shifts will affect how users participate in those worlds, which will in turn affect their expectations of the real world in accordance with the author’s theory.

Nevertheless, Exodus to the Virtual World comes well-recommended. It’s a thought-provoking read for game designers and players alike, and I’m willing to bet some politicans could learn a thing or two from it as well. ;)

[Review] Programming the Cell Processor

programmingthecellprocessorI recently had the opportunity to check out the just-released book Programming the Cell Processor by Matthew Scarpino. While I’m not technically a programmer — insofar as that my career is based on game design — I’m not unfamiliar with programming, and since I’ve been working on the Playstation 3 for the last three years or so I do have a bit of interest in how the Cell really works.

First and foremost, this is NOT a book for beginners. It’s for experienced programmers who want to start working with the Cell processor. If that describes you, then you should buy this book immediately.

Every imaginable detail about the Cell is covered here. You’ll learn how to write code, yes, but you’ll also learn how that code works in terms of the Cell’s physical architecture. This is crucial to understanding how best to harness the Cell’s power. There are numerous diagrams and clear writing throughout, succinctly explaining what your code does and why it does it.

The book opens with a few chapters on setting up your work environment. This goes into great detail, walking you through installing Linux on a Windows PC or a Playstation 3 system, using gcc/make, acquiring and configuring the Cell SDK, debugging and simulating Cell applications, and setting up Eclipse and the Cell IDE. If you already know your way around Linux you’ll be able to skip most of this, but if you’re a Windows user (like me) this section will prove invaluable.

This is followed by in-depth technical discussions of the PPU (the Cell’s primary processor) and the SPUs (the smaller, distributed processors at the heart of the Cell’s power), how these communicate with each other, and how to optimize these communications. Sprinkled throughout are use cases for various functions in the Cell standard libraries; by the end of this section you should be able to program the Cell processor reasonably effectively.

While this book is focused on the Cell processor in general, it does recognize that perhaps the most ubiquitous application of the processor at present is the Playstation 3 system; to that end, the third and final section of the book is targeted at using the Cell processor for specifically game-related tasks: programming the frame buffer, using OpenGL, running the popular Ogre3D engine on the Cell, and using the COLLADA shared graphics file format and libraries. Depending on your focus, this section may or may not be useful, but either way its quality remains up to par with the rest of the book.

My only complaint is that the book’s structure is not particularly conducive to use as a reference guide. That is, while it covers a significant portion of the Cell libraries and features, you can’t just quickly look something up. The book’s design seems to suggest a deep, initial read-through and then only occasional re-references thereafter. But perhaps supplementing it with the SDK’s own documentation is sufficient.

Overall, highly recommended for experienced programmers who want to start working with the Cell processor.