Hello, we are trying to design an architecture similar to Runescape’s where each server is a world that connects a maximum of X number of players. A player can log into any one world at a time, and each world has its own set of connected players, items, monsters etc that are completely disjoint from all other servers.
We were thinking of using Nakama’s match system where there is one match on each node that all the players in that world connect to, and each node has a copy of the map data (buildings, trees, walls, obstacles etc) and the player, monster, and item data unique to that world. We would have tap-based movement where the player taps on a location and then an RPC runs that verifies the validity of that path. As the map data itself won’t be changing, we were thinking it would be wiser to keep it in server memory rather than pulling it from the database every time the player wants to move their character. And as each node has constantly changing player, monster, and item data that is unique to each node, we were thinking it would be wise to keep that data in memory as well.
Our questions are:
-
Can we set it up so that each node has separate data stored in memory or each has a copy in memory of the same data?
-
Is it possible to set it up so that there is one match per node?
Best