+1 vote

Game details:

  • 2D
  • Top-down
  • Space theme
  • Multiplayer
  • Click-to-move w/waypoint marker

I've been working on this game for 2+ years (very, very, casually). It's really just a side hobby project that I will probably never finish.

I'm to the point where I have finally implemented the beginnings of multiplayer code, and I have separate codebases/repos for the game client and server. The client can currently connect to the server and there is a "refresh_players" function to populate players in a node client-side.

While not naive enough to think I can build an MMO, I do want to be able to support up to say 16-32 players or so. Part of the gameplay mechanics I was hoping to implement was instancing of levels/maps so that I could have both pre-generated/pre-designed levels, as well as implement PCG.

I immediately got stumped on the fact that there is a single scenetree, so from a server perspective I cant figure out how I could support the server creating new level instances (or say player housing) because it would be rendering it all on the same scenetree.

Any creative ideas on how to tackle this?

One I had a moment ago was if I used layers to separate levels so that collisions only happen on the corresponding level. However, none of this seems like a truly scalable solution.

Has anyone tackled this with Godot? My only other thought was somehow implementing some infrastructure architecture to spin up new game instances in Docker and have the client switch connections.

For now, I'm going with one bigass map. I'm not sure if there are any limits like how far out x,y can go. That also means the server will have more and more objects to process.

in Engine by (30 points)

Please log in or register to answer this question.

Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read Frequently asked questions and How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to webmaster@godotengine.org with your username.