dipityPix app

Thursday, January 24, 2008

Ray tracing for massively multiplayer online role-playing game (MMORPG)?

I have been playing various video games lately with an eye to which would benefit most from ray tracing in the near term. I tried World of Warcraft a couple of days ago (and so did my daughter so I fear I am out $20 a month for the rest of my life). I speculate that such a MMORPG is perfect for ray tracing now due to 1) it's current emphasis on geometry, and 2) the need to support low-end hardware.

I'd like to get my hands on a dataset from one of these MMORPG games. If anybody has a legitimate copy or is in one of the MMORPG companies and would like to help me find out if this is feasible on current medium-end CPUs, let me know.


Robin said...

How about capturing models from your game using OGLE, the OpenGLExtractor? http://www.raphkoster.com/?p=282

Thomas said...

i was just about to suggest the same thing, however the directx scene ripper: http://www.deep-shadows.com/hax/3DRipperDX.htm

btw, $20 per month?!?!?!? that's absolutely insane, and to think there are 10m people paying this every month... and it's not like blizzard didn't make enough money from starcraft, warcraft, diablo, ... !

Joshua said...

I dont quite get it. I always thought that MMORPGs (Wow in particular) tended to be more lightweight in terms of geometry load than other games (judging by the screenshots I've seen, I've never played Wow myself). It makes sense that this would be the case, because large meshes would need more bandwidth to be streamed out to the clients as the world changes.

A scenario like this seems like more of an argument for rasterization hardware, especially on low-end machines which lack a powerful CPU.

Tim said...

I'm a bit behind modern developments in ray tracing, but when I followed the OpenRT project it seemed their biggest challenge was dealing with dynamic geometry. If that's still the case, WoW and many other MMO's would be a poor fit because they often have hundreds of skinned characters running around, many of them firing off complex particle effects at each other :].

Perhaps a racing game or flight simulator would be better suited to showing ray tracing's strengths? Their scenes are relatively static with high poly counts, strong sunlight suits hard shadows, and cars are great at showing off realistic reflection effects.

Peter Shirley said...

I think the sparse geometry helps ray tracing too. And I am assuming that many computers now, such as the iBook, have hot CPUs but not much in the way of a GPU. When will almost all CPUs on WoW player's desk be at least 2-core? I assume that the front end graphics could be based on platform.

As to dynamics I think for articulated characters this is now a solved problem. A BVH that is updated per frame but keeps its topology does the job. Now the particle effects sound like a bigger problem!

I agree that racing or flight might be a good bet for high-end games, but not yet on my laptop....

David L said...

Yes, MMRORPGs tend to be low-polycount. In general MMRORPGs target low-end hardware so as to reach the broadest audience. So the question comes down to Pete's conjectures that:

1) a nice-ish CPU and weakling GPU is a common/important platform, and
2) a nice-ish CPU will outperform a weakling GPU by using ray tracing.

and always assuming you can't ray-trace effectively on the weakling GPU :-)

As a side note, most games of this sort are badly CPU-limited, so you also have to assume that developers would rather sink the new CPU cycles that Moore's Law gives them into rendering instead of the many other things going on in a game engine.

I do know of some MMRORPG developers doing cool work with global illumination of very large terrains using a clever form of updateable photon mapping. But that's on the server side because it has to account for huge chunks of the world where the geometry isn't necessarily present/up to date on the clients.

Peter Shirley said...

David you hit my point. And whether there are any CPU cycles leftover after all the non-graphics stuff is a good question and could be fatal to my argument.

Tim Chen said...

If you are looking for dataset of MMORPG, maybe mangos project is a good start


DEADC0DE said...

I’ve spent so much time reading your blog, and enjoyed it, that I wanted to do something to repay that. So yes I guess I could have chosen better gifts, but instead all you get is spam about my blog, that’s http://c0de517e.blogspot.com/

Err… hope you like it.

Hector Yee said...

Actually MMOs tend to have more CPU to do graphics than say an FPS or an RTS with because a lot of the game logic is done server side to prevent client side exploits. In MMOs the client programs tend to just handle UI and graphics with little game logic. They wouldn't dare trust the client to say where it is for example - those will lead to teleport exploits.

Hector Yee said...

The one problem I can see with WOW is paging in tons of geometry when you are on a flight path. I guess if you use a BVH you can easily look ahead and page in entire volumes when you get near them.

Though my hunch is the tons of particles from spell effects would drive any ray acceleration structure crazy in rebuilding.

People used to turn down particle effects in MMOs whenever they get into huge battles with hundreds of other players just to maintain framerate.

Joshua said...

I don't think particle effects would be hard to implement with ray tracing on all in a game like WoW. If you look at most of the effects, they're usually just alpha-tested textures like some games render branches on trees. I don't think they would be any harder than keeping an acceleration structure for a character.

I think the difficult portion would be keeping track of all the assets on the screen. I know WoW uses a lot of streaming textures for all the individual characters. If you enter a town when it's busy, you'll see a lot of paging trying to keep up with the unique equipment.

I agree with Tim that a game with fewer animations makes more sense. Especially since WoW has so many diffuse surfaces anyway.