Scripts and Scaling In Online Games
CowboyRobot writes "Jim Waldo of Sun Microsystems has written an article titled Scaling In Games & Virtual Worlds, saying that they 'should be perfect vehicles to show the performance gains possible with multicore chips and groups of cooperating servers. Games and virtual worlds are embarrassingly parallel, in that most of what goes on in them is independent of the other things that are happening. Of the hundreds of thousands of players who are active in World of Warcraft at any one time, only a very small number will be interacting with any particular player.' A group of researchers at Cornell wrote a related piece about improving game development and performance through better scripting."
Unexpectedly, I had a source tag error in processing this article about better scripting.
Seems to scale OK as long as everyone stays within the same light-cone.
You can tell its scripting is feature complete because the nerds have gone out and written virtual computers that run on top of the game.
You mean the screen /shouldn't/ freeze in UT3 when connecting to a server, not allowing you to click on the 'cancel' button? (on my dual-core CPU, multitasking OS)
glScaled(GLdouble x, GLdouble y, GLdouble z)
What's so notable about that?
I know there are 10 million WoW subscribers, showing online RPGs can be a massive cash cow. But I really don't care. There are still millions of other gamers out there with zero interest in grinding for gear and guild drama and I'm sure this article has other applications for gaming than simply better WoW servers.
Anyone have any ideas? The article is extremely technical in nature but it seems to be suggesting ways to take the load off the client, possibly lowering system requirements for people to take part in dynamic virtual worlds. Oh wait, doesn't Second Life already do that?
I don't see a lot new here, it still seems to operate on the assumption that a trade-off will always have to be made between whiz-bang graphics and greater interactivity between players. But hey, I'm no software engineer.
And can we please see some articles in here that aren't somehow connected to WoW?
"You will be married within a year." What, is Slashdot trying to cheer up the hopelessly romantic, loser geeks that make up the core of the site's user base?
The article is extremely technical in nature
Not really. It just discusses the general nature of the problem, not what they did about it. For that, there's the DarkStar documentation.
This is a new data storage back end, like the ones from Google and Amazon. This one is specialized for game usage. It's really a transaction engine which links to a transaction-oriented object store. Entire transactions are atomic; either all the objects being changed commit, or none of them do. In a real system, the application transactions (in Java) run on a farm of machines, while the data objects reside on a second farm of machines. Clients talk to the application farm; the application farm talks to the data farm.
It's not really game-oriented at all. It's more general than that. It would be a reasonable back end for a big social-networking site, or a big auction site. The general assumption is that transactions and data objects are small; big stuff like canned web pages, images, and such goes elsewhere.
Incidentally, it may not all be open source. The current single node version is open source. But that's just a toy. There's no point in using the DarkStar architecture unless you need to scale up. Sun is vague about what the deal for the scalable architecture will be.
Games and virtual worlds are embarrassingly parallel, in that most of what goes on in them is independent of the other things that are happening. Of the hundreds of thousands of players who are active in World of Warcraft at any one time, only a very small number will be interacting with any particular player.
Except that's really not that hard of a problem to solve. It just takes good basic software engineering to divide this problem up. You create zones, and then a little glue to make sure things happen smoothly at the edges.
The hard problem is when you have huge data sets like that, and *everything* interacts with each other, but you still need to divide the problem into discrete pieces to process in parallel.
There is no mention in the article about scripts; so why is it in the title?
The language in these articles is horrendous. You can tell, without it ever being stated outright, that a programmer wrote them!
The eternal struggle of good vs. evil begins within one's self.
... if there's some important aspect of logic or computability which the Universe lacks, you couldn't conceive it existing, and thus you would mistakenly consider the Universe feature complete.
The proof is the pudding?
She made the willows dance
On the other hand, this would take more coding power than just a handful of developers throwing code out there so the confused players can run into bugs and exploits.
Plus it would be too expensive for an MMO budget. And if it was too hard, who would wanna do it anyway? It's much easier to just throw out the basic 'click this once, wait until it dies from repetitive whacking, click the next one' script where you kill to get everything, then to make it more complex.
The cake is a lie?
This website apparently doesn't scale very well.
Anyone have a mirror?