Sponsored By

Best Of GDC: Areae Talks MetaPlace Specifics, Challenges

Continuing Gamasutra's best of GDC 2008 series, we present exhaustive coverage of Areae's Raph Koster and Sean Riley breaking down what went right and what went wrong in the development of MetaPlace -- along

Vincent Diamante, Blogger

February 29, 2008

7 Min Read

Raph Koster, President of Areae, began the session by noting that for this last lecture of the day, he and his company’s lead programmer Sean Riley would give the audience what went right and what went wrong on the MetaPlace project. “You’d rather have that than a sales job, right?” he asked. The audience responded enthusiastically. The Current State of MMOs He began by railing against much of what’s currently ingrained in MMOs. MMO games are now extremely hard to make, and Koster described each project as “a custom-crafted moon shoot.” Despite all the effort that goes into an MMO, Koster notes that they are poorly integrated with the rest of the internet. In the current space, only the big companies can play because of cost, and there’s a significant amount of reinvention happening throughout the industry. More often than not, designers are told to “make it like WoW” as the huge costs frustrate any attempts on innovation. Koster looked at how MMOs work today: giant monolithic servers that contain all the services needed, with complex server cluster architectures and a very tight dependency between client and server. “There are virtually no successful reuses of MMO servers,” Riley said. A slide showed how the previous model of a simple client-server relationship paled next to the complexity of a modern MMO system, with static and runtime databases, global chat servers, process managers, authorization systems, patching systems, and others whose representation became a mass of hundreds of circles on the slide. Koster then presented an alternative to this current MMO system. The alternative would be low-cost to develop for, extremely scalable, future-proof, modular, and has resulted in explosions of creativity: The Web. Snow Crash is a Lie He looked at all the things that make the Web work, the HTML language, browsers, servers, behaviors, content, distributed routing, metadata, and search and said that working with this model is the future for MMO. Another slide showed a big red X through a picture of Neal Stephenson’s Snow Crash. “We think that Snow Crash is a lie,” Koster said. “Let’s put virtual worlds on the web, not the web in a virtual world.” Riley then began the MetaPlace demo, which Koster “works the way the web does.” Riley showed how during his avatar’s traversal across the 2D space, he could not just chat but use a Babelfish API for translating his messages. He also opened up a YouTube video from within the client window. “A MetaPlace server is a web server, and every object has a URL... and every object can browse the web itself,” Koster said. Also, every server can itself be a client to another world/server. In the MetaPlace, the world has no assumption about what kind of world is being built. Koster noted the importance of client agnosticism throughout the development of the project. “We are opening the standard for that client architecture... you can make clients in any platform at all,” he said. Everything is being fetched via HTTP rather than a custom format -- every client is essentially a web browser. And, while the demo featured a 2D world, the architecture is designed to scale down to text or up to 3D; MetaPlace is designed to be representation agnostic. One could conceivable make a client that just feeds out RSS, Koster mused. A New/Old Architecture Koster then mapped some of his development process to the structure he presented earlier of what makes the Web work. He first described creating the markup language, just hardcoding tags in a text file. With tags, Koster said, you can never break the network stream. If a client doesn’t know what a tag means, it just blows it off, similarly to web browsers of various eras. “You can configure a MetaPlace to be a bog standard telnet,” Koster said. “That’s democratization.” When it comes to clients, MetaPlace is currently working on its fifth iteration. The very first client that Koster made was in BASIC. Succeeding iterations were in Flash and C++. “The reason clients are so hard to make right now is that we pump them full of graphics… and we try to make them really, really smart,” Koster noted. “The benefit of making them really stupid is you can put them on anything.” He later mused on the possibility of making a client that outputted everything as MIDI music information. “Having stupid clients means that you can be an agnostic client. You can have a virtual world that’s a multi-headed hydra.” MetaPlace has also seen three different servers during its development. Riley noted that there was no code shared between these servers, and not assuming any sort of code commonality is a benefit. Eventually, they found they could create some extremely lightweight servers; according to Riley, the current executable size of the server is about 20 megabytes. When it comes to behaviors, MetaPlace’s system is “literally CGI, not just hypothetically like CGI,” according to Koster. With every object, creating behaviors is just a matter of inserting inline CGI in the form of Lua. A door in MetaPlace, for example, could have a form that is submitted to it. “You can put stuff anywhere and… call out to things anywhere else,” Koster said. One beta tester apparently created a web service for procedurally generating terrain that anyone can call out to. With distribution, MetaPlace used all it could in the current internet world, which was nearly all it needed. They use Web Notification Service for exposure of server data and web services. The lesson that Koster gives here: “Don’t cram the Internet into you platform… Use it. Don’t reinvent what’s already been done.” What Went Right, What Went Wrong Koster went into some of the things outside of design that went right. He described some of their picky hiring practices, ensuring that they not only get the best of the best, but that other people on the team would be compatible with the new hires. Another slide told developers: “Don’t Optimize!” Here, Koster referenced not only his experience by Michael Jackson’s three decade old book Principles of Program Design. “Optimization too early tends to lock you in,” Koster said. He noted that at the very beginning, the material they created for the game looked like the classic Atari 2600 game Adventure. The game eventually started to take on the look of games from 1985, then 1990, and now it’s almost to 1995. “Eventually we catch up… and then we start seeing things that we just can’t do using standard game architecture.” A number of things did go wrong, however. One of the big things was that the word “simple” in the game world meant something that was far different from “simple” in the web world; having a team made up of dedicated experts in either field meant each would often make false assumptions. Another thing that continues to nip at the team is the lack of a true RPG despite the MMO. “I still haven’t built an MMORPG on top of it… a lot of our users want to be able to build an MMORPG, and they want to be able to make it with content off-the-shelf…” Koster admitted. He also admitted that the team fell off the multiclient bandwagon early on when they decided upon a reference client. Not having those three disparate clients meant they no longer had to stay honest to their credo of client agnosticism. Koster also wished they had more content people earlier on in the development so that they could really push against the pipeline they established. Koster then went back to the MetaPlace demo and showed how people could build an MMO through a set of wizard-like tools. “The intent here is to make it as easy for people to build their own virtual world as it is to build The Sims,” he said. With a few more clicks, he showed off a room that the avatar could walk around. “We just built an MMO in less than one minute,” he said, evoking memories of not just earlier GDC lectures, but of demonstrations of other then-new web platforms, such as Ruby-on-Rails. He ended by talking about some of the things that alpha testers have been able to do. One tester hooked his world to an Eliza chat bot, while another is fetching directions from Google Maps. Another tester who isn’t yet officially in the alpha test actually created a service where one can upload a 3d mesh and have it spit out 2d spirte sheets for MetaPlace objects. “It’s not about what tools we can make. It’s about how we can bring the fun of that process to anyone else,” Koster said. “I’m never going back to building games the old way ever, ever, every again.”

About the Author(s)

Vincent Diamante

Blogger

Vincent Diamante is a freelance game audio designer and senior editor at games website insertcredit.com and has previously worked for XM Radio. He can be contacted at [email protected]

Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like