Saturday, November 27, 2010

Why Virtual Worlds Need Procedural Content

I'm going to break from discussing abstract concepts of community building and environment design to talk about another important aspect of virtual worlds: The Technology. In specific, I want to talk about the way we create and deliver content in virtual worlds, and how we need to start thinking differently about it. As always I'll be talking about it in regards to Opensim, but it pertains to every platform.

Put in as simple terms as possible: We need to expand the use of procedurally generated content, otherwise grids and Opensim will be too bandwidth heavy to expand effectively.

What do I mean by procedural content? Prims are actually a good example. Instead of sending a complete model of a complex object (say, a house) from the server to the user's viewer, the server sends what is in essence a recipe on how to make it; a set of instructions which the viewer then reads and follows to rebuild the model. It requires a little bit more crunch-work by the viewer, but the difference in amounts of information required is monumental. How monumental you ask? Well, consider three separate games which have used procedural content to their advantage. I'll go through them in order of file size from smallest (and most indie) to arguably the largest.

.kkrieger: Weighing in at a measly 96kB, kkrieger is a fully functioning FPS. Created by the (defunct?) demoscene team theProdukkt, it's a excellent example of how much can be done with so little. Here's a video of somone doing a playthrough; I can guarantee that the video is far larger than the game itself.

Minecraft: This freeform exploration/survival/world building game emerged out of obscurity late last year and has gone on to become a massively popular indie game. Despite its unassuming graphics, it boasts a impressive piece of procedural technology. Every world explored by each player is completely novel, generated procedurally when they start a new game file. These are not small worlds by any stretch of the imagination, the most common estimate passed around is each is eight times the surface area of the Earth. Even once you've explored and significantly altered the environment, the world files only grow to a few megabytes in size. Not too shabby.

FUEL: A major title on a actual console, from a team with a actual budget? Yup. That's right. Rather than restate what's already been said, I'll just direct you to Shamus Youngs' excellent article about it and its accompanying video. If you're looking for a quick overview, I recommend the video.

Pay attention to what he says at the end: The technology would be ideal in a open world sandbox-style game. Sound like Opensim to you?

We've already established that Opensims' use of prims is pretty good procedual handling for geometric shapes, but what about everything else? It is very possible to create procedurally generated textures, procedurally generated organic shapes, even sound and character animation. Utilized correctly with traditionally produced content, they could help keep bandwidth usage low while improving the immersiveness of the worlds. Also, consider the added bonus to amatuer creation it could bring about. Part of what makes SL and Opensim so fun to build in is the fact that anyone can pick up tools in-world and begin building something that the can share in real-time. Why not do the same with other content?

Building procedural tools won't be easy, and will probably require a patron organization dedicated to seeing them implemented. Ultimately, their utility would be well worth the effort.

No comments:

Post a Comment