I’m finished the big visibility refactor. The server now decides what the clients are allowed to see, and sends the game objects that the client needs at any time.
At the same time, I implemented a game object component system. This will make aggregating new original game objects a breeze, and leverage emergent behaviour.
As I write this, there’s major cleaning up to do, and some new tests to write (disconnection, visibility range).