Metaplace Part Two: A Meeting at Rancho Bernardo
The editor for Josh-fu was still on the screen, and, to emphasize his point, he moused over to the sidebar where a number of the game’s graphic resources were displayed, hovering the cursor over a bullet icon. “For instance, this is just a URL to an image somewhere.” Sure enough, upon clicking it, a box popped up with the bullet’s web address.
I immediately saw a bit of a problem with this system, and asked, “Aren’t you concerned that a year down the road every other world is going to be filled with boxes with little red Xs in them?” Visions of a million people who didn’t know the meaning of “hotlinking” danced in my head.
John Donham, Areae’s VP of Production, who had been observing the demo relatively mutely up to that point took the opportunity to chime in, “We are. But, if someone doesn’t have a reliable host, we plan on offering image hosting and things like that for them. We don’t think it will be that big of a problem.”
I considered pointing out that hosting content on their own servers would remove their plausible deniability of “That isn’t our child porn/copyrighted material/government secrets in that guy’s world, in fact it’s not even hosted by us, your honor!” But, I’m no lawyer. I assumed they’d had someone jump through the legal hoops for them on that subject already.
Raph continued:
“Metamarkup is our equivalent of HTML. And, just like HTML we expect there to be many, many browsers. Our equivalent of browsers is the client. You’ve seen the Flash client… We actually have a standalone C++ client, we even have a client written in BASIC. Anybody can write a client, and we hope that lots of people will write clients, for whatever platforms they want.”
“You may be letting the genie out of the bottle with that one,” I suggested. “I could just picture the Apple II client in six months.”
Raph seemed to like that idea, and started laughing. “Hey, Sean,” he called across his desk, “Apple II client? That sound good?”
“Yeah, I’ll get right on that.” Sean called back, disinterestedly.
“But yeah,” Raph said, “that would be awesome.” He then issued the statement I took the liberty of co-opting at the beginning of the article before going on:
“The level above the browser is things like style sheets and modules. Apache, out of the box, doesn’t do very much. It serves up a plain old webpage. It doesn’t have any extra logic, it doesn’t come with shopping carts, or search engines, or anything like that. But, you can get plug-ins for it.
Our game server is like Apache. It doesn’t make a lot of assumptions about what kind of games are running on it. You saw the shooter game, you saw the virtual apartment, you saw the space one with physics and stuff—I didn’t show you Tetris, but we’ve got that too—all running on the same server.
It doesn’t make assumptions about, ‘I need a weather system,’ or anything like that. The server is really lean and mean. It’s got physics, it’s got web services so that it can talk to the web in and out, it’s got collision and path finding, things that are really, really common that lots of people want, but then it doesn’t have ‘move,’ and it doesn’t even have ‘talk,’ because those things are going to vary too much from game to game.
Then, the level above Apache on the web is essentially CGI. It’s the scripting stuff. For us, that’s how you build your games. It’s essentially the same thing as via CGI, only in our case it’s via Metascript, which is based on Lua, but we’ve made it event-driven, and made it sandboxed. It’s sandboxed so that if a couple of you are working on the same world and you mess your script up it doesn’t mess break anybody else. And it’s event-driven because that’s easier to pick up and it works better for network gameplay.
Other than that, it’s Lua syntax. We’ve got an API that exposes all the stuff that the server can do. You can create your own data structures, you can create your own objects, you can create your own behaviors… Like, we wrote Bubble Chat in half a day. That’s the other nice thing, it’s really easy. Something even like writing Bubble Chat isn’t really that hard.
So, that’s our equivalent of CGI.
The next step above that is, of course, if you want to make a website these days you go on the net and you have Blogger, or Wordpress, or Joomla… there’s a lot of out of the box solutions.
If you want a shopping cart, you don’t have to code a shopping cart in CGI any more, you can just go get one, and there are modules that you can just plug in. So we support style sheets and modules. In the create world walkthrough I showed you, we could pick a style sheet and then get a brand new world from0 that. I could inherit a whole world with all the rules—kind of like starting up a Diku—or, you can get modules that are parts of worlds.
Let’s say you want the RPG Bubble Chat, plus the space game’s movement system with full inertia, and then you change the view, and replace all the art and make it tanks, and now you have tanks doing Bubble Chat in isometric view. That’s fairly easy, you just have to assemble the pieces. Changing the view is just hitting a toggle key.


[...] The MMO Gamer » » Metaplace Part Two: A Meeting at Rancho Bernardo [...]
[...] put up an interview awhile back with one of my bosses, Raph Koster. They’ve just put up part 2 of the interview which I thought was really nicely done. I managed to avoid any pictures - so [...]
Sounds like a great idea to get more people working on creating games and virtual worlds. I heard of other platforms like this. I’m interested because I’m a life long gamer. The future should be interesting in this genre.