Download

Generating multiple worlds

I am new to UE and would like to ask for advice on the architecture and approach in creating my game

I want to create a multiplayer 2D sandbox game with an infinite number of generated worlds
This is very similar to starbound.

  1. Where should I store the settings? Such as a list of textures of resources, blueprints for setting up generators, a list of characters? After all, this is usually configured inside the map, but should I create a new map for each new world?

  2. What class should run the generation of the world and place the playerstart? Is this a gamemode?

  3. Should every 2D resource block an Actor with replication?

  4. Any of your tips. I just don’t know which classes to use for my task.

Heya,

  1. DataTables are excellent for storing information. Anything that may have a number of variables (such as character/enemy stats).
    1b. If you just want to access resources easily, GameInstance is a single class that can be accessed anywhere. There you can setup a list of textures, blueprints, (even the above data tables so you can access them anywhere through GameInstance) etc. You can even store global variables and such, as the same one exists as long as the game is running.

  2. You can place that anywhere really. Directly on the level blueprints, on blueprints you’ve dragged into the scene, etc. GameMode exists in each level you set it to. It could work as well, though I’d suggest using a new blueprint actor you made. That way can you can easily make different blueprint generators or settings on how you see fit and aren’t tied to doing everything inside a single gamemode blueprint.

  3. Not too familiar with multiplayer sorry. Though I’d imagine it may be more efficient to generate a level-string, send that to all clients, and have each client build out the level itself. Rather than building the level and having to send each individual block to all the clients. (Unless it’s destructible environments, might require some other techniques to get it performing well)

  4. Would be best to just do some tutorials on youtube on making whichever game the video is teaching. Just to get familiar with what classes are best to use when. Then with that knowledge you can jump back into your project.