Currently rooms track what players have visited them recently, and this is purged every so often.
The goal of this task is to investigate efficient ways to track every room a player has visited, to enable more sophisticated features that rely on whether players are aware of a room.
Example: Only revealing rooms a player is aware of when mapping.
As room count increases, so does the number of rooms tracked. If we have 10240 rooms that is a minimum of 81kb being stored for a character. Not "end of the world" stuff but feels very wasteful.
Some basic options:
- Track rooms visited in another structure that doesn't get copied around with the character data.
- Compress tracked data with
lz4 or similar to minimize memory overhead.
- Track rooms by zone for faster lookup/sharding.
- When every room in a zone is visited, clear the tracked rooms and track a
completed boolean.
- Problematic if new rooms are added after the fact.