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.