12
\$\begingroup\$

As far as I understand, most big games use fixed timestep to have a stable simulation.

Regarding the game server, which "frame rate" do they impose? Or said it another way, what fixed timestep do they tend to use?

I know many would say: "As fast as they can get away with". I'd like to know how fast is that, if you have direct experience of established MMORPG.

\$\endgroup\$
  • \$\begingroup\$ You shouldn't pay too much attention to what others do. What works for someone else does not necessarily also need to work for you. \$\endgroup\$ – Philipp Jul 18 '15 at 10:34
  • 6
    \$\begingroup\$ EVE Online updates it simulation once a second, but its system is unusual. See the first part of this article for more details: themittani.com/features/understanding-eve-online-server-tick \$\endgroup\$ – Ross Ridge Jul 18 '15 at 22:54
  • 1
    \$\begingroup\$ So this is a "asking for trivia about other people's games which already exist" question as opposed to a question about developing a game? \$\endgroup\$ – Trevor Powell Jul 19 '15 at 12:02
  • 2
    \$\begingroup\$ I wouldn't call this a trivia - it's quite important. The fact that some games can use 1-second ticks, that I didn't know of, or that don't use physics at all, it's very important to me (and it should be to any developer). At the same time, my answer to Philipp was due to its unspoken implication that I was asking this because I wanted to decide on my FPSs. That wouldn't make sense because my engine has many limitations and I already know the limit FPS I can use (both lower and upper bounds). \$\endgroup\$ – Fabio Jul 19 '15 at 12:19
  • 1
    \$\begingroup\$ I remember reading an article about Blizzard changing the WoW server processing speed for combat events from once every 400 MS to "whenever they come in". However, that's not physics related, since WoW does not really have much in the way of physics due to its age. I also cannot find a source for this. \$\endgroup\$ – Nzall Jul 19 '15 at 15:38
7
\$\begingroup\$

Second Life implements physics on the server side using Havok, and locks updates to 45 per second.

https://community.secondlife.com/t5/General-Discussions/SIM-FPS-is-maxed-out-at-45/td-p/181120

Earlier versions around 2005-2006 let the physics updates float as high as the server would allow. An uncomplicated region with few scripted objects could run at 800 updates per second... For better efficiency and consistency, they later locked it to 45.

(In Second Life, frame rate depends on each client's CPU and graphics power. World accuracy depends on network performance.)

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ Indeed, this seems reasonable. I've found even as low as 30 FPS to do a decent job if the integrator is good and collision detection smart enough. Do you know of other MMOs with proper physics, and of their timesteps? \$\endgroup\$ – Fabio Jul 18 '15 at 15:44
  • 2
    \$\begingroup\$ Accepted as the only one to provide a real-world example, but all were good food for thought. Thanks guys. \$\endgroup\$ – Fabio Jul 18 '15 at 20:26
24
\$\begingroup\$

I've worked on a couple of game servers, including a suite of them for an MMO.

In general, they don't have physics at all. In the few situations where physics are necessary (jumping, primarily) we let clients calculate their own physics, and we just deny anything that's too outlandish (players moving too fast for too long, going much higher than they should have been able to jump, etc).

Servers also typically don't have 'timesteps'. They don't normally think in "frames per second" at all. Instead, we know when we last heard from someone and what they were doing back then, and then when we hear from them again a little while later on we hear about what they're doing now, and so we update our internal state to match. There's no need to rigorously simulate everything server-side; we can just record the things the clients tell us and do some checks to make sure that what the clients say happened looks plausible to us.

| improve this answer | |
\$\endgroup\$
  • 4
    \$\begingroup\$ This would only work if the environment doesn't do any simulation without players logged, right? I was actually assuming it generally did, but probably that's not important for most MMOs as it's not really "alive". Thanks, this was an unexpected answer. \$\endgroup\$ – Fabio Jul 18 '15 at 15:42
  • 2
    \$\begingroup\$ @Fabio Most MMOs do nothing when there's no observer - even Ultima Online, which used to have a real, living economy (and ecology) let it go before being released (though not for technical reasons). There's games where stuff does happen even when you don't play (for example, Haven and Hearth), but the trick is that nothing happens until it's observed - every active item remembers the last time it has been observed, and calculates what happened in the meantime the moment you see it again. So instead of a value updating each tick, you do perTick * ticksSinceLastUpdated - simple, efficient. \$\endgroup\$ – Luaan Jul 20 '15 at 7:12
  • 1
    \$\begingroup\$ Don't get me wrong; MMO servers will often have periodic tasks that they run. Check for monsters that need to be respawned, consider spawning resource nodes, backup the game state. Maybe even something more fancy if your game has some procedural activity. But it's not like physics where you're running 'x' times per second even when nobody's around. You might check for spawning monsters a few times a minute, tops (or more likely, have an external program which does that, and merely pokes the server to let it know that it's time, so the server itself can focus on handling client requests). \$\endgroup\$ – Trevor Powell Jul 20 '15 at 7:20
11
\$\begingroup\$

Besides the other good answers given, I want to add the fact that some physics commonly is not driven by the server or even know about by the server and is a common trick to make the world seem more rich without adding overhead to the networking or server side processing.

For instance there might be debris you can kick around on the ground or blowing around in the wind that interacts with other objects, or maybe you can push dead bodies around.

If the physics is purely decorational, and doesn't affect movement or gameplay in any way, you can have it happen on the client side completely.

Different players will see things differently (like, if you shoot a can on the ground and it flies away, other players may not see that can fly away) but there are a lot of cases where that doesn't matter that the experience isn't the same for all players, and having client side physics simulations can really improve the look and feel of the online game.

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ In some games if that can flies away fast enough it can kill someone. I've seen videos of Halo games where someone is killed by a traffic cone propelled at them by an explosion. \$\endgroup\$ – Random832 Jul 20 '15 at 5:08
  • \$\begingroup\$ If you want the can to affect gameplay you could add it to the synchronized physics world, but you could also have a non synchronized physics world in the same space! Basically, the non synchronized physics world can be affected by the player and the synchronized physics world, but it can't affect them back (: \$\endgroup\$ – Alan Wolfe Jul 20 '15 at 5:10
3
\$\begingroup\$

EVE Online, an MMO with a single shard and up to several thousand plaers in big space battles runs its physics on a 1 Hz tick, called the "destiny" tick.

http://community.eveonline.com/news/dev-blogs/fixing-lag-drakes-of-destiny-part-1-1/

The so called "Bloodbath of B-R5RB" is the biggest emergent player fight ever to happen in an online game to date ("the 21 hour long conflict involved over 7,548 player characters overall and a maximum of 2,670 players in the B-R5RB system at one time", according to https://en.wikipedia.org/wiki/Bloodbath_of_B-R5RB).

| improve this answer | |
\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged or ask your own question.