Server based game augmentations. The transition to cloud. Really possible?

Well don't give me credit, it's something me and some other guys were talking about back in 2006 while watching the qa guys test baseball. They were pulling off moves no ai could ever hope of doing so we bounced around the idea of recording their best moves while they tested the game and incorporate those moves into the ai. It never happened, but doing it via cloud is a far better way to do it anyways as your sample set goes from a few qa guys over a few weeks to people around the planet generating new data every day. I'm sure the idea has occurred to plenty of others, there just hasn't been the right infrastructure in place to really make it happen in a meaningful way, until now that is.
 
The MS guys said it's not for latency sensitive jobs. Something like GT5/Forza replay mode streaming may be possible ?

I think GT/Forza physics modelling would be a great candidate for cloud computing.

It is very compute heavy, and only a small amount of data needs to be sent every frame. The tyre modelling in Forza 4 uses Pirelli's computer models and does so a 320 samples/s (ie many times oversampling per frame), but the actual number of bytes to describe each wheel's position relative to the car is rather low.

A dedicated server could allow for more cars and even higher simulation fidelity. It's an obvious solution for multiplayer, but if you're always online with a 1.5Mb/s connection or better, it could be used for single player as well.

Cheers
 
Here is the forza PR talk on that cloud-based driving AI.

http://www.gametrailers.com/videos/26lkis/forza-motorsport-5-e3-2013--driveatar-explained--stream-

So basically they push your data to the cloud to build an AI profile of you. That profile is then downloaded to other people's boxes to race against. If you are offline it will use the AI profiles it has cached from your last time online. So, my guess is that they have built an AI with many parameters that is very flexible and they figure out where you fall in a range for each parameter to create your AI. I'm not sure if Forza allows you to tune AI like FIFA does, but I'm guessing the concept is similar.
 
Here is the forza PR talk on that cloud-based driving AI.

http://www.gametrailers.com/videos/26lkis/forza-motorsport-5-e3-2013--driveatar-explained--stream-

So basically they push your data to the cloud to build an AI profile of you. That profile is then downloaded to other people's boxes to race against. If you are offline it will use the AI profiles it has cached from your last time online. So, my guess is that they have built an AI with many parameters that is very flexible and they figure out where you fall in a range for each parameter to create your AI. I'm not sure if Forza allows you to tune AI like FIFA does, but I'm guessing the concept is similar.

a Drivatar (it was in Forza since the first game) on steroids.
 
I think GT/Forza physics modelling would be a great candidate for cloud computing.

It is very compute heavy, and only a small amount of data needs to be sent every frame. The tyre modelling in Forza 4 uses Pirelli's computer models and does so a 320 samples/s (ie many times oversampling per frame), but the actual number of bytes to describe each wheel's position relative to the car is rather low.

A dedicated server could allow for more cars and even higher simulation fidelity. It's an obvious solution for multiplayer, but if you're always online with a 1.5Mb/s connection or better, it could be used for single player as well.

Cheers

Latency does not scale down (much) with data size, 1 byte will still take around ~100ms on a 100ms connection.
 
My idea would be to pre-compute physics using the cloud.

Aerodynamics and tires are complicated beasts. No one runs real aero or tire physics in real-time, they simplify and use pre-computed parameterizations stored in lookup tables and approximate math to substitute for the real physics of the real thing.

For example, F1 teams spend months of CPU time running simulations on supercomputer clusters to tune their aero alone. I'd wager no machine on earth is capable of running those simulations in real time.

So why not expand tuning and modifications in Forza to the next level?

Suppose you're now allowed to design your tires by tweaking parameters like the compound, tread depth, sidewall stiffness, tread pattern, etc? Suppose you can change the actual aerodynamics of the car instead of just installing kit pieces and tweaking downforce? Suppose you can modify the ECU tables and tweak the fuel-air mixtures at given altitudes, temperatures, fuel types?

Suppose that after you've built your design and tweaked your parameters, you can upload the car to the cloud, and have it crank out accurate physics parameterizations describing the behavior of the car?

Why do I think this works?

1. This is not latency sensitive. You upload your design, the cloud can come back seconds or minutes later and tell you how you did.
2. This is not bandwidth intensive. A few KB of design uploaded, a few MB of tables downloaded. (Pulling numbers out of my ass here.)
3. This is an easy thing to break into parallel instances so, say a thousand nodes of the cloud can be used for a fraction of a second to run all the physics simulations (IE the way google works).
4. You can continually improve the algorithms and simulation data used in the cloud.
5. You could charge fees to run the simulations, and the resultant tunes or parts could be sold by players to other players, so you could build a player driven economy.

What do you think?
 
Last edited by a moderator:
Latency does not scale down (much) with data size, 1 byte will still take around ~100ms on a 100ms connection.

I have 17 ms round trip time to servers 300 miles away, 30 ms round trip time to servers 600 miles away. That's with 40Mbps cable. That's less than one frame's latency @60 fps for the bad case.

My 13Mbps DSL gets 21ms and 34ms respectively.

I haven't seen 100 ms latency since I used a 14400 baud modem.

Addendum: Azure inter-location latencies

Cheers
 
I have 17 ms round trip time to servers 300 miles away, 30 ms round trip time to servers 600 miles away. That's with 40Mbps cable. That's less than one frame's latency @60 fps for the bad case.

*snip*

1 frame @ 60 fps is 16.7 ms.

16.7 < 17. Also, 16.7 < 30. :?:
 
I think they mean

30 / 2 == 15

15 < 16.7

Exactly, the 30 ms is round trip time. A cloud server would only need half that to push the results of its physics calculations.

Even if they don't use it for single player, I hope they do for multiplayer, would love to race 30-40 cars online around Nurburgring.

Cheers
 
Exactly, the 30 ms is round trip time. A cloud server would only need half that to push the results of its physics calculations.

Even if they don't use it for single player, I hope they do for multiplayer, would love to race 30-40 cars online around Nurburgring.

Cheers

Got it. Round trip. Missed that. May I ask how you have such insanely low ping? I average 40-60 for most anything within 200 miles, but after that it is quite variable.

As far as gaming, a local BF3 PC server gets me somewhere around 50 usually.

You also have not factored in any processing time. I'm not sure how you expect cloud processing to aid in the number of cars on a track?
 
You need to distinguish from pings to the backbone and ones that end up at another users machine.
ping your ISP's gateway, that's roundtrip to and from the backbone.
The backbone will contribute very little to the overall transit time.
I have 12MBit down and 1 Mbit up ADSL ping to my ISP is ~19ms, other backbone servers in the 22-25ms range.
If I were to ping another enduser, it would be closer to 40 or 50ms.
 
Exactly, the 30 ms is round trip time. A cloud server would only need half that to push the results of its physics calculations.
If it is interactive, i.e. it is supposed to react to anything happing in the game, it takes at least the roundtrip time. Some physics or AI calculations in the cloud can't run in a vacuum without factoring in some input from your side. ;)
 
If it is interactive, i.e. it is supposed to react to anything happing in the game, it takes at least the roundtrip time. Some physics or AI calculations in the cloud can't run in a vacuum without factoring in some input from your side. ;)

In the case of Forza/GT, only the physics of my own car is affected by inputs, all the other cars aren't.

In my case it would add 8-15 ms latency to my inputs, but at the same time the cloud frees up some resources on my console which might lower apparent latency (faster rendering).

Anyway, 15 ms in a car game is nothing.

Twitch based games like fighting and shooters are more affected, but here you can start the input-dependent animations locally.
Cheers
 
You need to distinguish from pings to the backbone and ones that end up at another users machine.
ping your ISP's gateway, that's roundtrip to and from the backbone.
The backbone will contribute very little to the overall transit time.
I have 12MBit down and 1 Mbit up ADSL ping to my ISP is ~19ms, other backbone servers in the 22-25ms range.
If I were to ping another enduser, it would be closer to 40 or 50ms.

True. The first hop from my DSL modem to the ISP is 17ms, the first hop on my cable modem is 8 ms.

Cheers
 
so, the cloud was not used for any gfx at e3?

Even in a highly connected location like E3, the cloud is never going to work for GFX. The only help it is going to provide would probably be with the persistence of world space, search topographies for AI, and perhaps fixed function lookups for physics tables or matrix work.
 
In the case of Forza/GT, only the physics of my own car is affected by inputs, all the other cars aren't. In my case it would add 8-15 ms latency to my inputs, but at the same time the cloud frees up some resources on my console which might lower apparent latency (faster rendering).
If the other cars are not affected by your input (which means they can drive through your car), there is no latency in the common sense at all. One can completely precompensate the transmission delay as the simulation can be done in advance. And for the server side simulation of your car it would of course add the complete roundtrip latency until the results arrive back at your console. And if the others cars try to avoid collisions with you, technically, it also adds the full roundtrip delay (to any delay already existing in the engine/render/display chain) until you can possibly see the effects of your action. There is no way around it, if some data has to pass back and forth between your device and some server.
Anyway, 15 ms in a car game is nothing.
That's true. At least as long as it is a stable delay, one can certainly tolerate 50ms or even more (a human can take that into account [happens most of the time automaticly after some experience] and initiate actions slightly earlier, we also don't perceive the significant delay of our senses ;)). Only spikes/drops in that could be devastating (or the overall delay simply gets too large) if you try to get a turn exactly for instance. And for others cars it only mimics the reaction time of other human drivers. One just have to spin it the right way. :LOL:
 
a) That 1.5mbps is shared across the system. Game updates, system updates/DRM checks, video uploading etc...

b) There are 300k "servers" worldwide. Assume Forza 5 sells 0.5 million copies in your region, and your region has 100k of those servers. How many copies of a forza simulation do you expect a single server to be able to run at the same time? And how many of those same servers are serving other games/downloads/storing save games/uploading videos etc?

IMHO:
- background bits? difficult, but do-able.
- game server for multiplayer? certainly, easy.
- real-time stuff? probably not.

I'd love to see some innovation here, but imho this is nonsense.
 
Back
Top