kimbring2 / MOBA_RL

Deep Reinforcement Learning for Multiplayer Online Battle Arena
MIT License
74 stars 9 forks source link

ValueError: There is already a bots directory #3

Closed lvnpz closed 1 year ago

lvnpz commented 2 years ago

After downloading and decompressing 'dota2_client_5110' into one folder, I put it the under '~/.local/share/Steam/steamapps/common' and change the path in main.py as below,

game_path = os.path.expanduser("~/.local/share/Steam/steamapps/common/dota2_client_5110/game")

and set the path for run.sh in dotaservice.py as below,

   args = [
        script_path,
        '~/.local/share/Steam/steamapps/common/dota2_client_5110/game/dota.sh'

Then I have the output in the terminal indicating:

ValueError: There is already a bots directory (/home/cloudshine/.local/share/Steam/steamapps/common/dota2_client_5110/game/dota/scripts/vscripts/bots)! Please remove manually.

kimbring2 commented 2 years ago

@lvnpz Hello, you can remove the bots folder manually. It is automacially deleted by program but sometimes not deleted.

lvnpz commented 2 years ago

Hi, @kimbring2. I think you are right. After I remove the bots folder manually, the error doesn't exist. However, the game won't start, which means it won't enter the interface for dota2 doesn't show up. Do you have any idea of what I can do about it?

In addition, I followed the instruction in this link to build dotaservice image in order to run the run_dotaservice.sh. In this scenario, the game won't start either. If the version of dota client is the issue here, how can I build the docker images with your dotaclient version rather than the default latest one in the dota docker image built before the dotaservice image? Thanks.

kimbring2 commented 2 years ago

@lvnpz Building the dotaservice is not related to the version of the Dota2 client. Because the role of the dotaservice is just executing the run file of the client.

When the client version is mismatched, I found the dotaservice is stuck at this line(https://github.com/TimZaman/dotaservice/blob/733db265f04fa10caab57fa34f7f85861095dc2e/dotaservice/dotaservice.py#L473).

The dataservice is monitoring every console output of the Dota2 client and launching it when specific text appears there.

The only thing we can do now is checking your dotaservice can pass that line. We can know more after that.

P.S. What kind of OS are you using now?

lvnpz commented 2 years ago

@kimbring2 I am using ubuntu 20.04.

lvnpz commented 2 years ago

@kimbring2 Do you suggest to try ubuntu 18.04? and what OS are you using?

lvnpz commented 2 years ago

@kimbring2 I checked where I was stuck. My dotaservice cannot pass that line. I switched to Google Protobuf 3.19.1, python3.7.5, and dota2_client_5110. But the problem is still there. Can I ask whether there is any other version-compatible-mismatch issue I can look into?