Interest Management

When creating large worlds, we don’t want to synchronize the full world to every single player connection. Instead, we only send nearby state to each player connection.

Each NetworkIdentity has observers, which are the player connections that it is synced to. Observers are a DynamicBuffer<NetworkServer>.

The InterestManagementSystem rebuilds the observers every few seconds.

InterestManagementSystem is abstract, so that different games can have different interest management algorithms. For example:

  • Brute Force

  • Spatial Hashing

  • Sphere Cast Checks

  • Line Sweeps

  • Instance based

  • etc.

By default, DOTSNET comes with a DistanceInterestManagementSystem which runs vector3 distance checks to every player connection for each NetworkIdentity in the world.

Later on, DOTSNET will also implement a Spatial Hashing system which will scale even better.

InterestManagementSystem API

Last updated