Multiplayer PPU (speculation)

nhusby

Limp Gawd
Joined
May 1, 2006
Messages
303
First off, I want to state that I have little to no expertise as a game designer and I am only a programming student. That being said, I bilieve that a PPU powered multiplayer world is possible. My understanding of video game physics is incomplete, but as far as I know the laws of physics are ALWAYS the same. Every action has a reaction, and to a certain extent, under identical conditions that reaction should be the same. Much like a seed in a random number generator, a multiplayer game should be able to pass the "seed" action and all reactions (and reactions to those) could then be calculated in paralell by each PPU. I amagine it would have to have a periodic sync with the master PPU.

any criticism or arguement is welcome. I am just bored at work.
 
Im bored at work as well :p

But, it just doesnt work that way. For whatever reason (not sure why exactly) but probably network latency. Clients, and server see different things as it is, with no PPU. Much simpler games have a hard time having everything synched.

A great example is HALOPC, this bad port had a lot of "warping" that happened because the clients games are simply "approximations" of the real game happening in the server, and when the server synchs this, the clients warp to possition, because the "reactions to the actions" where not completely the same due to latency.

aka, if I shoot and manage a headshot in my screen, but due to latency the server I did not get the kill, stuff breaks. Now imagine all this, but at a much higher object count, and nobody's will be the same.

:D
 
heh.... thats not that bad... I played the old half life (counter strike and tfc) on crap ass dial up. lag sucks.... usually means death...

what I am suggesting is that each action have a timestamp.
for example:
if a character is moving in a given direction at a given speed and you fire a cannon ball at him (ahead of his movement) and you lag, then the shot is timestamped and the end result (his death) is applied as an update. wich could really piss people off.
secondary example:
the same situation, but the character stops and turns while you are lagged out. both the stop, the turn, and your shot are time stamped, so the shot misses and the character is unharmed.

it would almost be like D&D or magic (turn based play) but on a much, much faster scale.

I know that its got flaws... but would it be playable?

PS (I'm just speaking my mind, without thinking much, so bear with me)
 
About the lag issue, consider the planned global "network" revamp. In a couple of years the internet connections for home users are going to be considerably faster than they are right now... I'd assume it's just a matter of time till this comes into play with online gaming.

Increases in wireless technology and 10/100gb networking might help in the LAN department too.

Sending and recieving time stamps for *every* object will take considerable CPU power. Well, not really, as the current time could be stored in a variable so it's called, at most, once a MS (and not *every* time something on the screen needs to be updated).

Game designers are ingenious, give them enough time and money, they'll come up with something...
 
Tim Sweeny just mentioned the implimentation of PPU accross networks in this inter view:

http://www.nvnews.net/vbulletin/showthread.php?t=70056

Tim Sweeny said:
There are a number of networking solutions for physics, what we are doing in UT2007 is using the physics hardware only for accelerating special effects objects, things where the server tells the client, Spawn this special effect here! The client responds with an explosion with thousands of particles, and each of those operates as a separate physics object but it doesn't effect the game play... it’s just purely a visual effect there. That’s the easiest and most common solution.

Some of the other solutions it looks like other teams are using are only enabling the physics hardware's networking on a LAN environment, where the entire physics state of the world is being replicated to all the clients, that requires a vast amount of bandwidth, more than even a broadband connection has there, so that’s not very practical.

The other approach is to run a peer to peer lockstep game, which would be ideal for like a fighting game or some other game with 2 players or 4 players playing against each other where the entire game runs in lockstep, everybody has hardware and the entire game state evolves deterministically on all of the machines."
 
They have to be in sync. If two balls were on a collision, but one was a tenth of a second too late, it would go in a completely different direction than if the ball was launched a tenth of a second too early (If they hit at all).

If you're complaining about how latency throws off your aim in BF2 because the position of the models don't match the servers, imagine that happening in a physics mayhem.
 
Arcygenical said:
About the lag issue, consider the planned global "network" revamp. In a couple of years the internet connections for home users are going to be considerably faster than they are right now... I'd assume it's just a matter of time till this comes into play with online gaming.

The way I see it, we could all gave gigabit speed internet to our homes and it still wouldnt solve the problem. A decent dual core gaming server should run about $1,500-2,000. How many users will the servers be able to support? HL1, I hosted 20+ people on a K7-500 amd rig with a 10Mb ethernet card, on a 10Mbps switch. No one complained of lag. HL1 could probably be hosted on a 512k connection with that many people and you wouldnt notice problems.

Anyways, what im getting at is there is so much going on, at the severs end... It may not be a matter of bandwidth, but processing power and cost.
 
nhusby said:
First off, I want to state that I have little to no expertise as a game designer and I am only a programming student. That being said, I bilieve that a PPU powered multiplayer world is possible. My understanding of video game physics is incomplete, but as far as I know the laws of physics are ALWAYS the same. Every action has a reaction, and to a certain extent, under identical conditions that reaction should be the same. Much like a seed in a random number generator, a multiplayer game should be able to pass the "seed" action and all reactions (and reactions to those) could then be calculated in paralell by each PPU. I amagine it would have to have a periodic sync with the master PPU.

any criticism or arguement is welcome. I am just bored at work.

Also bored at work :p

The above is true but for 2 reasons is not the whole truth.

1) Human intervention, any object set in motion is calculated exactly the same on each client UNTIL another force acts on it which has been unexpectidly generated by a player, either by yourself or by another, which case everything needs resyncing again.

2) Cheating/Abusing of the code when letting clients decide whats what is a massive problem, especially if they manipulate code to say no physics object can hit the player etc.
 
Like mentioned before just sending the info to show the "effect here!" is the best way to do it for now. If UT07 tried it with 30+ players on a net server with full physics going with physics collision damage, the game itself will lag, not because of the processing of the graphics or PPU, but just in the amount of info sent/recieved from server-client and visa versa.

Regardless the simple way to start off like what he said is best for now. LAN gaming should be alot better as you can get gigabit speeds (but everyone will need giga-nics) would be nice though if UT07 implimented both so that regular online gaming would provide basic physics processing and on a giga-lan you could set something like FullPhysics=yes or something in their .ini's.
 
Internet bandwidth is rapidly growing. There were estimates that 50mb/s would be standard by 2010. If thats true then advanced physics wont be a problem in the future.
 
as odd as this sounds, I dont even have an internet connection in my home. I use the internet at school and work. I consider my home my sanctuary, only for games and movies and sleeping. It causes some problems (like online play, but I usually only use single player or LAN.) Anyways...

The above is true but for 2 reasons is not the whole truth.

1) Human intervention, any object set in motion is calculated exactly the same on each client UNTIL another force acts on it which has been unexpectidly generated by a player, either by yourself or by another, which case everything needs resyncing again.

2) Cheating/Abusing of the code when letting clients decide whats what is a massive problem, especially if they manipulate code to say no physics object can hit the player etc.

In such a multiplayer system the number of moving objects would have to be limited to the capacity of a single PPU. The server would have an ongoing record of all timestamped USER actions (any of wich could spawn an interaction) if the PPU decides that the users action spawns a reaction, then the PPU tracks it, and when those action interact with a user (such as grenade debree hitting the players neck) that would take place on the server and the users computer. The PPU on the users side would have no effect on the servers side. if / when there is a syncronization, the server would have to be the absolute authority. on that same level, there would be a requirement for quality control in the communications. a timestamped action that arrives 500 (just for example) or more ms too late, doesnt happen, resulting in a server's account of occurences to over ride the user's account of occurences. this would make the game dependant on network reliability and latency, rather than bandwidth.

At the current stage of networking, paralell processing of physX is the only solution I see.
 
pArTy said:
Internet bandwidth is rapidly growing. There were estimates that 50mb/s would be standard by 2010. If thats true then advanced physics wont be a problem in the future.

Well the problem is, I cant see any company willing to sink that much money in bringing LAN speed fiber internet up to most of the houses in the US, within the next 3 1/2 years. Dialup is about 34% of the intarweb connections according to this site. And 42 percent of intarweb users on 'broadband' (which basically now means anything not dialup, regardless of speed).

But then again, I can see it happening if they lump in the VoIP, TV over interweb and whatever else they can throw in to make it more appealing.
 
The U.S is ranked very very very low on high speed connections, go take a look in europe and china, you can get fiber lines 100mb into your homes for like $50.


HL 2 / CS:S has a system in place to help with lag in that if you shoot a shot @ point X - and the other person lags, the system still registers it as hitting point X at the time the person was there, or something along those lines, so logging or not, you should always get your kill.

This is why often if your coming around a wall, and you die, is because someone with a lower ping, already saw you coming and fired, your just playing catch up to your enevitable death :D
 
MrGuvernment said:
T

HL 2 / CS:S has a system in place to help with lag in that if you shoot a shot @ point X - and the other person lags, the system still registers it as hitting point X at the time the person was there, or something along those lines, so logging or not, you should always get your kill.


on a side note, CS:S does so much whacked-out shit with the hitboxes that it's hard to tell what's actually going on. Whatever they do, there's often some very large discrepencies between what the player sees and what the server registers. It seems to me like all graphical stuff (i.e. bullet hits) is done client side while hit recognition is done server side. For instance, sometimes I'll "shoot" someone and even see the blood splatter off of him but officially it will register no hit. or sometimes you'll "shoot" someone in the head and see the headshot sparks fly everywhere and hear the headshot noise, but you'll look at the log and it'll be like an arm hit for 23 damage. very annoying since what you see isn't necessarily what you get.
 
bob said:
Well the problem is, I cant see any company willing to sink that much money in bringing LAN speed fiber internet up to most of the houses in the US, within the next 3 1/2 years. Dialup is about 34% of the intarweb connections according to this site. And 42 percent of intarweb users on 'broadband' (which basically now means anything not dialup, regardless of speed).

But then again, I can see it happening if they lump in the VoIP, TV over interweb and whatever else they can throw in to make it more appealing.


Isn't Verizon doing FTTD soon? Regardless, you have to consider network latency, not bandwidth. You can use whatever cable you want, copper or fibre optic, any size, but once you start having to go through routers and other networking hardware you'll be adding more latency than a game's physics system can tolerate.
 
Thats true. Latency depends more on how many hops are between two end points, but anything over 200ms usually (speculation here) occurs from network congestion and / or lost packets. Also, if your data exceeds your bandwidth, obviusly you are going to get a surge of latency, because each packet has to wait for the packet before it to finish transmitting. aka congestion.
 
nhusby said:
Thats true. Latency depends more on how many hops are between two end points

And how loaded down the gaming servers are ;). Basically put, theres a lot more shit that will be going on, at the servers end.
 
This is a very bad thing. There are a lot AAA titles and clones aimd at extensivly online Multy play. This could be a big deal if any Dev would incorporate Gameplay related Physics. It would be a big trade Off.

It sounds like UT2007 wil just like Graw be jet another Eye candy enabled game. But then again possibly with way better eyecandy Physics. Hopefully.

Altho they could make some specific PhysX enabled LAN maps wich incorporates also extensivly Gameplay Physics.

Other dev's would drop Mplay totaly in cases Mplay is not a prim feature for a particular gameplay style and game theme and make a Single player game. Like Swat.
Or a Single player/ Lan only game like The CellFactor demo.

Some games support 64 to 128 online player in one server. A Physic game could support only a few 4 to 8 max. With a bit of gameplay physics. With a full Physics feature Package the amount of players on a LAN could be restricted to.

So its for Grin they had to make a choice so the went for eye candy physics only, understandable if you want to keep online feature for a larger audience.
 
Why not move the physics processing server side? Let the server have a physx card and set it to handle all the physics on the map. Reduces lag, all the players see the same thing, and everyone is happy.
 
pArTy said:
Internet bandwidth is rapidly growing. There were estimates that 50mb/s would be standard by 2010. If thats true then advanced physics wont be a problem in the future.

If you confuse bandwidth with latency, sure. Bandwidth is the issue people see now, especially when they see that this stuff works sometimes in LAN environments. It isn't just bandwidth, though, it is latency, and you're not going to cure that problem.

Advanced physics will always be a problem with networking over any significant distance, at least with current client/server and peer to peer gaming models. The only way you're going to get rid of it is to have that server really be a server and the clients being the equivalent of dumb terminals. That you'll be able to do with plenty of bandwidth and a hefty server.
 
pArTy said:
Internet bandwidth is rapidly growing. There were estimates that 50mb/s would be standard by 2010. If thats true then advanced physics wont be a problem in the future.

bandwidth != latency. Why do people keep making this mistake?
 
serbiaNem said:
Why not move the physics processing server side? Let the server have a physx card and set it to handle all the physics on the map. Reduces lag, all the players see the same thing, and everyone is happy.
CellFactor has a dedicated server. When I start it on the same PC. Can't start the game.
PPU in use.
My guess is that the host or dedicated server uses the PPU and collect Cleint/Mplayer input and broadcast the results to Lan clients.
The Clients could do only the eyecandy physics with there own PPU..
The more Physics features and the more Physics detail the more bandwidth trafic is generated.
On Lan you got more Bandwidth And less Lag and most of all less lag variation..
Both are important.
 
like I said before, with games its reliability and latency that you want to worry about for games, but with this type of game, bandwidth comes into affect.

bandwidth != latency. Why do people keep making this mistake?

people who scream (bandwidth != latency) remind me of people who scream (voltage != amperage) when we are talking about electric shock. although correct in both cases, there is a direct relationship between bandwidth and latency (and voltage and amperage). When an application (such as a PhysX game) tries to pump too much data things get backed up. at that point either packets are dropped or the latency spikes.

If you confuse bandwidth with latency, sure. Bandwidth is the issue people see now, especially when they see that this stuff works sometimes in LAN environments.

LAN's have lots of free bandwidth and low (almost nonexistent) latency, perfect for solving either bottleneck...


but really, how much latency is too much? and how much bandwidth would be needed?
 
nhusby said:
Much like a seed in a random number generator, a multiplayer game should be able to pass the "seed" action and all reactions (and reactions to those) could then be calculated in paralell by each PPU. I amagine it would have to have a periodic sync with the master PPU.

any criticism or arguement is welcome. I am just bored at work.

I see absolutely know problem with this concept, as long as it's taken one step further. In games most objects are static most of the time. Therefore all the server needs to do is track and timestamp any movement by the few things that do move, and then track and timestamp explosion affects. Then anytime anything moves independently within the potential radius and time of an explosion or weapon hit of any kind the timestamped movement and explosion information is sent to all client PPU's for the purpose of caculating the visual results on each local client. Meanwhile the server PPU calculates it's own visual affects and actual game-related player/vehicle damage and sends that information to the client games to implement.

This would be more bandwidth than is used today in games, probably cutting maximum server sizes in half, but that is a small price to pay for being able to kill the llama hiding inside a brick house by dropping the entire building on him with a well executed artillery TOT barrage.
 
I'm not even sure if that much is necisary.
I think that it just needs a fresh look at networked gaming.
If done correctly the server shouldnt have to broadcast everything that happens to the clients.

for example, a player fires a bullet from point 1 (x1,y1,z1) in the direction of a point 2 (x2,y2,z2) at X time.
at the same time a train goes by 100ft from point 1 and there was a barrel of gun powder on the train.
quincidetally the barrel on the train just so happends to cross the line between point 1 and point 2 at time X2 (X time + the time it takes for the bullet to go 100ft)

I would think, that if all clients involved recieve the same values for time X1, point 1, and point 2, then they should all independantly predict the collision of the bullet and the barrel of gun powder, so from that point each client should produce an explosion based on that calculation. The explosion should be calculated in the same manner, possibly with some random variables (so each explosion isnt the same) generated by the server (in wich only those random variables would be transmitted)

the question I have about such a system, is how long can each client go without an anomaly (miscalculation leading to differentiating data)

I would think it would be quite a while, but I dont know how often processors make mistakes.
 
One lonley 56ker or person on wireless internet can ruin the match for everybody.
 
psychoace said:
One lonley 56ker or person on wireless internet can ruin the match for everybody.
LoL

earlyer I mentioned that the server could "reject" a users action (to move, jump, or fire a weapon) based on the time the action arrives, and the action's timestamp.
 
Yeah i guess you can also have a criteria for people who are logged in must fall under and an excellent ping time would be 1. Then you keep a constant update on ping times and if anyone seems to be dropping below said ping they will be sent into a penalty box until they can hold a strong signal for more then a minute while viewing the match through someone elses eyes. I think if you reject his action you might come into complications because people will complain that there shot was comprimised not because of there lag but because of a problem with the server. If they are put in a penelty box then they are less likely also to get mad and storm off like a little girl. They will know why they are there and they also know they will be put back into the game soon. Atleast they wont be out there shooting and not getting the frags they deserve. Also if they are still out there then other players can still shoot him and he is really defenseless or if he can't take damage other players will get mad because they just wasted ammo.
 
I see what you are saying.

maybe, rather than forcing them to spectate, their controles could be frozen and their screen color tinted (red or green or blue or something) and also their character could be changed to a certain color to indicate that they are lagged, and it could be a server setting wether or not they are damageable.

here is where I am not sure. If the player is not recieving data, could they catch up? on top of that, if the data can catch up, how long would it take the PPU to compute the state of everything in the game? if it is a challenge to computer physics in real time, amagine having to do it in fast forward to catch up. it would be neat to watch tho.
maybe they would have to be dropped from the game until the next reset...
 
Back
Top