It'd be great if you had a separate sub-site, where you can give it a seed (if you like the map), but let it iterate through different settings for mex and reclaim.
Promotions team
Posts
-
RE: MapGen Selection Tool/Website
-
RE: Faster Way to Check Terrain Pathability
Yes, a leaf is one of the squares. The colors of a connected area are the labels. A tree is the equivalent of a cell in the imap grid. The imap grid is often a coarse 16x16 grid across the entire map, used by AIs for threat analysis. Each tree can have one or more sections, one for each label (color) in the area. In practice, the air grid is equivalent to the imap grid.
You can loop over all labels, filter on layer, then compute the area to find all water regions and then filter on the Area field to remove small ponds that you can't use for your purpose.
-
RE: Is there a way to copy text from the lobby?
Soon maybe you can do this in-game: https://github.com/FAForever/fa/pull/7098#issuecomment-4322141766
-
RE: Faster Way to Check Terrain Pathability
I'm trying to generate a list of pathable spawn points for the mod AI Wave Survival.
Sometimes, players use a map that has impassable terrain or water near where they set the HQ Spawn points. Currently, spawn points are chosen at random around the HQ to spawn in units, meaning units can get stuck or immediately die if they are a land unit that spawns on water. So, I am adding tables of approved spawn points that will alleviate the issue.
Like I mentioned, the scripts run at the start of the game, so don't really affect performance much. Just seeing if I can optimize them a bit.
Thanks!
The navigational mesh only checks for pathability, not buildability. But it's often quite close. What may work is this: loop over all the compressed trees of the land layer, then loop over all the sections of a compressed tree. A section has an
Areafield, which helps you differentiate between small and large area's. The leaves of an area are sorted from large to small. If an area matches your requirements, pick the largest leaf and compute its center. Use that as a possible candidate for a spawn point.You could then further refine it by checking the size of the leaf itself. If it's really large, then you may want to pick a random point in the leaf to make sure two games never look identical and to break the feeling of the 'grid'.
Relevant references:
- Class of
NavGrids: https://github.com/FAForever/fa/blob/develop/lua/sim/NavGenerator.lua#L62-L68 - Class of
NavGrid: https://github.com/FAForever/fa/blob/develop/lua/sim/NavGenerator.lua#L185-L189 - Class of
NavTree: https://github.com/FAForever/fa/blob/develop/lua/sim/NavGenerator.lua#L413-L420 - Class of
NavSection: https://github.com/FAForever/fa/blob/develop/lua/sim/NavGenerator.lua#L404-L411
You can then further refine the set of leaves by checking whether they can (not) path to where the players spawn, or use that as input to determine what the spawn point should initially spawn (amphibious + air vs land, etc). Some utilities for this are in
NavUtils.lua. Or use the area as input, for 'small' and 'large' spawn points.All of this can run in less than 2-5ms, meaning you could technically even do it dynamically. But I do not think that would be necessary for your case.
There's also some debug utilites to make drawing out the leaves you picked easier. See also the following for inspiration:
- Class of
-
RE: The ReUI Slop department - minigames and other fun stuff
Maybe I am missing the point, but why would you want to add (types of) gambling into this game?
-
RE: Faster Way to Check Terrain Pathability
@rama can you tell us what the end goal is?
@maudlin27 is spot on. Have you tried the debugging utilities of the navigational mesh? It can help you understand the output. In the hotkey menu, search for these:

The highlighted will open this:

Hit the generate button at the bottom. Then use the icons for each layer to help understand the output. Each label has its own color. When the labels of position A and B match then you can be sure that the average unit can get from A to B. This is what
CanPathTois doing. I don't feel like you need to cache this. This computation is very cheap and is in some sense already cached by the navigational mesh.Note that this navigational mesh is an approximation. The engine has its own mesh that we can't access. But it's quite close as far as I am aware
. -
RE: Idea: A new game project that follows the ideas of Sup Com FA and FAF
I see... The association's position is stated very clearly.
The association did not respond to your ideas. In this topic, no board member participated at this point. And no official statement was made. This also applies to the majority of your other topics with ideas in them.
I think @indexlibrorum is telling you to approach it like Caliber, where Caliber backs up his ideas with a functional mod that implements them:
- https://forum.faforever.com/topic/10019/not-the-novax-again/1
- https://forum.faforever.com/topic/10037/chicken-storm/1
And at this moment changes to the Novax are being discussed on Discord by members of the balance team based on those changes:
I can only encourage you to try to do the same.
-
RE: Chicken Storm
Because as a mechanic the storm sucks, its only real effect on the game is slow you down, ok a storm now exists and we just have to wait 30 seconds before we can move on with the game. or to reward brain rot suicide tactics.
I guess that boils down to what this discussion is about. It's not about the damage. Even if it was two times more or less, you'd not want to walk through it. Instead, I think it is about slowing down the game by denying an area for 30 seconds.
Maybe another direction to look at is the duration of the storm, instead of emphasizing the damage output. The damage output is, uuhh - not quite reliable. But its ability to deny an area is. What if the storm only lasts 10 seconds? Would that solve your problems with it?