Overview

Persistent vs. session-based entities

When we connect to a game world with a game client, the traditional approach is that all entities originating on our client are session-based. This means that when the client disconnects, they will disappear from the network world for all players.

A persistent object, however, will remain on the replication server even when the client or simulator that created or last simulated it, is gone.

This allows us to create a living world where player actions leave lasting effects.

In a virtual world, examples of persistent objects are:

  • A door anyone can open, close or lock

  • User-generated or user-configured objects left in the world to be found by others

  • Game progress objects (e.g. in PvE games)

  • Voice or video messages left by users

  • NPC's wandering around the world using an AI logic

  • Player characters on "auto pilot" that continue affecting the world when the player is offline

  • And many, many more

A persistent object with no simulator is called an orphan. Orphans can be configured to be auto-adopted by clients or simulators on a FCFS basis.

Last updated