First of all I would like to thank you for the great project that is Nakama. We’re going to start evaluating him (on a practical level) for a project we’re working on.
Our “game” is not a common game, we are making a training platform for cyber security, that is, our game servers are not an instance where we have the game logic and several clients connected, but for each game we have an infrastructure of machines raised.
For the backend part, we have a lot of Nakama. But I have some doubts about how to implement some features that we need:
a) When our player creates a new game, we need an associated logic to instantiate our virtual machines where the game will be played. We already have a service that does that, so the logic would be as simple as executing a RPC or HTTP call to another external service, but if we need to be able to have a logic of states associated to the current game. The way in Nakama would be with “Autorithative Player”?
b) The code that is running in the game servers during the game needs to connect sometimes with the backend… Would the way in Nakama be with “Autorithative Player”? With the server-to-server?
c) The storage engine fits us but we need to be able to make requests for item listings with filters. Is it possible to extend the data request options in Nakama to have more powerful filters?
d) Apart from these filters, we want to be able to intercept requests to certain collections because we need to apply custom logic to modify some values. For example: we have a collection of missions but according to some progress of the player there are missions that the player could not play. Could we do this in storage engine service? Would it be better to extend the server with an own RPC request that does this?