2024-04-25 23:22 CEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0001803Spring engineGeneralpublic2010-01-26 12:39
Reportertvo 
Assigned Totvo 
PrioritynormalSeveritymajorReproducibilityhave not tried
StatusresolvedResolutionfixed 
Product Version0.81.0.0+git 
Target VersionFixed in Version0.81.0.0+git 
Summary0001803: terrain types aren't taken into account for path estimator hash
DescriptionBy some reasoning about the recent issue with different pathing data checksums (causing desync) with SirArturri's FolsomDamSpecial map, and some code browsing, I figured terrain types aren't taken into account for path estimator hash.

At least I can't find any dataflow from terraintypes to path estimator hash.

If this is indeed true, then modifying terrain types using map options is almost guaranteed to cause desyncs due to incorrect data for the path estimators.
Additional InformationRelated topics:

http://springrts.com/phpbb/viewtopic.php?f=13&t=21656
http://springrts.com/phpbb/viewtopic.php?f=12&t=21798

Map to which this applies:
http://www.springfiles.com/show_file.php?id=2473
TagsNo tags attached.
Checked infolog.txt for Errors
Attached Files

-Relationships
+Relationships

-Notes

~0004529

Kloot (developer)

Last edited: 2010-01-23 22:29

Looks like it. The PE writes the position of each block (sqrCenter) and the cost per vertex to a map's cache file. The latter is the cost of some precalculated path going through that vertex, and the shape of each path is of course influenced by the map's terrain types. So, if a game is played with map-options that modify terrain types enabled, the path data written (assuming no cache file was present yet) will store different vertex costs than it would if no options were active, but have the same hash. All clients would then have mismatching estimated paths on a second run with options disabled.

~0004543

tvo (reporter)

Last edited: 2010-01-26 11:47

confirmed using FolsomDamDeluxe (http://www.springfiles.com/show_file.php?id=2473)

Without typemap map option checked (after cleaning paths):
$ ls
FolsomDamDeluxeV3.2792779247.pe.zip FolsomDamDeluxeV3.2792779271.pe2.zip
$ grep -i "Pathing data" ~/.spring/infolog.txt
[ 0] Pathing data checksum: ecf7ba58

With typemap map option checked (after cleaning paths):
$ ls
FolsomDamDeluxeV3.2792779247.pe.zip FolsomDamDeluxeV3.2792779271.pe2.zip
$ grep -i "Pathing data" ~/.spring/infolog.txt
[ 0] Pathing data checksum: 34ba536c

=> same estimator files, different checksum

Will fix.

~0004544

tvo (reporter)

Fixed in http://github.com/spring/spring/commit/a13e09560a08247e8e48bcffbbed8b3bbbb09375

Also fixed same thing for water damage.
+Notes

-Issue History
Date Modified Username Field Change
2010-01-23 20:34 tvo New Issue
2010-01-23 20:35 tvo Additional Information Updated
2010-01-23 22:29 Kloot Note Added: 0004529
2010-01-23 22:29 Kloot Note Edited: 0004529
2010-01-26 11:03 tvo Additional Information Updated
2010-01-26 11:37 tvo Note View State: 4529: private
2010-01-26 11:38 tvo Note View State: 4529: public
2010-01-26 11:42 tvo Status new => assigned
2010-01-26 11:42 tvo Assigned To => tvo
2010-01-26 11:44 tvo Note Added: 0004543
2010-01-26 11:44 tvo Status assigned => confirmed
2010-01-26 11:47 tvo Note Edited: 0004543
2010-01-26 12:39 tvo Note Added: 0004544
2010-01-26 12:39 tvo Status confirmed => resolved
2010-01-26 12:39 tvo Fixed in Version => 0.81.0.0+git
2010-01-26 12:39 tvo Resolution open => fixed
+Issue History