Neroxis Map Generator

@nine2

@nine2 said in Neroxis Map Generator:

On some maps it is hard to tell where you can walk or not, which is critical for early build decisions.

For example this replay I realise early on that there is only one chokepoint on the map so I dont defend the expansion even though it looks open. The other player doesnt realise the choke points, and at minute 7 is defending an expansion that is not under threat - and has less units than me in the middle. So I can get an advantage that is game defining but not fun at all. https://replay.faforever.com/13282178.

What would be cool is if there was a way to visualize where you can walk.

It is possible to generate a useful 'strategic overlay' image where red is unpathable, blue is underwater, etc. Then you can put the image on the screen as a decal and change the LOD so that it only appears when totally zoomed out. In this screenshot you can see one i made manually. It's not perfectly positioned but you can see its marking red & yellow where you cant walk and white where you can walk.

unknown.png

Not sure if its possible but perhaps a shortcut key could toggle the decal on and off.

This feature would be useful for all maps to be honest (including non mapgen) but with mapgen its much more important because you dont know the map before you play it. It's no fun to spend 15 minutes on a dud game because one player fatally misunderstood the map.

this looks decent af

queuing with a newbie to show him the beauty of tmm and meeting tagada be like:
https://www.youtube.com/watch?v=yLcRpdZ0Xb0&ab_channel=Tomoko

It has been a while since I last updated here's what has been in progress and what is going to be worked on in the future. As of this post the generator is currently at Version 1.2.4

As always feel free to leave feedback in this thread or also get in touch with me at the map generator discord: https://discord.gg/XZW62UdYfm

What's been done:

New Generation Types
Two additional types of map generation have been added to allow for three different ways of generating maps. The types are described below.

  • Casual - This method is for casual gameplay with the generator. When used the generator will use the settings specified by the client for the various options. Additionally the generator will produce a preview of the map that the host can view from the client before launching the game

  • Tournament - This method is for when the generator is used in tournaments. All the options in the client will be forced to be random and there will be no preview visible for the host in the client, however the preview will be visible in the game lobby. This is so that the player hosting the game does not have an unfair advantage as to what the map will look like. Additionally the time that the map is originally generated at is added to the map description so that players can verify that the map was not generated at an earlier time. The map generation process in this case depends on the time the map was originally generated so any attempt to falsify the generation time will result in a different map being generated.

  • Blind - This method is for when players want the full random experience. This method of generation will also replace the in game preview with the dice icon so that players will not see the map until the game is launched. This method will also use the timestamp similar to the tournament method.

Biome/Texture Overhaul
The biomes that the map generator uses have been entirely reworked. Previously generated maps only used 4 out of 8 possible textures and they now currently use all 9 available textures for map detail. The textures are placed according to the map features such as slope, height, and terrain type so that can both look more realistic as well as better communicate the terrain to players in game. Additionally individual props have been specified to complete the theme of the map. This means no more evergreens in the desert. There are currently 9 biomes that the map generator can choose from. 3 Red, 3 Green, 1 Snow, 2 Yellow, 1 Desert.

Additional biomes can be added as well. If are interested in contributing a biome the following section describes how each texture layer is used.

To submit a biome you can create a map which uses textures as defined. Send the map files to me along with a name for the biome and it can be tested and added to the list of biomes upon approval. Please send me the map files and do not upload the map to the vault

Additionally you will need to specify props that should be used with the map as well. The generator currently has three categories of props that should be used. tree groups, rocks, and boulders. Rocks are the smaller rocks seen around cliffs or fields. Boulders are the larger props.

The layers are used as follows:

  • Layer 0: Base layer - used for sea level ground.
  • Layer 1: Ground Accent - used to accent land not on plateaus
  • Layer 2: Plateau Accent - used to land higher than sea level
  • Layer 3: Slopes - used to texture ramps
  • Layer 4: Slopes Accent - used to accent slopes
  • Layer 5: Steep Hills - used to texture high slope areas
  • Layer 6: Beach Texture - used to texture the beaches
  • Layer 7: Rock - used to texture impassable terrain
  • Layer 8: Rock Accent - used to accent impassable terrain

Terrain Generation Overhaul
The terrain generation has been reworked to produce more realistic looking mountains and plateaus while also introducing more variety to the types of maps that can be generated.Additionally new symmetries have been added as well.

Civilians
Civilians bases have been added as a possibility to the map generator. Currently there are 4 civilian bases possible, 2 neutral and 2 enemy. If you would like to contribute a civilian base layout you can design a base on a map and send the map file to me for review and approval. There are not strict guidelines however it should allow for reasonable gameplay if it were to be placed anywhere on the map.

AI Markers
All generated maps should now include AI Path Markers.

Prop Placement
Props are now placed more randomly so you will not see perfect grids of rocks.
Trees and cliff rock will also have greater appearance variety from map to map.

What's to come (planned but not yet implemented):

  • FFA and multi-team maps - Allow for generation of symmetric and asymmetric FFA maps as well as arbitrary number of teams (e.g 3v3v3)
  • Additional generation options (e.g. reclaim, mex count, ...)
  • Improved 20km map generation

Now the only thing left for my wet dream to come into existence is Blind mapgen mode + unexplored mode ingame. If anyone manages that, ill host a doubleblind tourney

Ban Anime

I have been looking into whether it is possible to do an unexplored terrain version in the map scripting since unexplored fog of war was removed in the game from the OG supcom.

@Blackheart said in Neroxis Map Generator:

Now the only thing left for my wet dream to come into existence is Blind mapgen mode + unexplored mode ingame. If anyone manages that, ill host a doubleblind tourney

Progress
https://www.youtube.com/watch?v=evXdLnIBvMY

Nice, already a proof of concept! (Last time I asked, everyone said its impossible...) Assuming you dont already look into it, a few points:

  • The "square resolution" needs to be increased (lag problems?)
  • Looks like you only reveal a square once its fully in vision, maybe should fine tune that a bit to reveal when x% of it is in vision, or if vision "scratches" the border of a black square (maybe higher amount of squares fixes this already)
  • Possible to hide mex markers until they are revealed?

Ban Anime

The square resolution is indeed a lag issue as well as a render issue. Currently I am achieving this using decals which are limited to rendering 4096 in game at a time. Additionally lag issues with checking units around each decal the more you have with the finer resolutions.

Currently squares are revealed based on if a unit is within a certain range of the center of the square. I am trying to use the vision radius however there are lag issues with computing this for every unit at the moment.

Working on hiding the resource markers.

I haven't yet tested with another player yet but hopefully will work with no desyncs. The other player in the video is AI.

I have now gotten a version that I think is in a state to be released soon. See here https://youtu.be/LaxFmVwHI8o

The resolution is limited by the engines capability to render the map so what you see is most likely the limit. If I tried to go lower there were visual bugs under various conditions and this was the lowest that worked in all the cases I tried.

Additionally I released a mod onto the vault that should be used in conjunction with these maps called Unexplored Maps. This supplements the map by performing some work I could not do in the map script alone. It is not necessary per say but it does ensure a certain degree of fairness between players.

As seen in the video, props, mexes, and hydros dynamically spawn in when discovered so that you cannot see them until you find them.

And a working replay of it in action https://replay.faforever.com/13537011
This game was run without the accompanying mod

Quick Update:

With Client Version 1.4.0 Mex and Reclaim options have been added. Additionally the Unexplored option was added so that players can generate their own unexplored maps similar to the examples I posted above.

Screenshot (200).png

Just tried the unexplored mode - 2 things that would definitely need to be changed:

  • Be more gracious with revealing black tiles, it happens that a scout has plenty of a tile in vision but it doesnt reveal it till it goes way in the tile
  • When you zoom out the mex symbols dont get rendered properly (maybe a side effect of hiding them on minimap?), makes it very hard to find mex that you explored

I think if those 2 things are addressed, it would already be quite playable

Ban Anime

Yes if you are playing with the Unexplored maps mod it turns off the resource overlay. The main purpose of this is to stop the mexes and resources discovered by then enemy team from appearing on the black areas you have not yet discovered. There is no way I have found yet to hide the resource overlay under the black square and it appears as soon as the resource is generated.

So options are to have the resources visible once discovered by any player (currently what happens playing without the mod)
Make the resource decals bigger so they can be seen from full zoom out

Can't you draw the decal yourself manually, and ditch the out of the box resource overlay

No because that icon isn't a decal as it doesn't scale with zoom.

Also all decals drawn will be under the black squares.

I do manually add the on map decals but they do not scale with the zoom so look tiny and are hard to see fully zoomed out.

Hmm well you could manually scale them with zoom - it would just be pretty budget - I don't think you can scale at the same framerate as you zoom in. But the black squares are already pretty budget innit

As a quick update. I just released version 1.4.0 and this includes a major overhaul to the backend code to introduce more variation to the generated maps. The main change is that the map generator can now work on the basis of map styles.

The current map styles are DEFAULT, ONE_ISLAND, BIG_ISLANDS, SMALL_ISLANDS, CENTER_LAKE, VALLEY, DROP_PLATEAU, LITTLE_MOUNTAIN, MOUNTAIN_RANGE at the moment there is no UI element in the client to generate use these styles specifically so this is more informational. But hopefully this enables greater variety and allows it to be easier to add other styles in the future as well.

If you have ideas for styles of maps feel free to reach out to me and we can see about bringing it in to the map gen.

As an update if you have client version 1.4.5 or higher then you can generate asymmetric maps. To do so set the number of teams in the generate UI to 0. This will produce an asymmetric map with the number of players you select.

More generally you can also create symmetric 3v3v3 or 1v1v1v1. You just need to set the number of teams to however many teams you want and then set the number of players. Example num teams at 3 and num players at 9 results in 3v3v3 map.