Tuesday, June 16, 2009

A quantum leap of faith

Believe it or not, but yesterday I was on the phone with Jules Urbach, the man himself behind OTOY and LightStage (I guess writing a blog does pay off ;-). He had offered me the opportunity to talk a bit about OTOY, LightStage, the Fusion Render Cloud and where things are heading. It was my first interview ever and I was just shooting one question after another. Too bad I was bloody nervous (I haven’t been that nervous since my last oral exam). Due to my nervousness and my limited understanding of graphics programming, I didn’t absorb a lot of the things he said, but I think I’ve got the bottom line. He answered a lot of my OTOY-related technical questions (unfortunately OTOY isn’t open source, so obviously he couldn’t answer every single one of my questions) and offered me some insight in the cloud computing idea. What follows is my own interpretation of the information that Jules gave me.

Just a couple of weeks ago, I was still wondering what the technical specifications of the next generation of consoles would be like. But after yesterday… frankly I don’t give a damn anymore. The promise of OTOY and server side rendering is even bigger than I initially thought. In fact it’s huge and that’s probably an understatement. In one interview, Jules said that it “is comparable to other major evolutions of film: sound, color, cinemascope, 70mm, THX, stereoscopic 3D, IMAX, and the like” I think it’s even bigger than that, and it has the potential to shake up and “transform” the entire video game industry.

Server side rendering opens up possibilities for game developers that are really hard to wrap your head around. Every game developer has learned to work inside the limitations of the hardware ( memory, polygon and texture budgets, limited number of lights, number of dynamic objects, scene size and so on). These budgets double in size only every 12 to 18 months. Now imagine that artists and level designers could make use of unlimited computational resources and no longer have to worry about technical budgets. They can make the scene as big as they want, with extreme detail (procedurally generated at the finest level) and with as much lighting information and texture layers as they desire. That’s exactly what server side rendering combined with OTOY’s voxel ray tracing might offer. It requires a shift in the minds of game developers and game publishers that could be considered a quantum leap of faith. The only limitation is their imagination (besides time and money of course), and anything that you see in offline rendered CG, could be possible in real-time. Jules is also working on tools to facilitate the creation of 3D environments and to keep development budgets reasonable. One of those tools is a portable LightStage, which is (as far as I understood) a cut down version of the normal LightStage that can be mounted onto a driving car and that can capture whole streets and cities and convert them into a 3D point cloud. It’s much better than LIDAR, because it captures lighting and texture information as well. Extremely cool if it works.

Because the server keeps the whole game scene in memory and because of the way that the voxel ray tracing works, OTOY and the render cloud can scale very easily to tens of thousands of users. Depending on the resolution, he can run 10 to 100 instances of a game scene on one GPU. And you can interconnect an unlimited number of GPU’s.
The best thing about the server side rendering idea is that every one is a winner: IHV’s, ISV’s, game publishers and most importantly the gamers themselves (for a number of reasons which I talked about in one of my previous posts).

In conclusion, I guess every PC gamer has dreamt at some point about a monster PC with terabytes of RAM and thousands of GPU’s working together, with a million unified shaders combined. Until recently, no one in their right mind would make such a monster, because economically it makes no sense to spend a huge load of cash on the development of a game that would make full use of such enormous horse power and could only be played by one person at a time. But with the rapid spreading of broadband internet access, suddenly a whole lot of people are able to play on that monster PC and it becomes economically viable to make such an extremely high quality game. I think OTOY will be the first to achieve this goal. Following the increasing trend of office applications being run in the cloud, server side rendering is going to be the next step in the evolution of the video game industry and it will make “client-side hardware” look like an outdated concept. Jules told me he thinks that in the future, the best looking games will be rendered server side and that there’s no way that expensive local hardware (on the client side) will be able to compete. I for one can’t wait to see what OTOY will bring in the near future.


Spacerat said...

Sounds to me like a remote game-center. It makes sense, as arcade machines also sell a lot. The only thing I wonder is if the quality is so much better then a common PC. I mean the computing power of no matter how many GPUs is divided by the number of players connected to the system. As a company tries to max out the number of players rather than the picture qualiy, I think it will not be THAT big evolutionary step.

Ray Tracey said...

Hello spacerat, as I've tried to explain in my post, it's very difficult to understand the concept of the instancing (at least it is for me). You must not think of it in terms of a bunch of separate GPU's rendering a scene in their separate limited video memory, but you must think of it as one huge voxel scene stored in one huge memory pool on the server, and being rendered (raytraced) on all GPU's interconnected in CrossFire mode, as if it were one gigantic GPU with a million unified shaders, instead of a collection of a 1000 GPU's with a 1000 unified shaders each. At least that's my understanding of it.
The quality you can achieve in that way is several orders of magnitude higher than a common PC. Jules assured me that the quality of the ruby demo last year, is what people can expect from playing a game on the render cloud.

btw when are you going to post some updates on your voxel blog?

repi said...

Think the concept and ramifications of server-side rendering (and game simulation in general) is really interesting & appealing.

The single biggest question mark though is latency, as with most games running them in a stable 60 or 30 fps with low latency from the input is super important as a core part of the interactive gameplay.

Did you talk anything about latency?

Feels like you would need local servers in almost all urban areas which may not be impossible but probably prohibitive, speed of light is a bitch :)

Ray Tracey said...

Thanks for your input repi, it's nice to see a DICE developer reading my blog. I did talk about latency actually. Jules said that latency would not be a problem and he said that the lag that you would experience would be lower than the lag from converting an analog to a digital signal, so almost neglectable. He did mention 1/10th of second as well.

This may sound ridiculous, but personally I believe quantum physics will completely resolve the problem of latency at some point. There's very preliminary research going on in that area right now (see my earlier post), so it's obviously not something that will be usable in the short term.

I actually talked for the most part about the voxel rendering and the Ruby demo and it cleared up some things for me. Jules gave lots of info, too much for me (as a non-graphics engineer)to remember afterwards , so I'm afraid I'm unable to make a decent blog post about that.

If you have questions about OTOY's server side rendering, you can always try to contact him via info@otoy.netand maybe you will be as lucky as I was. He's a very busy, but very sympathetic guy.