Visibility algorithm

From CatchChallenger wiki
Jump to: navigation, search

Here your have the different algorihtm use into Catchchallenger for the visibility of player. Ordered by lower cpu usage to greater cpu usage.

Map visibility algorithm none

MapVisibilityAlgorithm-None.png

The other player position is not send. No cpu cost for that's, no network usage. Used in single player, in case of heavy load, very weak network and in case of DDOS (see Server under DDOS). Is fixed algorithmic complexity and near to be null.

Map visibility algorithm simple

MapVisibilityAlgorithm-Simple.png

Only the player on the same map is send. Then the player near but out of the border is not show. Correct of very low end cpu, or when the bottom algorithm do too hight load. That's do average network usage. The algorithmic complexity can be dropped to linear complexity and not square as the first implementation as see in lot of server.

Map visibility algorithm with border

MapVisibilityAlgorithm-WithBorder.png

Show all player on current map and border map. That's do hight quality show. But do hight network usage.

Map visibility algorithm with border and range

MapVisibilityAlgorithm-WithBorderAndRange.png

Show all player in range, include if is on the map border. Work with border to don't parse each player connected range. Do very minimal network usage, but at cost of hight cpu usage.

Multiple server

4g-base-station-2.jpg
4g-base-station.jpg
Nginx-rproxy.png

The spatial attachement (in game map sens) of a player on game server can be administred as 4G network. On cell edge, is connected to 2 gameserver. When is near a cell center, is connected only to one game server.

To hide this reconnect, a reverse proxy like can do the job. Work prepared into login server in mode proxy.https://catchchallenger.first-world.info/wiki/File:4g-base-station-2.jpg

You manage the player move, you can:

  • Parse the matching move for your zone, pass the remaining move to another server
  • Both server parse the move, reduce the bandwidth because it not pass multiple time the move list