Are real network physics possible today?

Started by
3 comments, last by oliii 11 years, 6 months ago
Does today's hardware and internet speeds allow for a game to have physics over a network of many clients the same way modern first person shooters do in singleplayer?Because most mmo games or moba games I see don't have real physics like PhysX.What is the actual bottleneck here?Is it the cpu overhead on the server,for calculating all the collisions,or is it the fact that the server has to send physics data updates to each player.
Advertisement
Apart from bandwidth at the home user node, network latency is the single biggest limiting factor to anything "realtime". And unluckily, latency does not much depend on technological advance (it does, though barely so) but is a given physical property.

Latency comes from several sources:
a) the actual time it takes for a complete network packet to go through an user's modem (i.e. it's correlated to bandwidth) and the time to reassemble it and push it onwards
b) the speed of light
c) delay in routers

We cannot influence b) to our favour, and in fact, in modern networks it is actually slower (since these are fiber optic networks, and the speed of light is lower in fiber optics, plus the light does not travel in a straight path but zigzag).
Server-side collision detection is the most expensive bottleneck, I think. To run physics simulation consistently, you have to do it on the server (so there's a "known good" copy) and you have to run at a reasonable frame rate (30-60 Hz.) Some FPS-es do this, but it's hard to get more than a few hundred players on a single CPU/memory subsystem. Also, typical simulations like PhysX are not deterministic, and thus require continuous sync of the state of all objects, which gets expensive in bandwidth. A software-only physics engine built to be deterministic across all players may do better in this regard.

If you can live with the latency of a round-trip, you can run physics on the server, and only render the outcome on the client. That's the Second Life model. Unfortunately, that ends up being both somewhat laggy, and somewhat limited in scalability.
enum Bool { True, False, FileNotFound };

Server-side collision detection is the most expensive bottleneck, I think. To run physics simulation consistently, you have to do it on the server (so there's a "known good" copy) and you have to run at a reasonable frame rate (30-60 Hz.) Some FPS-es do this, but it's hard to get more than a few hundred players on a single CPU/memory subsystem. Also, typical simulations like PhysX are not deterministic, and thus require continuous sync of the state of all objects, which gets expensive in bandwidth. A software-only physics engine built to be deterministic across all players may do better in this regard.

If you can live with the latency of a round-trip, you can run physics on the server, and only render the outcome on the client. That's the Second Life model. Unfortunately, that ends up being both somewhat laggy, and somewhat limited in scalability.


ok so the CPU cost can theoretically be paid by splitting up the game world into different servers,with powerful Xeons,that are connected into a farm.Bullet physics has some real good CPU performance,so I guess the latency issue is unfixable by the server,even if the administrator has a $10000/month internet connection and will have to depend on the clients entirely?
This topic is linked to from the Google News Physics sections. Interesting.

I'm not sure why this question is necessary. Network physics has been in use for a very long time. I have deep involvement in Myst Online: Uru Live, the MMO from Cyan Worlds. Uru Live ran under Cyan Worlds' Plasma game engine and used the Havok physics engine when Uru Live was first in beta in 2003. It was ported to PhysX for the GameTap release in 2006. We are still using PhysX in MOULa, the open source incarnation of Myst Online: Uru Live, currently available. We have PhysX working quite well, but may in the distant future port to Bullet.

MagiQuest Online, the MMO from Creative Kingdoms, for whom I work and helped develop the game, also uses Cyan Worlds' Plasma engine, as it was known before the release of Myst Online: Uru Live to open source as the Cyan Worlds Engine (CWE).


JWPlatt
OpenUru.org
An article that may interest you.

http://gafferongames.com/game-physics/networked-physics/

Limitations are kind of both. Both bandwidth, and CPU limitations. And both cost money in large scale MMO environments (CPUs / bandwidth). If you can get away without complex physics, then the better. Some games may rely on some decent physics though (destructible, deformable environments, complex vehicle simulations, for example). For these, CPU would probably be the bottleneck over bandwidth.

BTW which single player game would you consider particularly physics heavy? I'm still struggling to find a concrete example. Most are using Physics and what-not as eye candy, which typically, are purely client-side in networked games (therefore, for free as far as servers are concerned).

Games like BF3 and Planetside can cope all right, but they tend to hammer the CPUs.

Everything is better with Metal.

This topic is closed to new replies.

Advertisement