I was going to make a good-sized top-down world with a city covering most of it, but this world seems too large to just keep using tile sets and designing it. At first I thought to just put each of the different sections of the map into its own scene, but adding apartments, factories and what-not will make this map massive. Procedural generation of an open-world concept game sounds like the better option. Thing is, I don't even know where to start? Some documents claim there are even nodes for PG in 3D games, but all I need is something to fill a grid of certain dimensions. Anything on Open-Concept would be appreciated as well, as when I used 3.x it didn't have that already built into Godot, and I get the feeling it still isn't.

12 days later

How does one deactivate sections of the map to avoid slower processing? It's not exactly a Fallout map, but it isn't an Exiled Kingdoms map in size, either. Here's a very tiny piece of one of the sections of the map- the flooded camp ground. It's clearly not finished yet as things are not just drenched yet- but this part doesn't even cover the lodges, the broken parts of the fences that let in wild animals, the horror aspects, the grounds for tents, outdoor activities, etc. This is mostly the path to the pace, the driveway, part of the city garden (currently resembling a field), and the entrance to the pond and the camp itself.

If anyone is interested, it's supposed to be analogue horror, literally right after all heck broke loose. Easy to get lost and die here.

  • xyz replied to this.

    Nerdzmasterz How does one deactivate sections of the map to avoid slower processing?

    Break it down into separate scenes and load/unload as needed.

    The way my mind is seeing this is, the player has a mammoth circle collision shape around it, and each section has its own box collider all around it. If the player's circle is within the collision shape of a map fragment, load the fragment, and unload it when it is not being used at the time?

    • xyz replied to this.

      Nerdzmasterz You don't even need colliders. Simply determine which scenes are needed by the player's position in the world.

      I'm a bit surprised this isn't a feature yet... But anyways, so I just calculate the distance between the player and, 2D nodes that are intended to load up specific scenes? How big/small do these fragments have to be to avoid any processing issues?

        Nerdzmasterz There are really no "rules" on the size. It depends on how big is your world, how fast the player moves, how much data/complexity is in each chunk, visibility distance (for 3d) etc. You should adapt it to your specific game needs. Test several options and see what works the best.

        If your world is completely procedural, and everything is generated by pseudorandom sequences from a single seed, you can continuously "stream" the world surrounding the player. So for example, when player moves one tile to the left, the next tile column is generated at the far left side of the "existing" world while at the same time a tile column is destroyed at the far right side of the world, keeping the number of "live" tiles in the world always constant. Note that this is basically the same approach as chunk loading, just that the chunk is only one tile wide, and is generated on the fly instead of loaded.