(sorry if bad english i’m not native)
I wanted to ask some questions before trying out Nakama.
My friends and myself are going to develop a roguelike game which you can play online in coop.
A roguelike means ‘runs’, meaning that the game won’t have a common world for everyone, every player will be dispatched in their own ‘rooms’ in which the game will happen.
In terms of server architecture, this is how we see it:
- a ‘lobby’ will handle request for players when they’re in the main menu
- when a player wants to start a game, the lobby will execute a new process and attach the client to that new process. This new process would be the game room, responsible for game logic.
So the key point of our architecture here is that the lobby doesn’t do any game logic, it just manages other process and connects players to it.
(Maybe someone experienced would correct me but i’m pretty sure that is how games like LoL, Valorant, Hearthstone etc. does it, right?)
So here comes my first question.
Is Nakama suited to be instanciated multiple times as a single game room by a 'lobby' ?
Or is Nakama more suited to be a single ‘lobby’, kind of ?
We make our client in Godot.
At first we were going to do our ‘lobby’ in SpringBoot or Django (or any backend framework); and this ‘lobby’ was going to instanciate Godot servers as game rooms (we would use the high level multiplayer API of Godot). But when I discovered Nakama i thought maybe it was more suited than using godot for the server side, so here i am. Should we stick to godot or try out Nakama ?
Also, any criticise on this architecture appreciated, if any of you guys find our architecture bad for any reason and have a better solution, i’d appreciate to hear that.
My second question is a bit more simple:
Has anyone encountered serious problem using Nakama C# Client with Godot ?
I’m asking this because Nakama has a C# Client which i don’t doubt its efficiency, but with Godot i wonder if there wouldn’t be some compatibility problems or anything.
edit: Bonus question.
Which language do you prefer for your nakama server and why ? (lua, JS, Go)
Any insight greatly appreciated.