Nakama Authoritative Example/Tutorial?

Hello,

We are looking for a game server solutions and I’m reading, trying to understand every aspect of the Nakama.
I have a few simple questions. Sorry if they sound lame. I’m simply a beginner…

  • I couldn’t find any complete Authoritative server tutorial/example (simple example would be super fine). I’ll be appreciate if you have have suggestions?
  • Is it possible to use and manage headless authoritative servers(maybe by using Agones) with Nakama or we should embed everything into the go/lua code as modules?
  • If we had to embed everything into Nakama, what is the suggested project structure/workflow for golang or lua? (Since Nakama doesn’t support hot reloading, wouldn’t that hard to develop this way?)

PS: Currently I’m developing a Nakama client for Defold game engine by using Nakama C++ client sdk. I’ll share it when it is done.

Thank you

Hi there!

The best public authoritative example right now is in the docs (Lua or Go). These examples keep track of a list of match participants and relay messages automatically, but you can see how to use the match state for in-memory work, route messages, and so on. More in-depth examples are planned but as you can imagine are very time-consuming to write.

You can use anything you want, the runtime allows you to extend the server behaviour as you see fit - this includes calling out to external systems or services for some part of your game. We usually recommend you do as much as possible in Nakama to save time and keep complexity/cost down, but it’s up to what your project requires.

We’ve had requests for hot reloading but it’s a non-trivial feature. There’s significant complexity in handling code changes that may have associate match handlers still running for example. You also need to recompile any Go runtime code as an extra step in between. In practice the server restarts in a couple of seconds so hot reloading has never been a blocker for any project’s development.