Blizzard / s2client-api

StarCraft II Client - C++ library supported on Windows, Linux and Mac designed for building scripted bots and research using the SC2API.
MIT License
1.66k stars 282 forks source link

Running the "rendered" example fails with "Missing interface options" #207

Closed michaelnew closed 6 years ago

michaelnew commented 6 years ago

This: $ ./rendered -e ~/StarCraftII/Versions/Base56787/SC2_x64

Results in this:

Version: B56787 (SC2.3.17)
Build: Aug 25 2017 15:00:49
Command Line: '"/home/mikenew/StarCraftII/Versions/Base56787/SC2_x64" -listen 127.0.0.1 -port 8167 -displayMode 0 -eglpath /usr/lib/nvidia-384/libEGL.so -windowwidth 1024 -windowheight 768 -windowx 100 -windowy 200'
Starting up...
Startup Phase 1 complete
Startup Phase 2 complete
Creating stub renderer...
Listening on: 127.0.0.1:8167 (8167)
Startup Phase 3 complete. Ready for commands.
Waiting for connection.
Connected to 127.0.0.1:8167
Waiting for the JoinGame response.
Requesting to join a single player game
Configuring interface options
Missing interface options
Unable to join game.
WaitJoinGame finished successfully.
Error: expected response: 10, actual response: 0
Error reported: Not in a game
While waiting for ResponseObservation received an error.
Error: Not in a game

Error in returning observation:
The main response is of type: 0
There is no ResponseObservation/message!
Error string: Not in a game

RequestQuit command received.
Closing Application...

I'm on Arch Linux. I have an Nvidia card with the proprietary Nvidia driver, but I get the same error when I turn on software rendering in the rendered example. The game is installed to ~/StarCraftII and all the other examples seem to be running fine.

I assume there's some kind of option that isn't being set correctly when rendering is turned on, but I can't figure out what that might be.

Patrick-Edouard commented 6 years ago

I believe most of the stuff added by blizzard in this PR requires the starcraft 4.0 (the big patchset including free to play and stuff). It includes the new render. Thus we need a new version of the linux headless client to run it.

AnthonyBrunasso commented 6 years ago

Please try with the new 4.0 build: http://blzdistsc2-a.akamaihd.net/Linux/SC2.4.0.2.zip

michaelnew commented 6 years ago

This did work, but I had to change the libEGL.so path to get it running. The EGL path was hard coded to /usr/lib/nvidia-384/libEGL.so which is almost definitely not the typical location. I don't think it needs an absolute path at all. I went ahead and made a PR.