Replay not matching locally


#1

I am trying to simulate games locally where my bot errors out. Basically parses hlt online (where i timeout) for each players moves and replicate the exact game in my local machine with my bot's logs to determine the issue.

Unfortunately, the game does not act the same way, even though each moves are done exactly the same. For example, parsing player 1's (lethargi) first 5 moves are:

[ "t 3 7 142" ],
[ "t 4 7 136", "t 3 5 143", "t 5 7 150" ],
[ "t 4 7 141", "d 3 4", "t 5 3 146" ],
[ "d 4 4", "d 5 4" ],
[ "t 4 7 186" ],

As you can see in the replay, his ship id 4 does not actually dock planet 4, instead it moves to planet 11. But if i do these 5 moves in my local machine, his ship id 4 will actually dock planet 4. I downloaded the latest hlt files for python3 from github and still has the same results. The only difference i can think of is the halite.exe is updated on the server? If so, is it possible to get the latest halite.exe somewhere? I recompiled halite.exe using the environment code from github but I still have the same results. Anybody knows what the difference is?

The online game replay is below:

https://halite.io/play/?game_id=8289516&replay_class=0&replay_name=replay-20180118-051035%2B0000--4204081302-288-192-1516252213

my hlt file generated locally is below:

replay-20180118-114959-0500--4204081302-288-192-60411.hlt (112.7 KB)

Since his ship id 4 docked right away, it messed up the order/owner of ship ids generated, thus the parsed commands/moves is no longer accurate.

Each players parsed moves from the online hlt file are below. Can iterate through each moves and send to halite to simulate. Let me know if you get the same result as mine or the servers. I updated the extension to .hlt since it wont let me upload a .txt in here. The game map is 288x192 with seed 4204081302

p1.hlt (8.0 KB)
p2.hlt (22.8 KB)
p0.hlt (49.4 KB)
p3.hlt (65.1 KB)


#2

I think this might help your situation:

Fohristiwhirl put this together for the exact goal of feeding your bot board states from the replay and having it react to them so you can reproduce errors in your bot that happened online.