Load one specific Level per Match

Hello,

I’m looking to create an MMO-ish game, and one of my current questions is how to handle transitions between “maps.” For context, this will be a 2D platformer game, where each level acts as a separate piece. Using Nakama, my initial thought was to make each “map” its own individual match on the server, with users joining and leaving as they navigate the world. Each “match” would have its own local chat and a set of enemies that respawn according to the respective level’s timers.

I’m new to using Nakama, so I’m trying to validate whether this approach is feasible. Specifically, the server will need to create a match for every map at launch and then continuously validate and update the state of each level for the duration of the server’s lifetime.

At this point, I don’t foresee any interaction between maps, meaning the state of the previous or next map won’t affect the current map’s state.

I’m looking for some pointers, as I’m still very new to Nakama and game servers in general.

Thank you, everyone!

for the time being im not forseeing having interaction between maps, that means, the state of the previous or next map doesnt affect current map’s state

looking for some pointers here as, again, im very new at nakama and, game servers as a whole

Thank you everyone!

  1. Versions: Nakama 3.3.0, Docker, Godot SDK
  2. Server Framework Runtime language Typescript

Hello @CiscoStu,

The approach you describe should work well, however keep in mind that if a single map will have many players in it you may want to split it further into smaller areas and/or use area-of-interest tracking to determine to which areas (matches) the user should join/leave. If there’s too many players in a single match broadcasting messages to all players may be a problem. This of course also depends on your deployment resources.

If you’re indeed using Nakama 3.3.0 I strongly suggest you upgrade to latest (currently 3.23.0).

Best.

Thank you for your input!

in regards of some of the areas having at lot of players, that could be the case for areas considered as “cities” or towns" which there will be a couple, so this area-of-interest tracking interest me, never heard of it before

as of the version I inferred it by looking at the docker file I’m using which says heroiclabs/nakama:3.3.0

isn’t that the latest?

Thank you!

@CiscoStu that version is quite outdated, latest is 3.23.0, please use latest :). Where did you copy the docker file from? We may need to update it in our docs too.

I took that one from the Typescript runtime videos, let me go ahead and update it

Thank you!