World Map
When starting a new game & between each Local Map, Players will be presented with a network of linked Map Nodes representing the different Local Maps which they can visit.
Initially a Fog of War will prevent the Players from seeing all the Map Nodes and how they connect. As they visit and then leave more Local Maps they will see more of the World Map and how the Map Nodes connect.
The scene is accessed from the Main Menu after a new game is set up and from the Local Map scene/s after the Players have completed the objective for leaving.
The Player controlling the Conductor Class Character will choose which Map Node to go to and the game will transition into a scene for the Local Map.
(Alternatively, the next LocalMap could be based on choosing a LevelExitGate)
Local Maps
The 200x200 meter/unit isometric areas in which all Players can explore and perform Actions with their Characters.
Within the engine this would be a single scene which would load assets dependent on the method by which the scene was loaded.
This scene will load once the relevant Map Node is selected from the World Map by the Player controlling the Character with the Conductor class. It can also load from the Ready Screen to resume an in-progress Campaign.
If the scene is loading a Local Map for a Map Node being visited for the first time within a Campaign it will load assets using a randomized algorithm, populating the scene with the Characters, the Train, Resource Nodes, AI Creatures and Terrain.
If the Map Node has been visited previously it will load the assets according to its previously saved configuration. It will then apply the Degradation Calculation based on the number of times the Local Map has been visited (to represent the decay being inflicted over time by the Fog)
Local Map Generation
To create the terrain for the 'Local Map' a script called LocalMapManager will be included in the scene, as well as a variant of the GridGenerator script used elsewhere in the game engine. Within the LocalMapGenerator will be a method which will take a variable for determining what kind of map (i.e, the biome) will be generated.
The 'Grid Generator' will create a 200x200 grid of LocalMapNode objects from a prefab and assign the LocalMapNode objects it instantiates into a list on the LocalMapManager.
The grid itself will be split into 'sectors' of 20x20 grid cells to help with controlling the distribution of certain elements such as the 'special resource nodes', 'puzzle nodes' and 'AnimalNPC' 'packs'.
The 'LocalMapManager' will map a path from one side of the grid to the other and instantiate the RailNode prefab terrain objects along that path. It will place the LevelExitGate object at the end of the path and instantiate the Train Cart objects at the start of the path.
Depending on the terrain type, the remaining LocalMapNode positions are then randomly selected for instantiating a minimum number of resource nodes and other terrain features, before the remainder are filled in with blank terrain.