TorchCraftAI icon indicating copy to clipboard operation
TorchCraftAI copied to clipboard

I had trouble running Cherrypi

Open q228288040 opened this issue 6 years ago • 5 comments

I'm a computer novice. It's too difficult for me to run Cherrypi properly. Is there a detailed running tutorial for beginners?

When I run cherrypi, this happens :

C:\windows\system32>F:\StarCraft\bwapi-data\cherrypi.exe -rlbp_model bwapi-data\AI\rlbp_model.bin -modules CreateGatherAttack,Strategy,GenericAutoBuild,RLBuildingPlacer,Builder,Tactics,SquadCombat,Scouting,Gatherer,Harass,StaticDefenceFocusFireModule,RecurrentBos -hostname 127.0.0.1 -bos_model bwapi-data\AI\bos_model.bin -bos_min_advantage 0.08 -vmodule modules=1 -bos_start 6 -bos_start_vs_rush -bos_model_type lstm -bos_num_layers 1 -bos_hid_dim 2048 -bos_bo_input I05696/XXXXX [main.cpp:38] Connected to TorchCraft server at 127.0.0.1:11111 I05696/XXXXX [state.cpp:435] Enemy: Shelak Tribe playing Protoss I05696/XXXXX [state.cpp:439] Map: iCCup Fighting spirit1.3.scx I05696/XXXXX [state.cpp:440] Game is being played at LF6 I05696/XXXXX [banditconfigurations.cpp:160] Using default AIIDE bandit configuration F1007 18:20:56.238013 5696 main.cpp:92] Exception: Read folder does not exist: ./bwapi-data/read F05696/XXXXX [main.cpp:92] Exception: Read folder does not exist: ./bwapi-data/read *** Check failure stack trace: *** @ 00007FF7152F7125 private: static struct cereal::detail::bind_to_archives<class torch::optim::SGD,struct cereal::detail::anonymous namespace'::polymorphic_binding_tag> & __ptr64 __cdecl cereal::detail::StaticObject<struct cereal::detail::bind_to_archives<class torch::opt @ 00007FF7152F663C private: static struct cereal::detail::bind_to_archives<class torch::optim::SGD,struct cereal::detail::anonymous namespace'::polymorphic_binding_tag> & __ptr64 __cdecl cereal::detail::StaticObject<struct cereal::detail::bind_to_archives<class torch::opt @ 00007FF7153238FD private: static struct cereal::detail::bind_to_archives<class torch::optim::SGD,struct cereal::detail::anonymous namespace'::polymorphic_binding_tag> & __ptr64 __cdecl cereal::detail::StaticObject<struct cereal::detail::bind_to_archives<class torch::opt @ 00007FFC9B9F1030 (unknown) @ 00007FFC9B9F3298 _is_exception_typeof @ 00007FFCB1C241C3 RtlCaptureContext @ 00007FF7151936DE private: static struct cereal::detail::bind_to_archives<class torch::optim::SGD,struct cereal::detail::anonymous namespace'::polymorphic_binding_tag> & __ptr64 __cdecl cereal::detail::StaticObject<struct cereal::detail::bind_to_archives<class torch::opt @ 00007FF715317C85 private: static struct cereal::detail::bind_to_archives<class torch::optim::SGD,struct cereal::detail::`anonymous namespace'::polymorphic_binding_tag> & __ptr64 __cdecl cereal::detail::StaticObject<struct cereal::detail::bind_to_archives<class torch::opt @ 00007FFCB01F1FE4 BaseThreadInitThunk @ 00007FFCB1BEEF91 RtlUserThreadStart

q228288040 avatar Oct 07 '19 10:10 q228288040

Hi @q228288040

BWAPI StarCraft bots are typically run with from a working directory with the following directory structure:

./ # This is the working directory
./bwapi-data/
./bwapi-data/AI/[Bot files go here, like cherrypi.exe]
./bwapi-data/read/
./bwapi-data/write/

So, to resolve this error:

  • Create these directories
  • Put cherrypi.exe in ./bwapi-data/AI/
  • Run cherrypi.exe from . (ie. run ./bwapi-data/AI/CherryPi.exe) The purpose of these directories is described at https://www.cs.mun.ca/~dchurchill/starcraftaicomp/rules.shtml#Persistent%20File%20I/O under "Persistent File I/O".

Thanks for raising the question. We should document or automate this setup step.

dgant avatar Oct 07 '19 17:10 dgant

Thank you for answering my question.

After I revised the catalog, this still happened. Then the game gets stuck.

F:\StarCraft>F:\StarCraft\bwapi-data\AI\cherrypi.exe -rlbp_model bwapi-data\AI\rlbp_model.bin -modules CreateGatherAttack,Strategy,GenericAutoBuild,RLBuildingPlacer,Builder,Tactics,SquadCombat,Scouting,Gatherer,Harass,StaticDefenceFocusFireModule,RecurrentBos -hostname 127.0.0.1 -bos_model bwapi-data\AI\bos_model.bin -bos_min_advantage 0.08 -vmodule modules=1 -bos_start 6 -bos_start_vs_rush -bos_model_type lstm -bos_num_layers 1 -bos_hid_dim 2048 -bos_bo_input I02928/XXXXX [main.cpp:38] Connected to TorchCraft server at 127.0.0.1:11111 I02928/XXXXX [state.cpp:435] Enemy: SAIDA playing Terran I02928/XXXXX [state.cpp:439] Map: iCCup Fighting spirit1.3.scx I02928/XXXXX [state.cpp:440] Game is being played at LF6 F1010 18:06:17.718891 2928 main.cpp:92] Exception: Expecting fresh game in Player::init(), but current frame is 2 F02928/XXXXX [main.cpp:92] Exception: Expecting fresh game in Player::init(), but current frame is 2 *** Check failure stack trace: *** @ 00007FF7D4EA7125 private: static struct cereal::detail::bind_to_archives<class torch::optim::SGD,struct cereal::detail::anonymous namespace'::polymorphic_binding_tag> & __ptr64 __cdecl cereal::detail::StaticObject<struct cereal::detail::bind_to_archives<class torch::opt @ 00007FF7D4EA663C private: static struct cereal::detail::bind_to_archives<class torch::optim::SGD,struct cereal::detail::anonymous namespace'::polymorphic_binding_tag> & __ptr64 __cdecl cereal::detail::StaticObject<struct cereal::detail::bind_to_archives<class torch::opt @ 00007FF7D4ED38FD private: static struct cereal::detail::bind_to_archives<class torch::optim::SGD,struct cereal::detail::anonymous namespace'::polymorphic_binding_tag> & __ptr64 __cdecl cereal::detail::StaticObject<struct cereal::detail::bind_to_archives<class torch::opt @ 00007FFC9B9F1030 (unknown) @ 00007FFC9B9F3298 _is_exception_typeof @ 00007FFCB1C241C3 RtlCaptureContext @ 00007FF7D4D436DE private: static struct cereal::detail::bind_to_archives<class torch::optim::SGD,struct cereal::detail::anonymous namespace'::polymorphic_binding_tag> & __ptr64 __cdecl cereal::detail::StaticObject<struct cereal::detail::bind_to_archives<class torch::opt @ 00007FF7D4EC7C85 private: static struct cereal::detail::bind_to_archives<class torch::optim::SGD,struct cereal::detail::`anonymous namespace'::polymorphic_binding_tag> & __ptr64 __cdecl cereal::detail::StaticObject<struct cereal::detail::bind_to_archives<class torch::opt @ 00007FFCB01F1FE4 BaseThreadInitThunk @ 00007FFCB1BEEF91 RtlUserThreadStart

q228288040 avatar Oct 10 '19 10:10 q228288040

CherryPi.exe should be started before the game begins. If you're running StarCraft normally, you should have CherryPi.exe already running when you click the Start button and see the countdown in the game setup lobby. Was that the case when this error occurred?

dgant avatar Oct 10 '19 13:10 dgant

yes

q228288040 avatar Oct 11 '19 04:10 q228288040

I've asked around a bit and nobody knows what would cause this to come up. The symptom is that a couple of game frames have passed before main.cpp:92 is called, but it's unclear why that would happen.

dgant avatar Oct 15 '19 19:10 dgant