Page 1 of 3
Friday Facts #344 - Tile transition collisions & Team Steelaxe speedrun record
Posted: Fri Apr 24, 2020 5:35 pm
by FactorioBot
Re: Friday Facts #344 - Tile transition collisions & Team Steelaxe speedrun record.
Posted: Fri Apr 24, 2020 5:36 pm
by orzelek
Yay found FFF
(Was searching from few hours.. )
Ohh better pathfinding. Does that mean that custom units like construction bots will have this enabled by mod?
And we can make a simple mod to enable it for biters?
Re: Friday Facts #344 - Tile transition collisions & Team Steelaxe speedrun record.
Posted: Fri Apr 24, 2020 5:45 pm
by dee-
That drone looks really cute ^^
And personally I think Biters should be first class citizens, too, especially if the hit is really a mere 5% #equalitymatters
Re: Friday Facts #344 - Tile transition collisions & Team Steelaxe speedrun record.
Posted: Fri Apr 24, 2020 5:57 pm
by Philip017
oh my anyone complaining about wanting their money back from it being too short, isn't playing it very well.
as you so eloquently put it, it took 200 hours of planning to get that 1:15:21 speed run. that in and of it's self an quite a accomplishment, congratulations.
as for the biters being able to cross the 1 tile gap, i am sure there will be quite a few on both sides of the fence for this one, so i hope that you make the decision well, but for me i have to say that i appreciate that they can not cross it. either way however when playing with mods, we can over come that with water fill and landfill to make the water gap larger or smaller, but i hope that we don't experience huge lag spikes when we perform these tactics to cross and block uninvited guests.
Re: Friday Facts #344 - Tile transition collisions & Team Steelaxe speedrun record.
Posted: Fri Apr 24, 2020 6:13 pm
by Xterminator
Great FFF as always!
I always love to hear about better path finding and movement. Personally I think biters should be able to cross anything that the player can.
Just wow in regards to the speed run record. That is mind blowing! I look forward to them getting it done in under 1 hour, and have confidence they can. A whole team made up the top speed runners is insane.
Great job guys!
Re: Friday Facts #344 - Tile transition collisions & Team Steelaxe speedrun record.
Posted: Fri Apr 24, 2020 6:16 pm
by bobucles
It's a good thing that planning stages aren't counted as part of the speedrun timing. Otherwise my very first 50 hour run would be in the top running.
But seriously, that takes not just the dedication of doing the run itself, but the countless hours of practice and training to reach the entry point where they can even begin to plan such an ambitious speed run. Good work!
Re: Friday Facts #344 - Tile transition collisions & Team Steelaxe speedrun record.
Posted: Fri Apr 24, 2020 6:20 pm
by Hiladdar
Congratulations on the speed run! Shows what prior planning can task specialization can do, in the game as outside the game.
Hiladdar
Re: Friday Facts #344 - Tile transition collisions & Team Steelaxe speedrun record.
Posted: Fri Apr 24, 2020 6:28 pm
by melind
This FFF I really enjoyed, both the new mods/pathfinding and the speedrun bits. (Also grats to Nefrums on getting under 2 hours in Any% !!)
Has anyone in the speedrunning community considered submitting to games done quick? I bet it would be a lot of fun to showcase it.
Re: Friday Facts #344 - Tile transition collisions & Team Steelaxe speedrun record.
Posted: Fri Apr 24, 2020 6:38 pm
by BattleFluffy
I'm not sure I understand why 5% speed is being lost?
My (perhaps wrong) understanding is like this:
There exists a "map" of traversable tiles - the tiles where bitters can or cannot go - which the pathfinder consults when obtaining a path.
When bitters pathfinding pays attention to these transitions, this "traversable tiles map" looks different, but nevertheless can still be distilled down to effectively a tile-by-tile map of where bitters can and can't go.
What is the technical reason that prevents the distillation of the former into the latter? It seems as though this process would only need to be done at the start of the game, or whenever landfill is placed, not every frame... so I don't understand from where this 5% slowdown comes from.
Re: Friday Facts #344 - Tile transition collisions & Team Steelaxe speedrun record.
Posted: Fri Apr 24, 2020 6:43 pm
by seludovici
Why don't you make the biter tile transition collision thing an optional check mark on the map generator, with it default to check-on for Deathworld.
Re: Friday Facts #344 - Tile transition collisions & Team Steelaxe speedrun record.
Posted: Fri Apr 24, 2020 7:05 pm
by Klonan
BattleFluffy wrote: ↑Fri Apr 24, 2020 6:38 pm
I'm not sure I understand why 5% speed is being lost?
My (perhaps wrong) understanding is like this:
There exists a "map" of traversable tiles - the tiles where bitters can or cannot go - which the pathfinder consults when obtaining a path.
When bitters pathfinding pays attention to these transitions, this "traversable tiles map" looks different, but nevertheless can still be distilled down to effectively a tile-by-tile map of where bitters can and can't go.
What is the technical reason that prevents the distillation of the former into the latter? It seems as though this process would only need to be done at the start of the game, or whenever landfill is placed, not every frame... so I don't understand from where this 5% slowdown comes from.
We don't store or cache any collision check data, it would be far too much data to store a map of the whole world for every combination of collision mask.
The check is done at runtime in the pathfinder, it gets a position, looks up the tile, looks up the prototype, and checks it if collides with the tile prototypes collision mask.
With the transition logic, it needs to lookup the adjacent tiles to check what transitions are active, and therefore if it collides with the transition or not.
Re: Friday Facts #344 - Tile transition collisions & Team Steelaxe speedrun record.
Posted: Fri Apr 24, 2020 7:14 pm
by BattleFluffy
I see, thanks for explaining that. :>
So the 5% slowdown is because of the extra time needed to look at those adjacent tiles, to check whether this tile is therefore traversable or not.
What is the reason for storing/reading the data in that way, instead of storing a representation of the world with each tile a boolean either true or false, traversable or not traversable?
I understand it's necessary to look at adjacent tiles in order to know what kind of transition to display, but for bitter pathfinding this seems unnecessary?
Re: Friday Facts #344 - Tile transition collisions & Team Steelaxe speedrun record.
Posted: Fri Apr 24, 2020 7:20 pm
by programaths
One reason is that more checks means more UPS usage for the biter pathfinding, another is that we didn't think it was necessary
That's because you deliver!
Re: Friday Facts #344 - Tile transition collisions & Team Steelaxe speedrun record.
Posted: Fri Apr 24, 2020 7:31 pm
by Klonan
BattleFluffy wrote: ↑Fri Apr 24, 2020 7:14 pm
I see, thanks for explaining that. :>
So the 5% slowdown is because of the extra time needed to look at those adjacent tiles, to check whether
this tile is therefore traversable or not.
What is the reason for storing/reading the data in that way, instead of storing a representation of the world with each tile a boolean either true or false, traversable or not traversable?
I understand it's necessary to look at adjacent tiles in order to know what kind of transition to display, but for bitter pathfinding this seems unnecessary?
A biter can have any size of collision box, and any collision mask, checking for tile collision isn't a simple boolean.
Even then, storing a boolean for each tile on the map would still add up to a lot of extra memory to thrash through, for only a small performance gain.
With normal biters, most of the time isn't even on tile collisions, but entity->entity collisions, which are far more complex and take most of the time.
For instance we can bite through an enemy wall, but won't bite through a friendly wall, so we need to check the force of walls when trying to find a path.
Re: Friday Facts #344 - Tile transition collisions & Team Steelaxe speedrun record.
Posted: Fri Apr 24, 2020 7:32 pm
by posila
BattleFluffy wrote: ↑Fri Apr 24, 2020 7:14 pmWhat is the reason for storing/reading the data in that way, instead of storing a representation of the world with each tile a boolean either true or false, traversable or not traversable?
Because tile might be traversable for one thing but not traversable for different thing. Depending on collision mask of the tile and of the unit that tries to traverse it. It's true in base game all units have the same collision mask, and if we could assume this is always true things could be made simpler, but in that case Klonan wouldn't be able to make a mod that crashed pathfinder, and we wouldn't have a topic for this Friday
There is second part to this ... the transitions make tiles traversable, non-traversable or traversable through one of the corners (entity can "cut" through left-top, right-top, right-bottom, or left-bottom corner), so there is also small bit of logic in checking the entity is still only on the "allowed part" of the tile.
Re: Friday Facts #344 - Tile transition collisions & Team Steelaxe speedrun record.
Posted: Fri Apr 24, 2020 7:58 pm
by havvy
Why not make it so that if water is between two tiles like that, it becomes shallow water?
Re: Friday Facts #344 - Tile transition collisions & Team Steelaxe speedrun record.
Posted: Fri Apr 24, 2020 8:19 pm
by zero318
Perhaps the pathfinding changes could be enabled for biters on death worlds? Considering that the whole point of the mode is to increase the challenge of the biters, it would make sense for them to be a bit smarter.
That also mitigates some of the UPS concerns since the majority of the players who are building megabases are already not doing so on death worlds.
Re: Friday Facts #344 - Tile transition collisions & Team Steelaxe speedrun record.
Posted: Fri Apr 24, 2020 8:43 pm
by EnerJi
Slightly OT, are there any plans to update the table of 'things remaining before 1.0' a la this prior FFF:
https://factorio.com/blog/post/fff-282
I find it very interesting to be able to view progress at a high level like that even when a certain area is not the subject of the current FFF.
Separately, can anyone tell me whether the blueprint improvements have landed in 0.18? I was planning to hold off until 0.18 reaches stable, but I could be tempted to upgrade to experimental if blueprints are massively improved. I'm finally at a point where I have lots of robots and can really leverage blueprints, and I really am struggling with how to use them effectively.
I'm sure I could figure them out, eventually, but I almost feel like it's not worth my time given the planned blueprint improvements.
Re: Friday Facts #344 - Tile transition collisions & Team Steelaxe speedrun record.
Posted: Fri Apr 24, 2020 9:00 pm
by coppercoil
Klonan wrote: ↑Fri Apr 24, 2020 7:05 pm
We don't store or cache any collision check data, it would be far too much data to store a map of the whole world for every combination of collision mask.
How about some
temporary chunk-level cache that is released quickly when it's not used within X ticks?
Re: Friday Facts #344 - Tile transition collisions & Team Steelaxe speedrun record.
Posted: Fri Apr 24, 2020 9:41 pm
by Oxyd
coppercoil wrote: ↑Fri Apr 24, 2020 9:00 pm
Klonan wrote: ↑Fri Apr 24, 2020 7:05 pm
We don't store or cache any collision check data, it would be far too much data to store a map of the whole world for every combination of collision mask.
How about some
temporary chunk-level cache that is released quickly when it's not used within X ticks?
You could view
the chunk component contraction used by the pathfinder as a kind of a crude collision check cache. It tells you whether you can go from one chunk to another, and that information is stored and re-used.