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

In MMO's practically everything happens serverside, including the actual gameplay mechanics (ie you push a button, it tells the server to make your character do whatever that button is supposed to do, calculate the results and send them back etc)
Disables cheating quite nicely too.

That would be the easiest way.

There are also dedicated server MP games that split or duplicate the responsibilities between the client and the server. e.g., client and server calculate the player movement at the same time. However the server always has the final say in the outcome since it sees everyone in the "fairest" way.
 
"So things like local foliage, blades of grass, atmospheric effects, gunfire, those things can be offloaded to the cloud," he says, "because they're all going to be in your immediate periphery and you want them to be hyper-realistic but not something you necessarily want to burden the console with."

But what if the player interacts with those? That's where there's going to be an issue. You can't offload the grass I'm crawling through. And gunfire? WHAT?!
 
But what if the player interacts with those? That's where there's going to be an issue. You can't offload the grass I'm crawling through. And gunfire? WHAT?!

Perhaps they can pre-compute some of these on the servers, or bake a few approximations in.

It's also okay if the assets are shown in an async way (e.g., background explosions and smoke. Doesn't matter if they happen at time T exactly, as long as they are visible).
 
Bots in the cloud makes sense, as they'd need exactly the same resources as an online player in terms of lag and fitting their actions into your local game. I like the idea of running a game server and populating it with bots to fill up player slots. I don't see that as augmenting the local console power so much though, depending on the level of complexity of the AI. Single player games have had bots for yonks on the local machine, and something like U3 or Starhawk has bots in coop. I doubt massive cloud processing resources will be spent on super-sophisticated bots due to the economics.

I think in the case of Titanfall, they aren't filling player spots. There are bots running around as you'd have in single-player. They're calling it a hybrid experience. Anyway, that hardly matters for the discussion, but it is some processing offloaded from the local CPU. You can do the same with regular dedicated servers, and I'm not sure there is a difference in this particular case, other than Microsoft is promising that P2P models are done on Xbox One.

I'm kind of interested in how that's going to work. Maybe there is some number of cores and memory reserved per player. Those resources could be free to the dev if they do not exceed that allowance per player. So you have a 24 player game, then you can use 24x cores and 24x RAM for the dedicated server VM. This model would work because each gold subscriber can only play one game at a time. That way devs get dedicated servers without paying for them, except what they choose to pay for resources above and beyond what is reserved per player. It'll be interesting to find out.

I wish I could find it again, but there was an interview that suggested Below was an online game leveraging the services Microsoft is providing. I'd be very surprised if Capy could afford to pay for a back-end.

Anyway, if developers can count on having resources to implement dedicated servers for free, then they are likely to do some things on the server that would have had to have been calculated on a local client for peer to peer. It's not exactly anything new, but having that processing at no cost allows them to do it.
 
What about taking a program like Eliza to the next level? That could be truly interesting application for the cloud and Kinect which shouldn't be too demanding wrt bandwidth, imagine your XB1 taking on a personality based off the feedback from your responses. Mine might act like a sassy waitress at a dinner and someone else's might carry on like an english butler.
 
Perhaps they can pre-compute some of these on the servers, or bake a few approximations in.

It's also okay if the assets are shown in an async way (e.g., background explosions and smoke. Doesn't matter if they happen at time T exactly, as long as they are visible).

my thought on this is that can't it be faked? I mean the background stuff that should look more correct if you do computation on it but doesn't really impact the graphics and gameplay?
even the precomputing stuff usually can be baked in the game itself.
When I think about this whole cloud computing stuff, it ended up about managing player interaction (between the players and the world). Other uses that could potentially increase the graphic quality can be faked because it must be latency insensitive, thus not important, thus faking it.
What I don't want to see is someone making a sp games that relies heavily on the cloud that if you have not so good internet connection then the experience is broken... like sometimes the physics are good but other times are bad... or the graphics quality changes depending on your network connection... or brings lag like in mp games to sp games.
 
Most interesting thing I saw about the cloud was having dedicated servers that can be spawned in the cloud when people request games. Rather than having the developer rent servers in data centers across the world, it seems they just create the dedicated server for the azure platform and then the server can be spawned in any of their data centers in the world, dynamically, as the demand increases. So you shouldn't have the problem where devs cautiously underestimate demand at launch, and you have a rocky start.
Exactly!

The biggest gain of cloud is dynamic load balancing. Previously developers had to rent/buy huge server farms dedicated for single games (or multiple games by a single publisher). This is expensive and inflexible.

Recently the most discussed issue has been the server capacity problems during big game launches. We all remember Diablo and SimCity. Large scale cloud infrastructure could solve these kinds of problems cost effectively. Another problem that cloud could solve is the server maintenance cost of aging games. Active player count drops drastically a few months after a game release. Huge majority of players just play the game main campaign though once or twice (with extreme difficulty or different alignment/class), and then stop playing the game intensively. Depending on the game, around half a year (up to one year) after the game launch only around 10% of players are still actively playing it. And only the most hardcore players are still actively playing games that are 3+ years old. Cloud can automatically scale down the server capacity based on need, and this of course also scales down the maintenance cost. If you have only 10% players playing, cloud needs only to allocate 10% server capacity (10x reduced cost). This could likely mean that game developers / publishers keep their game servers running for much longer time, as the financial burden scales down as the game popularity decreases over time. It's a pure win-win situation.
This was specifically addressed in the GiantBomb livestream interview with Respawn. I listened to the podcast version initially and then watched the video livestream archive on their twitch channel to make sure I caught the details correctly.

The way MS is exposing the cloud services to Respawn means that Respawn doesn't have to worry about provisioning servers because this happens automatically on demand.
Hopefully cloud allows more games to use dedicated servers, because developers don't need a huge up front cost to setup their own server farms. Maintenance cost scales nicely with the game popularity (as explained above). Cloud seems to be a perfect way to reduce dedicated server financial costs and risks. And this could be a big boon for console online gaming (compared to the currently most popular peer-to-peer, player hosted multiplayer lobbies).
 
Perhaps they can pre-compute some of these on the servers, or bake a few approximations in.

It's also okay if the assets are shown in an async way (e.g., background explosions and smoke. Doesn't matter if they happen at time T exactly, as long as they are visible).

No need for that at all.

Remember back when ground foliage was first being implemented in games? It only extended a relatively short distance out from the player, after which there was just the barren ground texture that you had in games that didn't feature ground foliage.

So, in this example with the cloud handling the ground foliage you can just do something along the following.

Ground foliage out to X distance (3-10 feet?) is handled on the local machine. Any ground foliage outside of that distance is handled by the cloud. Assuming things like wind effects are synchronized somewhat between the local machine and the cloud (so the foliage always reacts to environmental conditions in a consistent manner) then the player would never know what was handled by their machine and what was handled by the cloud.

Even things like the physics for buildings being demolished could be handled on the cloud. Say the player shoots a rocket barrage at a building. The rocket barrage would have to happen locally as well as the resulting explosion. But the building collapse and falling debris could all be handled by the cloud. In real life buildings don't start to fall the second they are impacted. It takes a while for the structure to procedurally react to the forces, and then for inertia to start taking affect, acceleration slowly builds up, etc. Even if the player had the worst connection in the world (even worse than Dial-Up modem) with average ping of 1000 ms, it still wouldn't affect the believability or immersiveness as it can take quite a few seconds in real life for a building to start collapsing in a noticeable way.

Of course, you couldn't do that with all structures. A grass hut, for example, might need to be handled locally as those do react pretty quickly. :D

Regards,
SB
 
How is the cloud info delivered to the console? Are yu talking OnLive style remote rendering composited? I think that could work, although you'd need to synchronise the local rendering with the refresh of the cloud rendering, which means a poorer experience for the local game than pure local rendering. May as well go cloud gaming for that.
 
Is this new? It seems to be what they told the press after showing the asteroid thing... I'm not going to comment :).

http://kotaku.com/the-xbox-one-believers-513819282

Thanks for posting that, good read.

I liked this quote.

He adds that he liked the competing platforms, too. I can't help but wonder about how a studio as creative as his would take advantage of a console that had to keep checking in online. Maybe, if creators knew that was a default feature, they'd all do something good with it?

That was at the end of the blurb with the indie developer making Below.

It does make me wonder though. If any of the 3rd party exclusives eventually move to PS4, then people are going to have to be online always in order to play those games. Thus far, it appears that all of the 3rd party exclusives are making extensive use of the cloud.

Even that indie title, Below, is making extensive use of the cloud. I'm starting to get the feeling that these titles aren't necessarily exclusive because Microsoft is paying for them to be exclusive. It might just be exclusive because Microsoft isn't charging them to use the cloud. And the cloud is allowing them to deliver the game experience they wanted to deliver with their title.

When you hear the Insomiac guy talk about...

Price wants the game to be updated online regularly, maybe even daily, though he doesn’t want to commit to that. He wants the game world to change. He wants to offer players new weapons and challenges, to take in player feedback and adapt. He wants this even for the undated game’s single-player. He seems to like the idea of a game that would be checking in online a lot.

“When it comes to our game,” he tells me, “being online is an aspect of playing a game that is constantly updated.”

That's some of the stuff I was hoping would happen with cloud resources.

A single player world that is constantly and transparently updated. Depending on what is being updated/changed, it may not even require the player's game to be restarted.

Perhaps, I'm being overly optimistic, but I was never up on the cloud until I started thinking about the ways in which it could potentially benefit games. MMO's have obviously been there for years now. I certainly wouldn't mind some of the that to bleed into single player games.

It is interesting to think that a single player game could be drastically different 2 years after launch versus at launch. World locations, world populations, even the single player storyline could be drastically different representing the evolution of the world and game over those 2 years. MMO's have had things like that for well over a decade now. It's about time single player games got some of that action. :)

Regards,
SB
 
How is the cloud info delivered to the console? Are yu talking OnLive style remote rendering composited? I think that could work, although you'd need to synchronise the local rendering with the refresh of the cloud rendering, which means a poorer experience for the local game than pure local rendering. May as well go cloud gaming for that.

at the time you shoot your rocket, the client (console) send that data to the cloud, the cloud should know where the rocket would impact the structure and start simulating it and gives back the simulation result to be rendered locally.
 
If you're stepping on it and interacting directly, it becomes latency sensitive and no longer the periphery.

So basically its squad gunfire and projectiles, grass beyond your interaction horizon, clouds, cities, taxi cabs, boats, pieces of paper in the wind, snow, dust and sand, npcs until you interact with them.

Pretty much your whole environment that you cannot interact with has ten times more details with cloud access then they would with local power.

Unplug it and it reverts to just that which is locally interactive plus whatever resources are dedicated to the environment beyond.
 
How is the cloud info delivered to the console? Are yu talking OnLive style remote rendering composited? I think that could work, although you'd need to synchronise the local rendering with the refresh of the cloud rendering, which means a poorer experience for the local game than pure local rendering. May as well go cloud gaming for that.

The graphics rendering is still handled on the PC, but the physics stuff can be handled server side. Determining how the foliage should move in response weather conditions or any other external events like an explosion (vehicle, bomb, whatever.), for example. In the case of a building, it can determine how the building reacts to impacts. How the building collapses. The trajectory and path of debris as well as what happens with that debris when it hits the ground. Do they then generate more simulated debris?

The local machine then renders those items using the data from the cloud. Basically instead of your CPU or GPU compute being used for those tasks you could potentially use the cloud.

My example with how foliage was limited to a small circle around the player originally due to limited graphics rendering power was mearly an illustration that you can hand the physics for things handled locally for anything close to the character while things more distant and not directly impacted by the player can potentially be handled by the cloud. Not that the cloud would be rendering the graphics of foliage outside of X distance. I probably should have been more clear about that.

To support the ability to go offline, perhaps you just have canned animations for offline and dynamically calculated physics interactions when online. That way CPU load isn't increased significantly when offline versus online.

Regards,
SB
 
So basically its squad gunfire and projectiles, grass beyond your interaction horizon, clouds, cities, taxi cabs, boats, pieces of paper in the wind, snow, dust and sand, npcs until you interact with them.

Pretty much your whole environment that you cannot interact with has ten times more details with cloud access then they would with local power.

You can model whatever you want on the server.

The problem becomes how do you give that data to the client?
- NPCs? Sure... that's a standard feature. You send a few bytes per character for position updates, then the local machine uses latency prediction to smooth things out etc.

- particles? Doesn't really work. You send a few bytes per particle, and the internet explodes. You can just model a 'cloud' instead of particles, but that kindof misses the whole point.

- falling buildings? Maybe. I think it was mentioned that the BF4 skyscraper is currently not scripted, but that may change. You run into horrible sync problems if you try to optimize it, and sending details high-res format hogs the bandwidth.

Unplug it and it reverts to just that which is locally interactive plus whatever resources are dedicated to the environment beyond.

So the background pauses/fades out/all the taxis disappear?
 
Not sure if it has already been pointed out, but I'm pretty sure online coop games, such as Halo, already have to solve many of the issues that you are mentioning in this thread.
If anything, having the AI run on the server rather than on two consoles, could actually simplify the synchronization issues. Possibly, it could allow the game to increase the number of enemies when playing coop, thanks to more CPU resource available.
 
at the time you shoot your rocket, the client (console) send that data to the cloud, the cloud should know where the rocket would impact the structure and start simulating it and gives back the simulation result to be rendered locally.
That's prone to two issues. 1) What if something changes regards the local simulation, such as a helicopter flying into the path of the missile?

2) What is the format of the data from the cloud? If you are just sending positional values for existing msehes, it's not a problem, but if you are creating new meshes, textures, animations, data requirements will be huge.

The graphics rendering is still handled on the PC, but the physics stuff can be handled server side. Determining how the foliage should move in response weather conditions or any other external events like an explosion (vehicle, bomb, whatever.), for example. In the case of a building, it can determine how the building reacts to impacts. How the building collapses. The trajectory and path of debris as well as what happens with that debris when it hits the ground. Do they then generate more simulated debris?
As above, what's the data format for you grass and buildings that you send to the console? Let's take a hypothetical 8 vertex blade of grass, a textured ribbon. It requires 8 32bit (preferably 64, but we can lose accuracy to save BW) values to represent each vertex position. That's 32 bytes. One thousand blades of grass would require 32 kb of info per frame. A field would require crazy amounts of BW. If you have a solid wall on the console and have ti destroyed via physics in the cloud, you'll need megabytes of data to transmit the new debris meshes and textures.

In simple terms, there's a balance between processing workloads and bandwidth requirements. The more processing you move to the cloud, the more data you need to get back. There won't be many tasks that have huge amounts of processing to limited datasets - much of the processing needed for games is complex just due to the sheer amount of data needed. Something like AI processing complex neural nets online and sending back simple instructions to control a local entity are suitably high-compute, low-BW jobs, but there aren't many of these tasks that I can see.
 
This post is very interesting ....with some very interesting ideas about how the cloud may or may not help in game .
I wonder would it be possible to populate a squad based game with bots based and your friends playing style from data collected from there playing style .

Kind of like dragon dogma but instead of using someone else's creation your using a artificial version on them based on there playing style ........even better could you tell the difference if they didn't have there mic on .

I can imagine saying to a friend I prefer your bot he plays better than you lol
:) :) :)
 
Back
Top