Periapsis / aphelion

2D spaceship mmog in java with an authoritative server model. Inspired by subspace.
GNU Affero General Public License v3.0
10 stars 2 forks source link

Variable authoritative client/server model #51

Open Joris-van-der-Wel opened 11 years ago

Joris-van-der-Wel commented 11 years ago

For the first versions of aphelion the intention is to have the server be fully authoritative over the gameplay. For example, you can not set your own position, fire too may weapons, etc (this is the present situation).

This of course comes at a cost, players with bad connections will suffer more then with a model wherein the client is authoritative. (although players on good connections might suffer less from the lag of other players).

It would be nice to have a set of settings which determine what the client has or does not have control over. For example dieing could be handled by clients to avoid inexplicable deaths. These could be arena settings (lax settings in public arena's, strict settings in duel/league arena's), but also per-player settings/moderator commands. It would even be possible to apply statistics on a player, e.g. if he ignores a lot of deaths, remove his ability to be authoritative over his own deaths.

For the most part, the physics engine is already equipped to cope with a variable authoritative client/server model; For example in the case of deaths, the server and other clients should ignore deaths (keep the energy at 0 for example), until the client that is authoritative over them sends a message.