Giter Club home page Giter Club logo

pymarl's Introduction

- Please pay attention to the version of SC2 you are using for your experiments. 
- Performance is *not* always comparable between versions. 
- The results in SMAC (https://arxiv.org/abs/1902.04043) use SC2.4.6.2.69232 not SC2.4.10.

Python MARL framework

PyMARL is WhiRL's framework for deep multi-agent reinforcement learning and includes implementations of the following algorithms:

PyMARL is written in PyTorch and uses SMAC as its environment.

Installation instructions

Build the Dockerfile using

cd docker
bash build.sh

Set up StarCraft II and SMAC:

bash install_sc2.sh

This will download SC2 into the 3rdparty folder and copy the maps necessary to run over.

The requirements.txt file can be used to install the necessary packages into a virtual environment (not recomended).

Run an experiment

python3 src/main.py --config=qmix --env-config=sc2 with env_args.map_name=2s3z

The config files act as defaults for an algorithm or environment.

They are all located in src/config. --config refers to the config files in src/config/algs --env-config refers to the config files in src/config/envs

To run experiments using the Docker container:

bash run.sh $GPU python3 src/main.py --config=qmix --env-config=sc2 with env_args.map_name=2s3z

All results will be stored in the Results folder.

The previous config files used for the SMAC Beta have the suffix _beta.

Saving and loading learnt models

Saving models

You can save the learnt models to disk by setting save_model = True, which is set to False by default. The frequency of saving models can be adjusted using save_model_interval configuration. Models will be saved in the result directory, under the folder called models. The directory corresponding each run will contain models saved throughout the experiment, each within a folder corresponding to the number of timesteps passed since starting the learning process.

Loading models

Learnt models can be loaded using the checkpoint_path parameter, after which the learning will proceed from the corresponding timestep.

Watching StarCraft II replays

save_replay option allows saving replays of models which are loaded using checkpoint_path. Once the model is successfully loaded, test_nepisode number of episodes are run on the test mode and a .SC2Replay file is saved in the Replay directory of StarCraft II. Please make sure to use the episode runner if you wish to save a replay, i.e., runner=episode. The name of the saved replay file starts with the given env_args.save_replay_prefix (map_name if empty), followed by the current timestamp.

The saved replays can be watched by double-clicking on them or using the following command:

python -m pysc2.bin.play --norender --rgb_minimap_size 0 --replay NAME.SC2Replay

Note: Replays cannot be watched using the Linux version of StarCraft II. Please use either the Mac or Windows version of the StarCraft II client.

Documentation/Support

Documentation is a little sparse at the moment (but will improve!). Please raise an issue in this repo, or email Tabish

Citing PyMARL

If you use PyMARL in your research, please cite the SMAC paper.

M. Samvelyan, T. Rashid, C. Schroeder de Witt, G. Farquhar, N. Nardelli, T.G.J. Rudner, C.-M. Hung, P.H.S. Torr, J. Foerster, S. Whiteson. The StarCraft Multi-Agent Challenge, CoRR abs/1902.04043, 2019.

In BibTeX format:

@article{samvelyan19smac,
  title = {{The} {StarCraft} {Multi}-{Agent} {Challenge}},
  author = {Mikayel Samvelyan and Tabish Rashid and Christian Schroeder de Witt and Gregory Farquhar and Nantas Nardelli and Tim G. J. Rudner and Chia-Man Hung and Philiph H. S. Torr and Jakob Foerster and Shimon Whiteson},
  journal = {CoRR},
  volume = {abs/1902.04043},
  year = {2019},
}

License

Code licensed under the Apache License v2.0

pymarl's People

Contributors

dependabot[bot] avatar mimoralea avatar richardliaw avatar samvelyan avatar tabzraz avatar wwxfromtju avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pymarl's Issues

How can I use this package on other environments?

Hi, this packages is awesome, how can I use it to other environments?

To run COMA or other algorithms,

python3 src/main.py --config=coma_smac --env-config=sc2 

I found in src/envs, there is a __init__.py file,

from functools import partial
from smac.env import MultiAgentEnv, StarCraft2Env
import sys
import os

def env_fn(env, **kwargs) -> MultiAgentEnv:
    return env(**kwargs)

REGISTRY = {}
REGISTRY["sc2"] = partial(env_fn, env=StarCraft2Env)

if sys.platform == "linux":
    os.environ.setdefault("SC2PATH",
                          os.path.join(os.getcwd(), "3rdparty", "StarCraftII"))

I found I can register set my environment by

REGISTRY["my_env"] = partial(my_env_fn, env=MyEnv)

is it the right way?

Baselines used in COMA, such as Central-V, IAC-V.

I tried to implement baselines used in your paper, such as Central-V, IAC-V, under this project on 3M map, but I cannot reproduce the results reported in your paper. The following is the training curve of Central-V on 3M map by my code.

image

I am not sure about how to build inputs for these baselines and my training process is not stable.

If possible, could you kindly share with me your implementation on these baselines, especially the implementation of Critic Function and how to build input? Thank you ;). @jakobnicolaus

Ubuntu freezes at QMIX 25m

Hi,

I tested COMA 3m, 8m and 25m as well as QMIX 3m and 8m without problems. Only QMIX 25m is giving me a freeze. htop is showing no hardware bottlenecks before the freeze. Has anyone experienced the same? I am using the docker run method.

Is my setup (16GB RAM, RTX 2070) too weak?

Thanks for the help in advance.

the problem of the mudule sacred

I ran on the Window10 system, but the following problem:

(starcraft) E:\GitProject\pymarl>python src\main.py --config=qmix_smac --env-config=sc2 with env_args.map_name=2s3z
[INFO 16:19:39] root Saving to FileStorageObserver in results/sacred.
[DEBUG 16:19:41] pymarl Using capture mode "fd"
[DEBUG 16:19:41] pymarl Stopping Heartbeat
Exception originated from within Sacred.
Traceback (most recent calls):
File "D:\Downloads\Environment\Anaconda\envs\starcraft\lib\site-packages\sacred\stdout_capturing.py", line 131, in tee_output_fd
['tee', '-a', '/dev/stderr'], preexec_fn=os.setsid,
AttributeError: module 'os' has no attribute 'setsid'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "D:\Downloads\Environment\Anaconda\envs\starcraft\lib\site-packages\sacred\run.py", line 217, in call
with capture_stdout() as self._output_file:
File "D:\Downloads\Environment\Anaconda\envs\starcraft\lib\contextlib.py", line 81, in enter
return next(self.gen)
File "D:\Downloads\Environment\Anaconda\envs\starcraft\lib\site-packages\sacred\stdout_capturing.py", line 136, in tee_output_fd
except (FileNotFoundError, (OSError, AttributeError)):
TypeError: catching classes that do not inherit from BaseException is not allowed

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "D:\Downloads\Environment\Anaconda\envs\starcraft\lib\site-packages\sacred\run.py", line 344, in _stop_time
seconds=round((self.stop_time - self.start_time).total_seconds()))
TypeError: unsupported operand type(s) for -: 'datetime.datetime' and 'NoneType'

Qmix Performance Inconsistency

Hi, I'm currently running experiments on the scenario '3s5z' and '1c3s5z' and find there is a significant performance difference from the Qmix paper. (my experiment result is roughly 15% to 20% better than the paper regarding test won rate). So just wondering if there is any difference with the environment setting or algorithm change.

Thank you so much.

I have some questions when i want to save replay

python3 src/main.py --config=coma_smac --env-config=sc2 with env_args.map_name=2s3z checkpoint_path=results/models/coma_smac__2019-10-20_11-23-08/ save_replay=True

when i run this cammand , there is no XXX.replay in my direction in StarCraft2. How can i fix it?

Failed to run code

File "/home/xxx/anaconda3/envs/LIIR/lib/python3.6/site-packages/smac/env/starcraft2/starcraft2.py", line 292, in _launch
self._run_config = run_configs.get(version=self.game_version)
TypeError: get() got an unexpected keyword argument 'version'
TypeError: get() got an unexpected keyword argument 'version'
TypeError: get() got an unexpected keyword argument 'version'

When i running the first command in the README , it comes an error.

when i run the command "python3 src/main.py --config=qmix_smac --env-config=sc2 with env_args.map_name=2s3z".The output is that

[ERROR 20:41:53] pymarl Failed after 0:00:00!
Traceback (most recent calls WITHOUT Sacred internals):
File "src/main.py", line 31, in my_main
env_args['seed'] = _config["seed"]
sacred.utils.SacredError: The configuration is read-only in a captured function!

1c_3s_5z map?

Hi, I want to evaluate on the 1c_3s_5z map, which is used as a benchmark for the QMIX paper, I can not find it under this directory: smac/smac/env/starcraft2/maps/SMAC_Maps/
Can you upload this map? Or is there any equivalent maps I can use? Thanks!

fail to build docker image

BREAK when running build.sh, step 23.

CODE:
RUN pip3 install git+https://github.com/oxwhirl/smac.git

ERROR:
Successfully built SMAC absl-py future mpyq portpicker s2protocol ordered-set
ERROR: sacred 0.7.2 has requirement jsonpickle<1.0,>=0.7.2, but you'll have jsonpickle 1.2 which is incompatible.
Installing collected packages: future, mpyq, ordered-set, jsonpickle, deepdiff, s2clientprotocol, portpicker, urllib3, certifi, idna, chardet, requests, enum34, websocket-client, sk-video, absl-py, s2protocol, whichcraft, mock, pysc2, SMAC
Found existing installation: jsonpickle 0.9.6
Uninstalling jsonpickle-0.9.6:
Successfully uninstalled jsonpickle-0.9.6
Successfully installed SMAC-0.1.0b1 absl-py-0.8.0 certifi-2019.9.11 chardet-3.0.4 deepdiff-4.0.7 enum34-1.1.6 future-0.17.1 idna-2.8 jsonpickle-1.2 mock-3.0.5 mpyq-0.2.5 ordered-set-3.1.1 portpicker-1.3.1 pysc2-3.0.0 requests-2.22.0 s2clientprotocol-4.10.3.76114.0 s2protocol-4.10.3.76114.0 sk-video-1.1.10 urllib3-1.25.6 websocket-client-0.56.0 whichcraft-0.6.1
Traceback (most recent call last):
File "/usr/local/bin/pip3", line 11, in
sys.exit(main())
File "/usr/local/lib/python3.5/dist-packages/pip/_internal/init.py", line 77, in main
return command.main(cmd_args)
File "/usr/local/lib/python3.5/dist-packages/pip/_internal/cli/base_command.py", line 237, in main
timeout=min(5, options.timeout)
File "/usr/local/lib/python3.5/dist-packages/pip/_internal/cli/base_command.py", line 108, in _build_session
index_urls=self._get_index_urls(options),
File "/usr/local/lib/python3.5/dist-packages/pip/_internal/download.py", line 559, in init
self.headers["User-Agent"] = user_agent()
File "/usr/local/lib/python3.5/dist-packages/pip/_internal/download.py", line 170, in user_agent
setuptools_version = get_installed_version("setuptools")
File "/usr/local/lib/python3.5/dist-packages/pip/_internal/utils/misc.py", line 1044, in get_installed_version
working_set = pkg_resources.WorkingSet()
File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/init.py", line 567, in init
self.add_entry(entry)
File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/init.py", line 623, in add_entry
for dist in find_distributions(entry, True):
File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/init.py", line 1974, in find_eggs_in_zip
if metadata.has_metadata('PKG-INFO'):
File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/init.py", line 1414, in has_metadata
return self._has(path)
File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/init.py", line 1845, in _has
return zip_path in self.zipinfo or zip_path in self._index()
File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/init.py", line 1722, in zipinfo
return self._zip_manifests.load(self.loader.archive)
File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/init.py", line 1679, in load
mtime = os.stat(path).st_mtime
FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/lib/python3.5/dist-packages/jsonpickle-0.9.6-py3.5.egg'
The command '/bin/sh -c pip3 install git+https://github.com/oxwhirl/smac.git' returned a non-zero code: 1

How to save a replay in training?

I have tried the command like this:

python3 src/main.py --config=qmix_smac --env-config=sc2 with env_args.map_name=8m checkpoint_path=results/models/qmix_smac_parallel__2019-02-22_06-59-24/ save_replay=True test_nepisode=1

However, there is not any replay in any directory. Is there mistake I did? Please help notice.

Hi,I have a question want to ask?

Hello, this is a very good implement,I want to know, this environment must use docker?If I am not use docker,it can run?Hope you reply!Thanks!Thank you very much!

running basic scenario in readme

When I run the training scenario from the README:

python3 src/main.py --config=qmix_smac --env-config=sc2 with env_args.map_name=2s3z

I get the following output:

Traceback (most recent calls WITHOUT Sacred internals):                                                                                                                                          
  File "src/main.py", line 34, in my_main                                                                                                                                                        
    run(_run, _config, _log)                                                                                                                                                                     
  File "/home/esquires/repos/rl/rllib/pymarl/src/run.py", line 48, in run                                                                                                                        
    run_sequential(args=args, logger=logger)                                                                                                                                                     
  File "/home/esquires/repos/rl/rllib/pymarl/src/run.py", line 179, in run_sequential                                                                                                            
    learner.train(episode_sample, runner.t_env, episode)                                                                                                                                         
  File "/home/esquires/repos/rl/rllib/pymarl/src/learners/q_learner.py", line 100, in train                                                                                                      
    loss.backward()                                                                                                                                                                              
  File "/home/esquires/venvs/rllib/lib/python3.6/site-packages/torch/tensor.py", line 107, in backward                                                                                           
    torch.autograd.backward(self, gradient, retain_graph, create_graph)                                                                                                                          
  File "/home/esquires/venvs/rllib/lib/python3.6/site-packages/torch/autograd/__init__.py", line 93, in backward                                                                                 
    allow_unreachable=True)  # allow_unreachable flag                                                                                                                                            
RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [32, 94, 5, 11]], which is output 0 of SliceBackward, is at
 version 1; expected version 0 instead. Hint: enable anomaly detection to find the operation that failed to compute its gradient, with torch.autograd.set_detect_anomaly(True). 

After setting torch.autograd.set_detect_anomaly(True) in the initializer of the QLearner object I get the following:

sys:1: RuntimeWarning: Traceback of forward call that caused the error:                                                                                                                          
  File "src/main.py", line 88, in <module>                                                                                                                                                       
    ex.run_commandline(params)                                                                                                                                                                   
  File "/home/esquires/repos/rl/rllib/sacred/sacred/experiment.py", line 250, in run_commandline                                                                                                 
    return self.run(cmd_name, config_updates, named_configs, {}, args)                                                                                                                           
  File "/home/esquires/repos/rl/rllib/sacred/sacred/experiment.py", line 199, in run                                                                                                             
    run()                                                                                                                                                                                        
  File "/home/esquires/repos/rl/rllib/sacred/sacred/run.py", line 229, in __call__                                                                                                               
    self.result = self.main_function(*args)                                                                                                                                                      
  File "/home/esquires/repos/rl/rllib/sacred/sacred/config/captured_function.py", line 48, in captured_function                                                                                  
    result = wrapped(*args, **kwargs)                                                                                                                                                            
  File "src/main.py", line 34, in my_main                                                                                                                                                        
    run(_run, _config, _log)                                                                                                                                                                     
  File "/home/esquires/repos/rl/rllib/pymarl/src/run.py", line 48, in run                                                                                                                        
    run_sequential(args=args, logger=logger)                                                                                                                                                     
  File "/home/esquires/repos/rl/rllib/pymarl/src/run.py", line 179, in run_sequential                                                                                                            
    learner.train(episode_sample, runner.t_env, episode)                                                                                                                                         
  File "/home/esquires/repos/rl/rllib/pymarl/src/learners/q_learner.py", line 56, in train                                                                                                       
    chosen_action_qvals = th.gather(mac_out[:, :-1], dim=3, index=actions).squeeze(3)  # Remove the last dim                                                                                     
                                                                                                                                                                                                 
[ERROR 17:35:55] pymarl Failed after 0:00:17!                                                                                                                                                    
Traceback (most recent calls WITHOUT Sacred internals):                                                                                                                                          
  File "src/main.py", line 34, in my_main                                                                                                                                                        
    run(_run, _config, _log)                                                                                                                                                                     
  File "/home/esquires/repos/rl/rllib/pymarl/src/run.py", line 48, in run                                                                                                                        
    run_sequential(args=args, logger=logger)                                                                                                                                                     
  File "/home/esquires/repos/rl/rllib/pymarl/src/run.py", line 179, in run_sequential                                                                                                            
    learner.train(episode_sample, runner.t_env, episode)                                                                                                                                         
  File "/home/esquires/repos/rl/rllib/pymarl/src/learners/q_learner.py", line 101, in train                                                                                                      
    loss.backward()                                                                                                                                                                              
  File "/home/esquires/venvs/rllib/lib/python3.6/site-packages/torch/tensor.py", line 107, in backward                                                                                           
    torch.autograd.backward(self, gradient, retain_graph, create_graph)                                                                                                                          
  File "/home/esquires/venvs/rllib/lib/python3.6/site-packages/torch/autograd/__init__.py", line 93, in backward                                                                                 
    allow_unreachable=True)  # allow_unreachable flag                                                                                                                                            
RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [32, 71, 5, 11]], which is output 0 of SliceBackward, is at
 version 1; expected version 0 instead. Hint: the backtrace further above shows the operation that failed to compute its gradient. The variable in question was changed in there or anywhere late
r. Good luck!

I then broke-up the line so that the gather and squeeze functions are on separate lines and the code complains about the gather line.

I am on 33070bc for pymarl, cdfff9b for smac, and version 1.1.0 for pytorch.

Should I be running a different command than what is in the README?

Thanks.

Tensor arguments error during example experiment

I am getting this error when running the example (docker) command:

bash run.sh 1 python3 src/main.py --config=qmix_smac --env-config=sc2 with env_args.map_name=2s3z

Note: I replaced $GPU with 1, as I did not know what else to put. Please correct me if this is incorrect.

The error is as follows:

[INFO 11:47:35] my_main Beginning training for 2000000 timesteps
[DEBUG 11:47:40] pymarl Stopping Heartbeat
[ERROR 11:47:40] pymarl Failed after 0:01:03!
Traceback (most recent calls WITHOUT Sacred internals):
File "/usr/lib/python3.5/contextlib.py", line 77, in exit
self.gen.throw(type, value, traceback)
File "/usr/lib/python3.5/contextlib.py", line 77, in exit
self.gen.throw(type, value, traceback)
File "src/main.py", line 71, in my_main
run(_run, _config, _log, mongo_client)
File "/pymarl/src/run.py", line 64, in run
run_sequential(args=args, logger=logger)
File "/pymarl/src/run.py", line 200, in run_sequential
episode_batch = runner.run(test_mode=False)
File "/pymarl/src/runners/parallel_runner.py", line 109, in run
test_mode=test_mode)
File "/pymarl/src/controllers/basic_controller.py", line 85, in select_actions
agent_outputs = self.forward(ep_batch, t_ep, test_mode=test_mode)
File "/pymarl/src/controllers/basic_controller.py", line 112, in forward
agent_inputs = self._build_inputs(ep_batch, t)
File "/pymarl/src/controllers/basic_controller.py", line 211, in _build_inputs
inputs["1d"] = [th.cat(inputs["1d"][:-(len_1d-1)], dim=-1)] + inputs["1d"][-(len_1d-1):] #th.cat([x.reshape(bs*self.n_agents, -1) for x in inputs["1d"]], dim=1)
RuntimeError: There were no tensor arguments to this function (e.g., you passed an empty list of Tensors), but no fallback function is registered for schema aten::_cat. This usually means that this function requires a non-empty list of Tensors. Available functions are [CUDATensorId, CPUTensorId, VariableTensorId]

Any help would be hugely appreciated.

Cannot reproduce the result using 3s_5z map

Thanks for your repository.
I am trying to reproduce your results In QMIX paper. I ran the command like this:

python main.py --config=qmix --env-config=sc2 with env_args.map_name=3s5z

And this is the result I got using the default parameter setting in qmix_smac.yaml. The won rate is almost 0.
image

However, in QMIX paper, the test win rate achieves nearly 80% after 2.0 million timesteps' training.
image

Am I missing something? Thanks :)

questions about observation space

For 25m map, the observation space is 10xnum_agents. Does not is should be 10 for each agent? If the each agent concatenate the observations around it, what's the order it based on?

Cannot watch StarCraft II replays

Firstly, I ran command like this:

python3 src/main.py --config=qmix_smac --env-config=sc2 with env_args.map_name=3m save_replay=True save_model=True

and then I loaded model by running:

python3 src/main.py --config=qmix --env-config=sc2 with env_args.map_name=3m checkpoint_path=results/models/qmix_smac_parallel__2019-03-20_19-06-37/ runner=episode

Note that I have to use "qmix" rather than "qmix_smac" because I found that using "qmix_smac" along with "runner=episode" would go wrong.(I don't know the difference between qmix and qmix_smac). Then I got .sc2replay file in StarCraftII folder. But when I ran:

python3 -m pysc2.bin.play --norender --rgb_minimap_size 0 --replay NAME.SC2Replay

I got message like this without any replay:

smac_2019-03-21-07-04-12.SC2Replay
pygame 1.9.4
Hello from the pygame community. https://www.pygame.org/contribute.html
I0321 18:50:29.104659 140607866128192 sc_process.py:110] Launching SC2: /home/aaron/StarCraftII/Versions/Base70154/SC2_x64 -listen 127.0.0.1 -port 17276 -dataDir /home/aaron/StarCraftII/ -tempDir /tmp/sc-bvn2ia27/ -displayMode 0 -windowwidth 640 -windowheight 480 -windowx 50 -windowy 50 -dataVersion 94596A85191583AD2EBFAE28C5D532DB -osmesapath libOSMesa.so.8
I0321 18:50:29.107152 140607866128192 remote_controller.py:163] Connecting to: ws://127.0.0.1:17276/sc2api, attempt: 0, running: True
Version: B70326 (SC2.2018Season4)
Build: Nov 27 2018 03:26:30
Command Line: '"/home/aaron/StarCraftII/Versions/Base70154/SC2_x64" -listen 127.0.0.1 -port 17276 -dataDir /home/aaron/StarCraftII/ -tempDir /tmp/sc-bvn2ia27/ -displayMode 0 -windowwidth 640 -windowheight 480 -windowx 50 -windowy 50 -dataVersion 94596A85191583AD2EBFAE28C5D532DB -osmesapath libOSMesa.so.8'
Starting up...
Startup Phase 1 complete
I0321 18:50:30.110396 140607866128192 remote_controller.py:163] Connecting to: ws://127.0.0.1:17276/sc2api, attempt: 1, running: True
Startup Phase 2 complete
Attempting to initialize OSMesa from file libOSMesa.so.8 ...
Successfully loaded OSMesa library!
Running CGLSimpleDevice::HALInit...
Calling glGetString: 0x7ff0b6671da0
Version: 2.1 Mesa 18.2.2
Vendor: Brian Paul
Renderer: Mesa OffScreen
OpenGL initialized!
Listening on: 127.0.0.1:17276
Startup Phase 3 complete. Ready for commands.
I0321 18:50:31.111603 140607866128192 remote_controller.py:163] Connecting to: ws://127.0.0.1:17276/sc2api, attempt: 2, running: True
Could not find map name for file: /tmp/sc-bvn2ia27/StarCraft II/TempReplayInfo.SC2Replay
----------------------- Replay info ------------------------
map_name: "Just Another StarCraft II Map"
local_map_path: "SMAC_Maps/3m.SC2Map"
player_info {
player_info {
player_id: 1
race_requested: Terran
race_actual: Terran
}
player_result {
player_id: 1
result: Tie
}
player_apm: 1808
}
game_duration_loops: 4558
game_duration_seconds: 203.496337890625
game_version: "4.7.1.70326"
data_build: 70326
base_build: 70154
data_version: "94596A85191583AD2EBFAE28C5D532DB"
Configuring interface options
Configure: raw interface disabled
Configure: feature layer interface enabled
Configure: score interface enabled
Configure: render interface disabled
Launching next game.
Next launch phase started: 2
Next launch phase started: 3
Next launch phase started: 4
Next launch phase started: 5
Next launch phase started: 6
Next launch phase started: 7
Next launch phase started: 8
Starting replay 'TempStartReplay.SC2Replay'
Game has started.
Score: 100
Result: [player_id: 1
result: Undecided
]
RequestQuit command received.
Closing Application...
unable to parse websocket frame.
Terminate action already called.
Entering core terminate.
Core shutdown finished.
I0321 18:54:00.920968 140607866128192 sc_process.py:201] Shutdown gracefully.
I0321 18:54:00.921149 140607866128192 sc_process.py:182] Shutdown with return code: 0

smac_2019-03-21-07-04-12.SC2Replay_1.zip

what's the meanning of mask and terminated?

According to my understanding of terminated and mask, terminated is a vector consist of 0s and only one 1. 1 means the terminated time step of the episode.

mask[:, 1:] = mask[:, 1:] * (1 - terminated[:, :-1])

mask is, for example, [1,1,1,1,0,0], which tells that the episode length is 4. Then the corresponding terminated is [0,0,0,1,0,0].
Then

mask[:, 1:] is [1,1,1,0,0]
1 - terminated[:, :-1] is [1,1,1,0,1] 
mask[:, 1:] * (1 - terminated[:, :-1]) is [1,1,1,0,0]

So after performing mask[:, 1:] = mask[:, 1:] * (1 - terminated[:, :-1]), mask is still [1,1,1,1,0,0]. This line of code doesn't change mask. Then what does this line of code do? Thanks.

I am also confused about the dimension of mask and terminated in your code. They do not contain the dimension of the number of agents. Can you explain? Thanks :)

Another Sacred issue

Running on Windows 10

Traceback (most recent call last):
  File "src/main.py", line 19, in <module>
    ex = Experiment("pymarl")
  File "C:\Users\Michael\AppData\Local\conda\conda\envs\nn\lib\site-packages\sacred\experiment.py", line 75, in __init__
    _caller_globals=caller_globals)
  File "C:\Users\Michael\AppData\Local\conda\conda\envs\nn\lib\site-packages\sacred\ingredient.py", line 57, in __init__
    gather_sources_and_dependencies(_caller_globals)
  File "C:\Users\Michael\AppData\Local\conda\conda\envs\nn\lib\site-packages\sacred\dependencies.py", line 487, in gather_sources_and_dependencies
    sources = gather_sources(globs, experiment_path)
  File "C:\Users\Michael\AppData\Local\conda\conda\envs\nn\lib\site-packages\sacred\dependencies.py", line 440, in get_sources_from_imported_modules
    return get_sources_from_modules(iterate_imported_modules(globs), base_path)
  File "C:\Users\Michael\AppData\Local\conda\conda\envs\nn\lib\site-packages\sacred\dependencies.py", line 409, in get_sources_from_modules
    filename = os.path.abspath(mod.__file__)
  File "C:\Users\Michael\AppData\Local\conda\conda\envs\nn\lib\ntpath.py", line 526, in abspath
    return _getfullpathname(path)
TypeError: _getfullpathname: path should be string, bytes or os.PathLike, not NoneType

Any idea of what might be causing this? The conda env was prepared via requirements.txt present in the repo.

Failed to run coma

Hi, I can successfully run qmix experiment

bash run.sh $GPU python3 src/main.py --config=qmix --env-config=sc2 with env_args.map_name=2s3z

but errors occurred when I replace qmix with coma

bash run.sh $GPU python3 src/main.py --config=coma --env-config=sc2 with env_args.map_name=2s3z

errors:

Listening on: 127.0.0.1:20214
Startup Phase 3 complete. Ready for commands.
Listening on: 127.0.0.1:22734
Startup Phase 3 complete. Ready for commands.
Requesting to join a single player game
Configuring interface options
Configure: raw interface enabled
Configure: feature layer interface disabled
Configure: score interface disabled
Configure: render interface disabled
Entering load game phase.
Launching next game.
Requesting to join a single player game
Configuring interface options
Configure: raw interface enabled
Configure: feature layer interface disabled
Configure: score interface disabled
Configure: render interface disabled
Entering load game phase.
Launching next game.
Next launch phase started: 2
Next launch phase started: 3
Requesting to join a single player game
Configuring interface options
Configure: raw interface enabled
Configure: feature layer interface disabled
Configure: score interface disabled
Configure: render interface disabled
Entering load game phase.
Launching next game.
Next launch phase started: 2
Next launch phase started: 3
Listening on: 127.0.0.1:24234
Next launch phase started: 4
Next launch phase started: 4
Next launch phase started: 5
Next launch phase started: 6
Next launch phase started: 7
Next launch phase started: 8
Next launch phase started: 5
Next launch phase started: 6
Next launch phase started: 7
Next launch phase started: 8
Requesting to join a single player game
Configuring interface options
Configure: raw interface enabled
Configure: feature layer interface disabled
Configure: score interface disabled
Configure: render interface disabled
Entering load game phase.
Launching next game.
Next launch phase started: 2
Next launch phase started: 3
Next launch phase started: 4
Next launch phase started: 5
Next launch phase started: 6
Next launch phase started: 7
Next launch phase started: 8
Next launch phase started: 2
Next launch phase started: 3
Next launch phase started: 4
Next launch phase started: 5
Next launch phase started: 6
Next launch phase started: 7
Next launch phase started: 8
[INFO 06:15:22] absl Connecting to: ws://127.0.0.1:22734/sc2api, attempt: 9, running: True
[INFO 06:15:22] absl Connecting to: ws://127.0.0.1:24234/sc2api, attempt: 9, running: True
Startup Phase 3 complete. Ready for commands.
[INFO 06:15:22] absl Connecting to: ws://127.0.0.1:22779/sc2api, attempt: 9, running: True
[INFO 06:15:22] absl Connecting to: ws://127.0.0.1:20214/sc2api, attempt: 9, running: True
Listening on: 127.0.0.1:22779
Startup Phase 3 complete. Ready for commands.
Requesting to join a single player game
Configuring interface options
Configure: raw interface enabled
Configure: feature layer interface disabled
Configure: score interface disabled
Configure: render interface disabled
Entering load game phase.
Launching next game.
Next launch phase started: 2
Next launch phase started: 3
Next launch phase started: 4
Next launch phase started: 5
Next launch phase started: 6
Next launch phase started: 7
Next launch phase started: 8
Requesting to join a single player game
Configuring interface options
Configure: raw interface enabled
Configure: feature layer interface disabled
Configure: score interface disabled
Configure: render interface disabled
Entering load game phase.
Launching next game.
Next launch phase started: 2
Next launch phase started: 3
Next launch phase started: 4
Next launch phase started: 5
Next launch phase started: 6
Next launch phase started: 7
Next launch phase started: 8
Requesting to join a single player game
Configuring interface options
Configure: raw interface enabled
Configure: feature layer interface disabled
Configure: score interface disabled
Configure: render interface disabled
Entering load game phase.
Launching next game.
Next launch phase started: 2
Next launch phase started: 3
Next launch phase started: 4
Next launch phase started: 5
Next launch phase started: 6
Next launch phase started: 7
Next launch phase started: 8
[INFO 06:15:23] absl Connecting to: ws://127.0.0.1:22779/sc2api, attempt: 10, running: True
Requesting to join a single player game
Configuring interface options
Configure: raw interface enabled
Configure: feature layer interface disabled
Configure: score interface disabled
Configure: render interface disabled
Entering load game phase.
Launching next game.
Next launch phase started: 2
Next launch phase started: 3
Next launch phase started: 4
Next launch phase started: 5
Next launch phase started: 6
Next launch phase started: 7
Next launch phase started: 8
Process Process-6:
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 66, in catch_websocket_connection_errors
    yield
  File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 183, in _read
    response_str = self._sock.recv()
  File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 314, in recv
    opcode, data = self.recv_data()
  File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 331, in recv_data
    opcode, frame = self.recv_data_frame(control_frame)
  File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 344, in recv_data_frame
    frame = self.recv_frame()
  File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 378, in recv_frame
    return self.frame_buffer.recv_frame()
  File "/usr/local/lib/python3.5/dist-packages/websocket/_abnf.py", line 361, in recv_frame
    self.recv_header()
  File "/usr/local/lib/python3.5/dist-packages/websocket/_abnf.py", line 309, in recv_header
    header = self.recv_strict(2)
  File "/usr/local/lib/python3.5/dist-packages/websocket/_abnf.py", line 396, in recv_strict
    bytes_ = self.recv(min(16384, shortage))
  File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 453, in _recv
    return recv(self.sock, bufsize)
  File "/usr/local/lib/python3.5/dist-packages/websocket/_socket.py", line 115, in recv
    "Connection is already closed.")
websocket._exceptions.WebSocketConnectionClosedException: Connection is already closed.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 151, in send
    res = self.send_req(req)
  File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 131, in send_req
    return self.read()
  File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 102, in read
    response = self._read()
  File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 183, in _read
    response_str = self._sock.recv()
  File "/usr/lib/python3.5/contextlib.py", line 77, in __exit__
    self.gen.throw(type, value, traceback)
  File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 68, in catch_websocket_connection_errors
    raise ConnectionError("Connection already closed. SC2 probably crashed. "
pysc2.lib.protocol.ConnectionError: Connection already closed. SC2 probably crashed. Check the error log.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.5/multiprocessing/process.py", line 249, in _bootstrap
    self.run()
  File "/usr/lib/python3.5/multiprocessing/process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "/pymarl/src/runners/parallel_runner.py", line 237, in env_worker
    env.reset()
  File "/usr/local/lib/python3.5/dist-packages/smac/env/starcraft2/starcraft2.py", line 347, in reset
    self._launch()
  File "/usr/local/lib/python3.5/dist-packages/smac/env/starcraft2/starcraft2.py", line 314, in _launch
    self._controller.join_game(join)
  File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 99, in _valid_status
    return func(self, *args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 74, in _check_error
    return check_error(func(*args, **kwargs), error_enum)
  File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 209, in join_game
    return self._client.send(join_game=req_join_game)
  File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 153, in send
    raise ConnectionError("Error during %s: %s" % (name, e))
pysc2.lib.protocol.ConnectionError: Error during join_game: Connection already closed. SC2 probably crashed. Check the error log.

pick_random in action_selectors

Thanks to the author for the open source code, I have a question when I was reading the source code.

In the action_selection operation, Qmix add a pick_random * random_actions,
I guess this is a disturbing term, But, I'm not chear that why the random_numbers only come from agent_inputs[:,:,0], I think the value of agent_inputs[:,:,0] point to the probability of action 0?

Anyone could help me to make it clear. Thanks


picked_actions = pick_random * random_actions + (1 - pick_random) * masked_q_values.max(dim=2)[1]

https://github.com/oxwhirl/pymarl/blob/master/src/components/action_selectors.py

def select_action(self, agent_inputs, avail_actions, t_env, test_mode=False):

	# Assuming agent_inputs is a batch of Q-Values for each agent bav
	self.epsilon = self.schedule.eval(t_env)

	if test_mode:
		# Greedy action selection only
		self.epsilon = 0.0

	# mask actions that are excluded from selection
	masked_q_values = agent_inputs.clone()
	masked_q_values[avail_actions == 0.0] = -float("inf")  # should never be selected!

	random_numbers = th.rand_like(agent_inputs[:, :, 0])
	pick_random = (random_numbers < self.epsilon).long()
	random_actions = Categorical(avail_actions.float()).sample().long()

	picked_actions = pick_random * random_actions + (1 - pick_random) * masked_q_values.max(dim=2)[1]
	return picked_actions

how can I distinguish different units's observations in the batch?

I'm trying to adapt your algorithm under 3s5z map(3 Stalkers & 5 Zealots). The batch['obs'] is of shape [32, 74, 8, 128].

My questions is how can I distinguish Stalkers' observations from Zealots' observations in batch['obs']? For example, I guess maybe batch['obs'][:, :, :3] are Stalkers' observations and batch['obs'][:, :, 3:] are Zealots' observations.

(It seems that Stalkers and Zealots' batch['avail_actions'] are exactly the same, so cannot judge from this.)

Thank You in Advance

Terminated handling in episode runner

Line 75 of the episode runner is:
"terminated": [(terminated != env_info.get("episode_limit", False),)]

I'm not sure what this was meant to do, but it was causing a difficult to find bug for me. Solution was to replace it with:
"terminated": [(terminated,)]

Let me know if I'm missing something, otherwise can you fix this?

I have this error in running the qmix algorithm

[INFO 16:10:01] root Saving to FileStorageObserver in results/sacred.
[DEBUG 16:10:05] pymarl Using capture mode "fd"
[DEBUG 16:10:06] pymarl Stopping Heartbeat
[ERROR 16:10:06] pymarl Failed after 0:00:01!
Traceback (most recent calls WITHOUT Sacred internals):
File "D:/PyProjects/pymarl/main.py", line 32, in my_main
env_args['seed'] = _config["seed"]
sacred.utils.SacredError: The configuration is read-only in a captured function!

socket.timeout: timed out and websocket._exceptions.WebSocketTimeoutException: timed out

when i run the command "python3 src/main.py --config=qmix_smac --env-config=sc2 with env_args.map_name=2s3z".The output comes "File "/usr/local/lib/python3.5/dist-packages/websocket/socket.py", line 81, in recv
bytes
= sock.recv(bufsize)
File "/usr/local/lib/python3.5/dist-packages/websocket/socket.py", line 81, in recv
bytes
= sock.recv(bufsize)
File "/usr/local/lib/python3.5/dist-packages/websocket/socket.py", line 81, in recv
bytes
= sock.recv(bufsize)
File "/usr/local/lib/python3.5/dist-packages/websocket/socket.py", line 81, in recv
bytes
= sock.recv(bufsize)
File "/usr/local/lib/python3.5/dist-packages/websocket/socket.py", line 81, in recv
bytes
= sock.recv(bufsize)
socket.timeout: timed out
socket.timeout: timed out
socket.timeout: timed out
socket.timeout: timed out
socket.timeout: timed out
...
websocket._exceptions.WebSocketTimeoutException: timed out
websocket._exceptions.WebSocketTimeoutException: timed out
websocket._exceptions.WebSocketTimeoutException: timed out
"
Because of the length of the text, i copy a part of content, and i would like to send the whole component in the next comment.

Hi, I have this error in running!

The error is like this:

'Process Process-3:
Traceback (most recent call last):
File "/home/a/anaconda3/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/home/a/anaconda3/lib/python3.6/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/home/a/COMA/pymarl/src/runners/parallel_runner.py", line 221, in env_worker
reward, terminated, env_info = env.step(actions)
File "/home/a/anaconda3/lib/python3.6/site-packages/smac/env/starcraft2/starcraft2.py", line 373, in step
agent_action = self.get_agent_action(a_id, action)
File "/home/a/anaconda3/lib/python3.6/site-packages/smac/env/starcraft2/starcraft2.py", line 439, in get_agent_action
"Agent {} cannot perform action {}".format(a_id, action)
AssertionError: Agent 0 cannot perform action 0
'
Can you help me to solve this?Thanks!

Exception while running an example

Hi!
I've a problem:
I'm truing to run an example that are described on instructions page, but after running that command
python3 src/main.py --config=qmix_smac --env-config=sc2 with env_args.map_name=2s3z
The following error is appeared:
Traceback (most recent call last): File "src/main.py", line 19, in <module> ex = Experiment("pymarl") File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sacred/experiment.py", line 75, in __init__ _caller_globals=caller_globals) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sacred/ingredient.py", line 57, in __init__ gather_sources_and_dependencies(_caller_globals) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sacred/dependencies.py", line 487, in gather_sources_and_dependencies sources = gather_sources(globs, experiment_path) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sacred/dependencies.py", line 440, in get_sources_from_imported_modules return get_sources_from_modules(iterate_imported_modules(globs), base_path) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sacred/dependencies.py", line 409, in get_sources_from_modules filename = os.path.abspath(mod.__file__) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/posixpath.py", line 378, in abspath path = os.fspath(path) **TypeError: expected str, bytes or os.PathLike object, not NoneType**
I was trying to resolve the issue with the different versions of sacred module, but no it is still failed...
All the modules versions are taken from requirements.txt file
Could you please help?
Thank you a lot!

pysc2.lib.protocol.ConnectionError: Error during join_game: Websocket timed out.

when i run this command "sudo python3 src/main.py --config=qmix_smac --env-config=sc2 with env_args.map_name=2s3z". it can produce some files in results. But it can't run completely.Some errers come into my terminal are that "pysc2.lib.protocol.ConnectionError: Websocket timed out. "and "websocket._exceptions.WebSocketTimeoutException: timed out"and"socket.timeout: timed out".

And the whole output is :
[INFO 12:29:02] absl Connecting to: ws://127.0.0.1:19901/sc2api, attempt: 65, running: True
[INFO 12:29:02] absl Connecting to: ws://127.0.0.1:18171/sc2api, attempt: 65, running: True
[INFO 12:29:02] absl Connecting to: ws://127.0.0.1:21536/sc2api, attempt: 66, running: True
[INFO 12:29:02] absl Connecting to: ws://127.0.0.1:22380/sc2api, attempt: 66, running: True
[INFO 12:29:02] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 65, running: True
[INFO 12:29:02] absl Connecting to: ws://127.0.0.1:24969/sc2api, attempt: 66, running: True
[INFO 12:29:02] absl Connecting to: ws://127.0.0.1:24415/sc2api, attempt: 65, running: True
[INFO 12:29:02] absl Connecting to: ws://127.0.0.1:24364/sc2api, attempt: 66, running: True
[INFO 12:29:03] absl Connecting to: ws://127.0.0.1:19901/sc2api, attempt: 66, running: True
[INFO 12:29:03] absl Connecting to: ws://127.0.0.1:18171/sc2api, attempt: 66, running: True
[INFO 12:29:03] absl Connecting to: ws://127.0.0.1:21536/sc2api, attempt: 67, running: True
[INFO 12:29:03] absl Connecting to: ws://127.0.0.1:22380/sc2api, attempt: 67, running: True
[INFO 12:29:03] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 66, running: True
[INFO 12:29:03] absl Connecting to: ws://127.0.0.1:24969/sc2api, attempt: 67, running: True
[INFO 12:29:03] absl Connecting to: ws://127.0.0.1:24415/sc2api, attempt: 66, running: True
[INFO 12:29:03] absl Connecting to: ws://127.0.0.1:24364/sc2api, attempt: 67, running: True
[INFO 12:29:04] absl Connecting to: ws://127.0.0.1:19901/sc2api, attempt: 67, running: True
[INFO 12:29:04] absl Connecting to: ws://127.0.0.1:18171/sc2api, attempt: 67, running: True
[INFO 12:29:04] absl Connecting to: ws://127.0.0.1:21536/sc2api, attempt: 68, running: True
[INFO 12:29:04] absl Connecting to: ws://127.0.0.1:22380/sc2api, attempt: 68, running: True
[INFO 12:29:04] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 67, running: True
[INFO 12:29:04] absl Connecting to: ws://127.0.0.1:24969/sc2api, attempt: 68, running: True
[INFO 12:29:04] absl Connecting to: ws://127.0.0.1:24415/sc2api, attempt: 67, running: True
[INFO 12:29:04] absl Connecting to: ws://127.0.0.1:24364/sc2api, attempt: 68, running: True
[INFO 12:29:05] absl Connecting to: ws://127.0.0.1:19901/sc2api, attempt: 68, running: True
[INFO 12:29:05] absl Connecting to: ws://127.0.0.1:18171/sc2api, attempt: 68, running: True
[INFO 12:29:05] absl Connecting to: ws://127.0.0.1:21536/sc2api, attempt: 69, running: True
[INFO 12:29:05] absl Connecting to: ws://127.0.0.1:22380/sc2api, attempt: 69, running: True
[INFO 12:29:05] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 68, running: True
[INFO 12:29:05] absl Connecting to: ws://127.0.0.1:24969/sc2api, attempt: 69, running: True
[INFO 12:29:05] absl Connecting to: ws://127.0.0.1:24415/sc2api, attempt: 68, running: True
[INFO 12:29:05] absl Connecting to: ws://127.0.0.1:24364/sc2api, attempt: 69, running: True
[INFO 12:29:06] absl Connecting to: ws://127.0.0.1:22380/sc2api, attempt: 70, running: True
[INFO 12:29:06] absl Connecting to: ws://127.0.0.1:19901/sc2api, attempt: 69, running: True
[INFO 12:29:06] absl Connecting to: ws://127.0.0.1:24415/sc2api, attempt: 69, running: True
[INFO 12:29:06] absl Connecting to: ws://127.0.0.1:18171/sc2api, attempt: 69, running: True
[INFO 12:29:06] absl Connecting to: ws://127.0.0.1:21536/sc2api, attempt: 70, running: True
[INFO 12:29:06] absl Connecting to: ws://127.0.0.1:24969/sc2api, attempt: 70, running: True
[INFO 12:29:06] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 69, running: True
[INFO 12:29:06] absl Connecting to: ws://127.0.0.1:24364/sc2api, attempt: 70, running: True
[INFO 12:29:07] absl Connecting to: ws://127.0.0.1:24969/sc2api, attempt: 71, running: True
[INFO 12:29:07] absl Connecting to: ws://127.0.0.1:19901/sc2api, attempt: 70, running: True
[INFO 12:29:07] absl Connecting to: ws://127.0.0.1:21536/sc2api, attempt: 71, running: True
[INFO 12:29:07] absl Connecting to: ws://127.0.0.1:22380/sc2api, attempt: 71, running: True
[INFO 12:29:07] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 70, running: True
[INFO 12:29:07] absl Connecting to: ws://127.0.0.1:18171/sc2api, attempt: 70, running: True
[INFO 12:29:07] absl Connecting to: ws://127.0.0.1:24415/sc2api, attempt: 70, running: True
[INFO 12:29:07] absl Connecting to: ws://127.0.0.1:24364/sc2api, attempt: 71, running: True
[INFO 12:29:08] absl Connecting to: ws://127.0.0.1:24969/sc2api, attempt: 72, running: True
[INFO 12:29:08] absl Connecting to: ws://127.0.0.1:19901/sc2api, attempt: 71, running: True
[INFO 12:29:08] absl Connecting to: ws://127.0.0.1:22380/sc2api, attempt: 72, running: True
[INFO 12:29:08] absl Connecting to: ws://127.0.0.1:21536/sc2api, attempt: 72, running: True
[INFO 12:29:08] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 71, running: True
[INFO 12:29:08] absl Connecting to: ws://127.0.0.1:24415/sc2api, attempt: 71, running: True
[INFO 12:29:08] absl Connecting to: ws://127.0.0.1:18171/sc2api, attempt: 71, running: True
[INFO 12:29:08] absl Connecting to: ws://127.0.0.1:24364/sc2api, attempt: 72, running: True
[INFO 12:29:09] absl Connecting to: ws://127.0.0.1:24969/sc2api, attempt: 73, running: True
[INFO 12:29:09] absl Connecting to: ws://127.0.0.1:22380/sc2api, attempt: 73, running: True
[INFO 12:29:09] absl Connecting to: ws://127.0.0.1:19901/sc2api, attempt: 72, running: True
[INFO 12:29:09] absl Connecting to: ws://127.0.0.1:21536/sc2api, attempt: 73, running: True
[INFO 12:29:09] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 72, running: True
[INFO 12:29:09] absl Connecting to: ws://127.0.0.1:18171/sc2api, attempt: 72, running: True
[INFO 12:29:09] absl Connecting to: ws://127.0.0.1:24415/sc2api, attempt: 72, running: True
[INFO 12:29:09] absl Connecting to: ws://127.0.0.1:24364/sc2api, attempt: 73, running: True
[INFO 12:29:10] absl Connecting to: ws://127.0.0.1:24969/sc2api, attempt: 74, running: True
[INFO 12:29:10] absl Connecting to: ws://127.0.0.1:19901/sc2api, attempt: 73, running: True
[INFO 12:29:10] absl Connecting to: ws://127.0.0.1:22380/sc2api, attempt: 74, running: True
[INFO 12:29:10] absl Connecting to: ws://127.0.0.1:21536/sc2api, attempt: 74, running: True
[INFO 12:29:10] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 73, running: True
[INFO 12:29:10] absl Connecting to: ws://127.0.0.1:18171/sc2api, attempt: 73, running: True
[INFO 12:29:10] absl Connecting to: ws://127.0.0.1:24415/sc2api, attempt: 73, running: True
[INFO 12:29:10] absl Connecting to: ws://127.0.0.1:24364/sc2api, attempt: 74, running: True
[INFO 12:29:11] absl Connecting to: ws://127.0.0.1:24415/sc2api, attempt: 74, running: True
[INFO 12:29:11] absl Connecting to: ws://127.0.0.1:24969/sc2api, attempt: 75, running: True
[INFO 12:29:11] absl Connecting to: ws://127.0.0.1:19901/sc2api, attempt: 74, running: True
[INFO 12:29:11] absl Connecting to: ws://127.0.0.1:21536/sc2api, attempt: 75, running: True
[INFO 12:29:11] absl Connecting to: ws://127.0.0.1:22380/sc2api, attempt: 75, running: True
[INFO 12:29:11] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 74, running: True
[INFO 12:29:11] absl Connecting to: ws://127.0.0.1:18171/sc2api, attempt: 74, running: True
[INFO 12:29:11] absl Connecting to: ws://127.0.0.1:24364/sc2api, attempt: 75, running: True
[INFO 12:29:12] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 75, running: True
[INFO 12:29:12] absl Connecting to: ws://127.0.0.1:18171/sc2api, attempt: 75, running: True
[INFO 12:29:12] absl Connecting to: ws://127.0.0.1:24415/sc2api, attempt: 75, running: True
[INFO 12:29:12] absl Connecting to: ws://127.0.0.1:19901/sc2api, attempt: 75, running: True
[INFO 12:29:12] absl Connecting to: ws://127.0.0.1:21536/sc2api, attempt: 76, running: True
[INFO 12:29:12] absl Connecting to: ws://127.0.0.1:24969/sc2api, attempt: 76, running: True
[INFO 12:29:12] absl Connecting to: ws://127.0.0.1:22380/sc2api, attempt: 76, running: True
[INFO 12:29:12] absl Connecting to: ws://127.0.0.1:24364/sc2api, attempt: 76, running: True
[INFO 12:29:13] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 76, running: True
[INFO 12:29:13] absl Connecting to: ws://127.0.0.1:24415/sc2api, attempt: 76, running: True
[INFO 12:29:13] absl Connecting to: ws://127.0.0.1:18171/sc2api, attempt: 76, running: True
[INFO 12:29:13] absl Connecting to: ws://127.0.0.1:19901/sc2api, attempt: 76, running: True
[INFO 12:29:13] absl Connecting to: ws://127.0.0.1:21536/sc2api, attempt: 77, running: True
[INFO 12:29:13] absl Connecting to: ws://127.0.0.1:22380/sc2api, attempt: 77, running: True
[INFO 12:29:13] absl Connecting to: ws://127.0.0.1:24969/sc2api, attempt: 77, running: True
[INFO 12:29:13] absl Connecting to: ws://127.0.0.1:24364/sc2api, attempt: 77, running: True
[INFO 12:29:14] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 77, running: True
[INFO 12:29:14] absl Connecting to: ws://127.0.0.1:24415/sc2api, attempt: 77, running: True
[INFO 12:29:14] absl Connecting to: ws://127.0.0.1:18171/sc2api, attempt: 77, running: True
[INFO 12:29:14] absl Connecting to: ws://127.0.0.1:21536/sc2api, attempt: 78, running: True
[INFO 12:29:14] absl Connecting to: ws://127.0.0.1:24969/sc2api, attempt: 78, running: True
[INFO 12:29:14] absl Connecting to: ws://127.0.0.1:19901/sc2api, attempt: 77, running: True
[INFO 12:29:14] absl Connecting to: ws://127.0.0.1:22380/sc2api, attempt: 78, running: True
[INFO 12:29:14] absl Connecting to: ws://127.0.0.1:24364/sc2api, attempt: 78, running: True
[INFO 12:29:15] absl Connecting to: ws://127.0.0.1:24969/sc2api, attempt: 79, running: True
[INFO 12:29:15] absl Connecting to: ws://127.0.0.1:18171/sc2api, attempt: 78, running: True
[INFO 12:29:15] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 78, running: True
[INFO 12:29:15] absl Connecting to: ws://127.0.0.1:24415/sc2api, attempt: 78, running: True
[INFO 12:29:15] absl Connecting to: ws://127.0.0.1:21536/sc2api, attempt: 79, running: True
[INFO 12:29:15] absl Connecting to: ws://127.0.0.1:19901/sc2api, attempt: 78, running: True
[INFO 12:29:15] absl Connecting to: ws://127.0.0.1:22380/sc2api, attempt: 79, running: True
[INFO 12:29:15] absl Connecting to: ws://127.0.0.1:24364/sc2api, attempt: 79, running: True
[INFO 12:29:16] absl Connecting to: ws://127.0.0.1:18171/sc2api, attempt: 79, running: True
[INFO 12:29:16] absl Connecting to: ws://127.0.0.1:24969/sc2api, attempt: 80, running: True
[INFO 12:29:16] absl Connecting to: ws://127.0.0.1:22380/sc2api, attempt: 80, running: True
[INFO 12:29:16] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 79, running: True
[INFO 12:29:16] absl Connecting to: ws://127.0.0.1:24415/sc2api, attempt: 79, running: True
[INFO 12:29:16] absl Connecting to: ws://127.0.0.1:21536/sc2api, attempt: 80, running: True
[INFO 12:29:16] absl Connecting to: ws://127.0.0.1:19901/sc2api, attempt: 79, running: True
[INFO 12:29:16] absl Connecting to: ws://127.0.0.1:24364/sc2api, attempt: 80, running: True
[INFO 12:29:17] absl Connecting to: ws://127.0.0.1:22380/sc2api, attempt: 81, running: True
[INFO 12:29:17] absl Connecting to: ws://127.0.0.1:19901/sc2api, attempt: 80, running: True
[INFO 12:29:17] absl Connecting to: ws://127.0.0.1:18171/sc2api, attempt: 80, running: True
[INFO 12:29:17] absl Connecting to: ws://127.0.0.1:24969/sc2api, attempt: 81, running: True
[INFO 12:29:17] absl Connecting to: ws://127.0.0.1:24415/sc2api, attempt: 80, running: True
[INFO 12:29:17] absl Connecting to: ws://127.0.0.1:24364/sc2api, attempt: 81, running: True
[INFO 12:29:17] absl Connecting to: ws://127.0.0.1:21536/sc2api, attempt: 81, running: True
[INFO 12:29:17] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 80, running: True
[INFO 12:29:18] absl Connecting to: ws://127.0.0.1:22380/sc2api, attempt: 82, running: True
[INFO 12:29:18] absl Connecting to: ws://127.0.0.1:18171/sc2api, attempt: 81, running: True
[INFO 12:29:18] absl Connecting to: ws://127.0.0.1:19901/sc2api, attempt: 81, running: True
[INFO 12:29:18] absl Connecting to: ws://127.0.0.1:24969/sc2api, attempt: 82, running: True
[INFO 12:29:18] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 81, running: True
[INFO 12:29:18] absl Connecting to: ws://127.0.0.1:24415/sc2api, attempt: 81, running: True
[INFO 12:29:18] absl Connecting to: ws://127.0.0.1:21536/sc2api, attempt: 82, running: True
[INFO 12:29:18] absl Connecting to: ws://127.0.0.1:24364/sc2api, attempt: 82, running: True
[INFO 12:29:19] absl Connecting to: ws://127.0.0.1:22380/sc2api, attempt: 83, running: True
[INFO 12:29:19] absl Connecting to: ws://127.0.0.1:19901/sc2api, attempt: 82, running: True
[INFO 12:29:19] absl Connecting to: ws://127.0.0.1:18171/sc2api, attempt: 82, running: True
[INFO 12:29:19] absl Connecting to: ws://127.0.0.1:24969/sc2api, attempt: 83, running: True
[INFO 12:29:19] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 82, running: True
[INFO 12:29:19] absl Connecting to: ws://127.0.0.1:21536/sc2api, attempt: 83, running: True
[INFO 12:29:19] absl Connecting to: ws://127.0.0.1:24415/sc2api, attempt: 82, running: True
[INFO 12:29:19] absl Connecting to: ws://127.0.0.1:24364/sc2api, attempt: 83, running: True
[INFO 12:29:20] absl Connecting to: ws://127.0.0.1:22380/sc2api, attempt: 84, running: True
[INFO 12:29:20] absl Connecting to: ws://127.0.0.1:24969/sc2api, attempt: 84, running: True
[INFO 12:29:20] absl Connecting to: ws://127.0.0.1:18171/sc2api, attempt: 83, running: True
[INFO 12:29:20] absl Connecting to: ws://127.0.0.1:19901/sc2api, attempt: 83, running: True
[INFO 12:29:20] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 83, running: True
[INFO 12:29:20] absl Connecting to: ws://127.0.0.1:24415/sc2api, attempt: 83, running: True
[INFO 12:29:20] absl Connecting to: ws://127.0.0.1:24364/sc2api, attempt: 84, running: True
[INFO 12:29:20] absl Connecting to: ws://127.0.0.1:21536/sc2api, attempt: 84, running: True
[INFO 12:29:21] absl Connecting to: ws://127.0.0.1:19901/sc2api, attempt: 84, running: True
[INFO 12:29:21] absl Connecting to: ws://127.0.0.1:24969/sc2api, attempt: 85, running: True
[INFO 12:29:21] absl Connecting to: ws://127.0.0.1:18171/sc2api, attempt: 84, running: True
[INFO 12:29:21] absl Connecting to: ws://127.0.0.1:22380/sc2api, attempt: 85, running: True
[INFO 12:29:21] absl Connecting to: ws://127.0.0.1:24415/sc2api, attempt: 84, running: True
[INFO 12:29:21] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 84, running: True
[INFO 12:29:21] absl Connecting to: ws://127.0.0.1:21536/sc2api, attempt: 85, running: True
[INFO 12:29:21] absl Connecting to: ws://127.0.0.1:24364/sc2api, attempt: 85, running: True
[INFO 12:29:22] absl Connecting to: ws://127.0.0.1:21536/sc2api, attempt: 86, running: True
[INFO 12:29:22] absl Connecting to: ws://127.0.0.1:19901/sc2api, attempt: 85, running: True
[INFO 12:29:22] absl Connecting to: ws://127.0.0.1:24969/sc2api, attempt: 86, running: True
[INFO 12:29:22] absl Connecting to: ws://127.0.0.1:22380/sc2api, attempt: 86, running: True
[INFO 12:29:22] absl Connecting to: ws://127.0.0.1:24415/sc2api, attempt: 85, running: True
[INFO 12:29:22] absl Connecting to: ws://127.0.0.1:24364/sc2api, attempt: 86, running: True
[INFO 12:29:22] absl Connecting to: ws://127.0.0.1:18171/sc2api, attempt: 85, running: True
[INFO 12:29:22] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 85, running: True
Listening on: 127.0.0.1:19901
Listening on: 127.0.0.1:24364
Listening on: 127.0.0.1:23352
Listening on: 127.0.0.1:18171
Listening on: 127.0.0.1:21536
Listening on: 127.0.0.1:24969
Listening on: 127.0.0.1:22380
Listening on: 127.0.0.1:24415
Startup Phase 3 complete. Ready for commands.
Startup Phase 3 complete. Ready for commands.
Startup Phase 3 complete. Ready for commands.
Startup Phase 3 complete. Ready for commands.
Startup Phase 3 complete. Ready for commands.
Startup Phase 3 complete. Ready for commands.
Startup Phase 3 complete. Ready for commands.
Startup Phase 3 complete. Ready for commands.
[INFO 12:29:23] absl Connecting to: ws://127.0.0.1:21536/sc2api, attempt: 87, running: True
[INFO 12:29:23] absl Connecting to: ws://127.0.0.1:24969/sc2api, attempt: 87, running: True
[INFO 12:29:23] absl Connecting to: ws://127.0.0.1:19901/sc2api, attempt: 86, running: True
[INFO 12:29:23] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 86, running: True
[INFO 12:29:23] absl Connecting to: ws://127.0.0.1:24415/sc2api, attempt: 86, running: True
[INFO 12:29:23] absl Connecting to: ws://127.0.0.1:22380/sc2api, attempt: 87, running: True
[INFO 12:29:23] absl Connecting to: ws://127.0.0.1:18171/sc2api, attempt: 86, running: True
[INFO 12:29:23] absl Connecting to: ws://127.0.0.1:24364/sc2api, attempt: 87, running: True
Requesting to join a single player game
Configuring interface options
Configure: raw interface enabled
Configure: feature layer interface disabled
Configure: score interface disabled
Configure: render interface disabled
Requesting to join a single player game
Configuring interface options
Configure: raw interface enabled
Configure: feature layer interface disabled
Configure: score interface disabled
Configure: render interface disabled
Entering load game phase.
Entering load game phase.
Launching next game.
Launching next game.
Requesting to join a single player game
Configuring interface options
Configure: raw interface enabled
Configure: feature layer interface disabled
Configure: score interface disabled
Configure: render interface disabled
Entering load game phase.
Launching next game.
Requesting to join a single player game
Configuring interface options
Configure: raw interface enabled
Configure: feature layer interface disabled
Configure: score interface disabled
Configure: render interface disabled
Requesting to join a single player game
Configuring interface options
Configure: raw interface enabled
Configure: feature layer interface disabled
Configure: score interface disabled
Configure: render interface disabled
Entering load game phase.
Launching next game.
Entering load game phase.
Launching next game.
Requesting to join a single player game
Configuring interface options
Requesting to join a single player game
Configuring interface options
Configure: raw interface enabled
Configure: feature layer interface disabled
Requesting to join a single player game
Configure: score interface disabled
Configure: raw interface enabled
Configuring interface options
Configure: render interface disabled
Configure: feature layer interface disabled
Configure: score interface disabled
Configure: render interface disabled
Configure: raw interface enabled
Configure: feature layer interface disabled
Configure: score interface disabled
Configure: render interface disabled
Entering load game phase.
Entering load game phase.
Entering load game phase.
Launching next game.
Launching next game.
Launching next game.
Next launch phase started: 2
Next launch phase started: 2
Next launch phase started: 2
Next launch phase started: 3
Next launch phase started: 3
Next launch phase started: 3
Next launch phase started: 2
Next launch phase started: 2
Next launch phase started: 2
Next launch phase started: 2
Next launch phase started: 3
Next launch phase started: 3
Next launch phase started: 2
Next launch phase started: 3
Next launch phase started: 3
Next launch phase started: 3
Next launch phase started: 4
Next launch phase started: 4
Next launch phase started: 5
Next launch phase started: 6
Next launch phase started: 7
Next launch phase started: 4
Next launch phase started: 8
Next launch phase started: 4
Next launch phase started: 5
Next launch phase started: 6
Next launch phase started: 5
Next launch phase started: 7
Next launch phase started: 6
Next launch phase started: 8
Next launch phase started: 7
Next launch phase started: 8
Next launch phase started: 4
Next launch phase started: 4
Next launch phase started: 5
Next launch phase started: 6
Next launch phase started: 7
Next launch phase started: 4
Next launch phase started: 4
Next launch phase started: 8
Next launch phase started: 5
Next launch phase started: 5
Next launch phase started: 6
Next launch phase started: 6
Next launch phase started: 7
Next launch phase started: 7
Next launch phase started: 8
Next launch phase started: 8
Next launch phase started: 5
Next launch phase started: 5
Next launch phase started: 6
Next launch phase started: 6
Next launch phase started: 7
Next launch phase started: 7
Next launch phase started: 8
Next launch phase started: 8
Process Process-3:
Process Process-4:
Process Process-5:
Process Process-8:
Process Process-2:
Process Process-1:
Process Process-7:
Process Process-6:
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/websocket/socket.py", line 81, in recv
bytes
= sock.recv(bufsize)
File "/usr/local/lib/python3.5/dist-packages/websocket/socket.py", line 81, in recv
bytes
= sock.recv(bufsize)
socket.timeout: timed out
socket.timeout: timed out

During handling of the above exception, another exception occurred:

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 66, in catch_websocket_connection_errors
yield
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 66, in catch_websocket_connection_errors
yield
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 183, in _read
response_str = self._sock.recv()
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 183, in _read
response_str = self._sock.recv()
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 302, in recv
opcode, data = self.recv_data()
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 302, in recv
opcode, data = self.recv_data()
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 319, in recv_data
opcode, frame = self.recv_data_frame(control_frame)
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 319, in recv_data
opcode, frame = self.recv_data_frame(control_frame)
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 332, in recv_data_frame
frame = self.recv_frame()
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 332, in recv_data_frame
frame = self.recv_frame()
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 366, in recv_frame
return self.frame_buffer.recv_frame()
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 366, in recv_frame
return self.frame_buffer.recv_frame()
File "/usr/local/lib/python3.5/dist-packages/websocket/_abnf.py", line 361, in recv_frame
self.recv_header()
File "/usr/local/lib/python3.5/dist-packages/websocket/_abnf.py", line 361, in recv_frame
self.recv_header()
File "/usr/local/lib/python3.5/dist-packages/websocket/_abnf.py", line 309, in recv_header
header = self.recv_strict(2)
File "/usr/local/lib/python3.5/dist-packages/websocket/_abnf.py", line 309, in recv_header
header = self.recv_strict(2)
File "/usr/local/lib/python3.5/dist-packages/websocket/abnf.py", line 396, in recv_strict
bytes
= self.recv(min(16384, shortage))
File "/usr/local/lib/python3.5/dist-packages/websocket/abnf.py", line 396, in recv_strict
bytes
= self.recv(min(16384, shortage))
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 441, in _recv
return recv(self.sock, bufsize)
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 441, in _recv
return recv(self.sock, bufsize)
File "/usr/local/lib/python3.5/dist-packages/websocket/_socket.py", line 84, in recv
raise WebSocketTimeoutException(message)
File "/usr/local/lib/python3.5/dist-packages/websocket/_socket.py", line 84, in recv
raise WebSocketTimeoutException(message)
websocket._exceptions.WebSocketTimeoutException: timed out
websocket._exceptions.WebSocketTimeoutException: timed out

During handling of the above exception, another exception occurred:

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 151, in send
res = self.send_req(req)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 151, in send
res = self.send_req(req)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 131, in send_req
return self.read()
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 131, in send_req
return self.read()
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 102, in read
response = self._read()
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 102, in read
response = self._read()
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 183, in _read
response_str = self._sock.recv()
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 183, in _read
response_str = self._sock.recv()
File "/usr/lib/python3.5/contextlib.py", line 77, in exit
self.gen.throw(type, value, traceback)
File "/usr/lib/python3.5/contextlib.py", line 77, in exit
self.gen.throw(type, value, traceback)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 71, in catch_websocket_connection_errors
raise ConnectionError("Websocket timed out.")
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 71, in catch_websocket_connection_errors
raise ConnectionError("Websocket timed out.")
pysc2.lib.protocol.ConnectionError: Websocket timed out.
pysc2.lib.protocol.ConnectionError: Websocket timed out.

During handling of the above exception, another exception occurred:

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
Traceback (most recent call last):
File "/usr/lib/python3.5/multiprocessing/process.py", line 249, in _bootstrap
self.run()
File "/usr/lib/python3.5/multiprocessing/process.py", line 249, in _bootstrap
self.run()
File "/usr/lib/python3.5/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/usr/lib/python3.5/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/home/limenglin519/pymarl/src/runners/parallel_runner.py", line 237, in env_worker
env.reset()
File "/home/limenglin519/pymarl/src/runners/parallel_runner.py", line 237, in env_worker
env.reset()
File "/usr/local/lib/python3.5/dist-packages/smac/env/starcraft2/starcraft2.py", line 341, in reset
self._launch()
File "/usr/local/lib/python3.5/dist-packages/smac/env/starcraft2/starcraft2.py", line 341, in reset
self._launch()
File "/usr/local/lib/python3.5/dist-packages/smac/env/starcraft2/starcraft2.py", line 308, in _launch
self._controller.join_game(join)
File "/usr/local/lib/python3.5/dist-packages/smac/env/starcraft2/starcraft2.py", line 308, in _launch
self._controller.join_game(join)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 99, in _valid_status
return func(self, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 99, in _valid_status
return func(self, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 74, in _check_error
return check_error(func(*args, **kwargs), error_enum)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 74, in _check_error
return check_error(func(*args, **kwargs), error_enum)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 209, in join_game
return self._client.send(join_game=req_join_game)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 209, in join_game
return self._client.send(join_game=req_join_game)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 153, in send
raise ConnectionError("Error during %s: %s" % (name, e))
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 153, in send
raise ConnectionError("Error during %s: %s" % (name, e))
pysc2.lib.protocol.ConnectionError: Error during join_game: Websocket timed out.
pysc2.lib.protocol.ConnectionError: Error during join_game: Websocket timed out.
File "/usr/local/lib/python3.5/dist-packages/websocket/socket.py", line 81, in recv
bytes
= sock.recv(bufsize)
socket.timeout: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 66, in catch_websocket_connection_errors
yield
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 183, in _read
response_str = self._sock.recv()
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 302, in recv
opcode, data = self.recv_data()
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 319, in recv_data
opcode, frame = self.recv_data_frame(control_frame)
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 332, in recv_data_frame
frame = self.recv_frame()
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 366, in recv_frame
return self.frame_buffer.recv_frame()
File "/usr/local/lib/python3.5/dist-packages/websocket/_abnf.py", line 361, in recv_frame
self.recv_header()
File "/usr/local/lib/python3.5/dist-packages/websocket/_abnf.py", line 309, in recv_header
header = self.recv_strict(2)
File "/usr/local/lib/python3.5/dist-packages/websocket/abnf.py", line 396, in recv_strict
bytes
= self.recv(min(16384, shortage))
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 441, in _recv
return recv(self.sock, bufsize)
File "/usr/local/lib/python3.5/dist-packages/websocket/_socket.py", line 84, in recv
raise WebSocketTimeoutException(message)
websocket._exceptions.WebSocketTimeoutException: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 151, in send
res = self.send_req(req)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 131, in send_req
return self.read()
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 102, in read
response = self._read()
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 183, in _read
response_str = self._sock.recv()
File "/usr/lib/python3.5/contextlib.py", line 77, in exit
self.gen.throw(type, value, traceback)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 71, in catch_websocket_connection_errors
raise ConnectionError("Websocket timed out.")
pysc2.lib.protocol.ConnectionError: Websocket timed out.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/lib/python3.5/multiprocessing/process.py", line 249, in _bootstrap
self.run()
File "/usr/lib/python3.5/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/home/limenglin519/pymarl/src/runners/parallel_runner.py", line 237, in env_worker
env.reset()
File "/usr/local/lib/python3.5/dist-packages/smac/env/starcraft2/starcraft2.py", line 341, in reset
self._launch()
File "/usr/local/lib/python3.5/dist-packages/smac/env/starcraft2/starcraft2.py", line 308, in _launch
self._controller.join_game(join)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 99, in _valid_status
return func(self, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 74, in _check_error
return check_error(func(*args, **kwargs), error_enum)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 209, in join_game
return self._client.send(join_game=req_join_game)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 153, in send
raise ConnectionError("Error during %s: %s" % (name, e))
pysc2.lib.protocol.ConnectionError: Error during join_game: Websocket timed out.
File "/usr/local/lib/python3.5/dist-packages/websocket/socket.py", line 81, in recv
bytes
= sock.recv(bufsize)
socket.timeout: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 66, in catch_websocket_connection_errors
yield
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 183, in _read
response_str = self._sock.recv()
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 302, in recv
opcode, data = self.recv_data()
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 319, in recv_data
opcode, frame = self.recv_data_frame(control_frame)
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 332, in recv_data_frame
frame = self.recv_frame()
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 366, in recv_frame
return self.frame_buffer.recv_frame()
File "/usr/local/lib/python3.5/dist-packages/websocket/_abnf.py", line 361, in recv_frame
self.recv_header()
File "/usr/local/lib/python3.5/dist-packages/websocket/_abnf.py", line 309, in recv_header
header = self.recv_strict(2)
File "/usr/local/lib/python3.5/dist-packages/websocket/abnf.py", line 396, in recv_strict
bytes
= self.recv(min(16384, shortage))
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 441, in _recv
return recv(self.sock, bufsize)
File "/usr/local/lib/python3.5/dist-packages/websocket/_socket.py", line 84, in recv
raise WebSocketTimeoutException(message)
websocket._exceptions.WebSocketTimeoutException: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 151, in send
res = self.send_req(req)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 131, in send_req
return self.read()
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 102, in read
response = self._read()
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 183, in _read
response_str = self._sock.recv()
File "/usr/lib/python3.5/contextlib.py", line 77, in exit
self.gen.throw(type, value, traceback)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 71, in catch_websocket_connection_errors
raise ConnectionError("Websocket timed out.")
pysc2.lib.protocol.ConnectionError: Websocket timed out.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/lib/python3.5/multiprocessing/process.py", line 249, in _bootstrap
self.run()
File "/usr/lib/python3.5/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/home/limenglin519/pymarl/src/runners/parallel_runner.py", line 237, in env_worker
env.reset()
File "/usr/local/lib/python3.5/dist-packages/smac/env/starcraft2/starcraft2.py", line 341, in reset
self._launch()
File "/usr/local/lib/python3.5/dist-packages/smac/env/starcraft2/starcraft2.py", line 308, in _launch
self._controller.join_game(join)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 99, in _valid_status
return func(self, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 74, in _check_error
return check_error(func(*args, **kwargs), error_enum)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 209, in join_game
return self._client.send(join_game=req_join_game)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 153, in send
raise ConnectionError("Error during %s: %s" % (name, e))
pysc2.lib.protocol.ConnectionError: Error during join_game: Websocket timed out.
File "/usr/local/lib/python3.5/dist-packages/websocket/socket.py", line 81, in recv
bytes
= sock.recv(bufsize)
socket.timeout: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 66, in catch_websocket_connection_errors
yield
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 183, in _read
response_str = self._sock.recv()
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 302, in recv
opcode, data = self.recv_data()
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 319, in recv_data
opcode, frame = self.recv_data_frame(control_frame)
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 332, in recv_data_frame
frame = self.recv_frame()
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 366, in recv_frame
return self.frame_buffer.recv_frame()
File "/usr/local/lib/python3.5/dist-packages/websocket/_abnf.py", line 361, in recv_frame
self.recv_header()
File "/usr/local/lib/python3.5/dist-packages/websocket/_abnf.py", line 309, in recv_header
header = self.recv_strict(2)
File "/usr/local/lib/python3.5/dist-packages/websocket/abnf.py", line 396, in recv_strict
bytes
= self.recv(min(16384, shortage))
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 441, in _recv
return recv(self.sock, bufsize)
File "/usr/local/lib/python3.5/dist-packages/websocket/_socket.py", line 84, in recv
raise WebSocketTimeoutException(message)
websocket._exceptions.WebSocketTimeoutException: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 151, in send
res = self.send_req(req)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 131, in send_req
return self.read()
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 102, in read
response = self._read()
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 183, in _read
response_str = self._sock.recv()
File "/usr/lib/python3.5/contextlib.py", line 77, in exit
self.gen.throw(type, value, traceback)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 71, in catch_websocket_connection_errors
raise ConnectionError("Websocket timed out.")
pysc2.lib.protocol.ConnectionError: Websocket timed out.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/lib/python3.5/multiprocessing/process.py", line 249, in _bootstrap
self.run()
File "/usr/lib/python3.5/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/home/limenglin519/pymarl/src/runners/parallel_runner.py", line 237, in env_worker
env.reset()
File "/usr/local/lib/python3.5/dist-packages/smac/env/starcraft2/starcraft2.py", line 341, in reset
self._launch()
File "/usr/local/lib/python3.5/dist-packages/smac/env/starcraft2/starcraft2.py", line 308, in _launch
self._controller.join_game(join)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 99, in _valid_status
return func(self, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 74, in _check_error
return check_error(func(*args, **kwargs), error_enum)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 209, in join_game
return self._client.send(join_game=req_join_game)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 153, in send
raise ConnectionError("Error during %s: %s" % (name, e))
pysc2.lib.protocol.ConnectionError: Error during join_game: Websocket timed out.
File "/usr/local/lib/python3.5/dist-packages/websocket/socket.py", line 81, in recv
bytes
= sock.recv(bufsize)
socket.timeout: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 66, in catch_websocket_connection_errors
yield
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 183, in _read
response_str = self._sock.recv()
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 302, in recv
opcode, data = self.recv_data()
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 319, in recv_data
opcode, frame = self.recv_data_frame(control_frame)
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 332, in recv_data_frame
frame = self.recv_frame()
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 366, in recv_frame
return self.frame_buffer.recv_frame()
File "/usr/local/lib/python3.5/dist-packages/websocket/_abnf.py", line 361, in recv_frame
self.recv_header()
File "/usr/local/lib/python3.5/dist-packages/websocket/_abnf.py", line 309, in recv_header
header = self.recv_strict(2)
File "/usr/local/lib/python3.5/dist-packages/websocket/abnf.py", line 396, in recv_strict
bytes
= self.recv(min(16384, shortage))
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 441, in _recv
return recv(self.sock, bufsize)
File "/usr/local/lib/python3.5/dist-packages/websocket/_socket.py", line 84, in recv
raise WebSocketTimeoutException(message)
websocket._exceptions.WebSocketTimeoutException: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 151, in send
res = self.send_req(req)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 131, in send_req
return self.read()
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 102, in read
response = self._read()
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 183, in _read
response_str = self._sock.recv()
File "/usr/lib/python3.5/contextlib.py", line 77, in exit
self.gen.throw(type, value, traceback)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 71, in catch_websocket_connection_errors
raise ConnectionError("Websocket timed out.")
pysc2.lib.protocol.ConnectionError: Websocket timed out.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/lib/python3.5/multiprocessing/process.py", line 249, in _bootstrap
self.run()
File "/usr/lib/python3.5/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/home/limenglin519/pymarl/src/runners/parallel_runner.py", line 237, in env_worker
env.reset()
File "/usr/local/lib/python3.5/dist-packages/smac/env/starcraft2/starcraft2.py", line 341, in reset
self._launch()
File "/usr/local/lib/python3.5/dist-packages/smac/env/starcraft2/starcraft2.py", line 308, in _launch
self._controller.join_game(join)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 99, in _valid_status
return func(self, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 74, in _check_error
return check_error(func(*args, **kwargs), error_enum)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 209, in join_game
return self._client.send(join_game=req_join_game)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 153, in send
raise ConnectionError("Error during %s: %s" % (name, e))
pysc2.lib.protocol.ConnectionError: Error during join_game: Websocket timed out.
File "/usr/local/lib/python3.5/dist-packages/websocket/socket.py", line 81, in recv
bytes
= sock.recv(bufsize)
socket.timeout: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 66, in catch_websocket_connection_errors
yield
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 183, in _read
response_str = self._sock.recv()
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 302, in recv
opcode, data = self.recv_data()
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 319, in recv_data
opcode, frame = self.recv_data_frame(control_frame)
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 332, in recv_data_frame
frame = self.recv_frame()
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 366, in recv_frame
return self.frame_buffer.recv_frame()
File "/usr/local/lib/python3.5/dist-packages/websocket/_abnf.py", line 361, in recv_frame
self.recv_header()
File "/usr/local/lib/python3.5/dist-packages/websocket/_abnf.py", line 309, in recv_header
header = self.recv_strict(2)
File "/usr/local/lib/python3.5/dist-packages/websocket/abnf.py", line 396, in recv_strict
bytes
= self.recv(min(16384, shortage))
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 441, in _recv
return recv(self.sock, bufsize)
File "/usr/local/lib/python3.5/dist-packages/websocket/_socket.py", line 84, in recv
raise WebSocketTimeoutException(message)
websocket._exceptions.WebSocketTimeoutException: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 151, in send
res = self.send_req(req)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 131, in send_req
return self.read()
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 102, in read
response = self._read()
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 183, in _read
response_str = self._sock.recv()
File "/usr/lib/python3.5/contextlib.py", line 77, in exit
self.gen.throw(type, value, traceback)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 71, in catch_websocket_connection_errors
raise ConnectionError("Websocket timed out.")
pysc2.lib.protocol.ConnectionError: Websocket timed out.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/lib/python3.5/multiprocessing/process.py", line 249, in _bootstrap
self.run()
File "/usr/lib/python3.5/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/home/limenglin519/pymarl/src/runners/parallel_runner.py", line 237, in env_worker
env.reset()
File "/usr/local/lib/python3.5/dist-packages/smac/env/starcraft2/starcraft2.py", line 341, in reset
self._launch()
File "/usr/local/lib/python3.5/dist-packages/smac/env/starcraft2/starcraft2.py", line 308, in _launch
self._controller.join_game(join)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 99, in _valid_status
return func(self, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 74, in _check_error
return check_error(func(*args, **kwargs), error_enum)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 209, in join_game
return self._client.send(join_game=req_join_game)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 153, in send
raise ConnectionError("Error during %s: %s" % (name, e))
pysc2.lib.protocol.ConnectionError: Error during join_game: Websocket timed out.
File "/usr/local/lib/python3.5/dist-packages/websocket/socket.py", line 81, in recv
bytes
= sock.recv(bufsize)
socket.timeout: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 66, in catch_websocket_connection_errors
yield
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 183, in _read
response_str = self._sock.recv()
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 302, in recv
opcode, data = self.recv_data()
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 319, in recv_data
opcode, frame = self.recv_data_frame(control_frame)
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 332, in recv_data_frame
frame = self.recv_frame()
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 366, in recv_frame
return self.frame_buffer.recv_frame()
File "/usr/local/lib/python3.5/dist-packages/websocket/_abnf.py", line 361, in recv_frame
self.recv_header()
File "/usr/local/lib/python3.5/dist-packages/websocket/_abnf.py", line 309, in recv_header
header = self.recv_strict(2)
File "/usr/local/lib/python3.5/dist-packages/websocket/abnf.py", line 396, in recv_strict
bytes
= self.recv(min(16384, shortage))
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 441, in _recv
return recv(self.sock, bufsize)
File "/usr/local/lib/python3.5/dist-packages/websocket/_socket.py", line 84, in recv
raise WebSocketTimeoutException(message)
websocket._exceptions.WebSocketTimeoutException: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 151, in send
res = self.send_req(req)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 131, in send_req
return self.read()
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 102, in read
response = self._read()
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 183, in _read
response_str = self._sock.recv()
File "/usr/lib/python3.5/contextlib.py", line 77, in exit
self.gen.throw(type, value, traceback)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 71, in catch_websocket_connection_errors
raise ConnectionError("Websocket timed out.")
pysc2.lib.protocol.ConnectionError: Websocket timed out.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/lib/python3.5/multiprocessing/process.py", line 249, in _bootstrap
self.run()
File "/usr/lib/python3.5/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/home/limenglin519/pymarl/src/runners/parallel_runner.py", line 237, in env_worker
env.reset()
File "/usr/local/lib/python3.5/dist-packages/smac/env/starcraft2/starcraft2.py", line 341, in reset
self._launch()
File "/usr/local/lib/python3.5/dist-packages/smac/env/starcraft2/starcraft2.py", line 308, in _launch
self._controller.join_game(join)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 99, in _valid_status
return func(self, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 74, in _check_error
return check_error(func(*args, **kwargs), error_enum)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/remote_controller.py", line 209, in join_game
return self._client.send(join_game=req_join_game)
File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/protocol.py", line 153, in send
raise ConnectionError("Error during %s: %s" % (name, e))
pysc2.lib.protocol.ConnectionError: Error during join_game: Websocket timed out.
Game has started.
Game has started.
Game has started.
Game has started.
Game has started.
Game has started.
Game has started.
Game has started.
Sending ResponseJoinGame
Sending ResponseJoinGame
Sending ResponseJoinGame
Sending ResponseJoinGame
Sending ResponseJoinGame
Sending ResponseJoinGame
Sending ResponseJoinGame
Sending ResponseJoinGame

I would very appreciate if u can help me to solve this problem. Thank u.

How are the Agents called?

I am trying to understand the training process.

I can see that the Qmixer is called in the q_learning module.

What I cannot see is how the agents (RNNagent) are being called and how they are connected to the hyper network for weight sharing.

Edit: also, how are the def forward() functions working and what are the REGISTRY functions used for? I believe these are related to the agent in the basic_controller.py module.

Running docker in Windows

I try to run pymarl in a docker container on a windows pc. Besides from adjusting the run.sh to:

#!/bin/bash
HASH=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 4 | head -n 1)
GPU=$1
name=$(whoami)_pymarl_GPU_${GPU}_${HASH}

echo "Launching container named '${name}' on GPU '${GPU}'"
# Launches a docker container using our image, and runs the provided command

if hash nvidia-docker 2>/dev/null; then
  cmd=nvidia-docker
else
  cmd=docker
fi

NV_GPU="$GPU" ${cmd} run \
    --name $name \
    --user $(id -u):$(id -g) \
    -v /$(pwd):/pymarl \
    -t pymarl:1.0 \
    ${@:2}

I receive an error from OpenGL

Attempting to initialize EGL from file libEGL.so ...
Failed to find EGL functions in library file!

on execution of command:

[INFO 18:15:22] absl Launching SC2: /pymarl/3rdparty/StarCraftII/Versions/Base69232/SC2_x64 -listen 127.0.0.1 -port 15923 -dataDir /pymarl/3rdparty/StarCraftII/ -tempDir /tmp/sc-and62dp2/ -eglpath libEGL.so

I am not very familiar with docker but it looks like the docker image is missing support for headless opengl rendering which does not cause problems on Ubuntu16.04 systems.
Am i doing somethin wrong is there indeed no support for windows in the current image?

PS: could using this dockerfile as a base help: https://hub.docker.com/r/nvidia/cudagl ?

how can I debug the code,there is the problem

I debug it by pycharm, and I put the parameters "--config=qmix --env-config=sc2 with env_args.map_name=2s3z save_model=True save_model_interval=20000" in Edit Configurations.
there is:
FileNotFoundError: [Errno 2] No such file or directory: '/home/gezhixin/pymarl-master/src/3rdparty/StarCraftII/Versions'
I know the path is false, but how can I fix it.

I can't start sc2, and the error like this "libEGL warning: MESA-LOADER: failed to open nouveau (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri)"

libEGL warning: MESA-LOADER: failed to open nouveau (search paths /usr/lib/x86_64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri)

libEGL warning: MESA-LOADER: failed to open nouveau (search paths /usr/lib/x86_64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri)

libEGL warning: MESA-LOADER: failed to open nouveau (search paths /usr/lib/x86_64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri)

libEGL warning: MESA-LOADER: failed to open nouveau (search paths /usr/lib/x86_64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri)

libEGL warning: Not allowed to force software rendering when API explicitly selects a hardware device.
libEGL warning: Not allowed to force software rendering when API explicitly selects a hardware device.
libEGL warning: Not allowed to force software rendering when API explicitly selects a hardware device.
libEGL warning: Not allowed to force software rendering when API explicitly selects a hardware device.
libEGL warning: MESA-LOADER: failed to open nouveau (search paths /usr/lib/x86_64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri)

libEGL warning: MESA-LOADER: failed to open nouveau (search paths /usr/lib/x86_64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri)

libEGL warning: MESA-LOADER: failed to open nouveau (search paths /usr/lib/x86_64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri)

libEGL warning: MESA-LOADER: failed to open nouveau (search paths /usr/lib/x86_64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri)

Error signal: '11'
Backtrace:
Error signal: '11'
Backtrace:
Error signal: '11'
Backtrace:
Error signal: '11'
Backtrace:
[WARNING 21:02:09] absl SC2 isn't running, so bailing early on the websocket connection.
[WARNING 21:02:09] absl SC2 isn't running, so bailing early on the websocket connection.
[WARNING 21:02:09] absl SC2 isn't running, so bailing early on the websocket connection.
[WARNING 21:02:09] absl SC2 isn't running, so bailing early on the websocket connection.
[INFO 21:02:09] absl Shutdown gracefully.
[INFO 21:02:09] absl Shutdown gracefully.
[INFO 21:02:09] absl Shutdown gracefully.
[INFO 21:02:09] absl Shutdown gracefully.
[INFO 21:02:09] absl Shutdown with return code: -11
[INFO 21:02:09] absl Shutdown with return code: -11
[INFO 21:02:09] absl Shutdown with return code: -11
[INFO 21:02:09] absl Shutdown with return code: -11
Process Process-2:
Process Process-3:
Process Process-4:
Process Process-1:
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
File "/usr/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/usr/lib/python3.6/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/home/gzx/pymarl-master/src/runners/parallel_runner.py", line 237, in env_worker
env.reset()
File "/home/gzx/.local/lib/python3.6/site-packages/smac/env/starcraft2/starcraft2.py", line 347, in reset
self._launch()
File "/home/gzx/.local/lib/python3.6/site-packages/smac/env/starcraft2/starcraft2.py", line 297, in _launch
self._sc2_proc = self._run_config.start(window_size=self.window_size)
File "/home/gzx/.local/lib/python3.6/site-packages/pysc2/run_configs/platforms.py", line 205, in start
want_rgb=want_rgb, extra_args=extra_args, **kwargs)
File "/usr/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/usr/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/usr/lib/python3.6/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/home/gzx/pymarl-master/src/runners/parallel_runner.py", line 237, in env_worker
env.reset()
File "/home/gzx/.local/lib/python3.6/site-packages/smac/env/starcraft2/starcraft2.py", line 347, in reset
self._launch()
File "/home/gzx/.local/lib/python3.6/site-packages/smac/env/starcraft2/starcraft2.py", line 297, in _launch
self._sc2_proc = self._run_config.start(window_size=self.window_size)
File "/home/gzx/.local/lib/python3.6/site-packages/pysc2/run_configs/platforms.py", line 205, in start
want_rgb=want_rgb, extra_args=extra_args, **kwargs)
File "/home/gzx/.local/lib/python3.6/site-packages/pysc2/run_configs/platforms.py", line 88, in start
self, exec_path=exec_path, version=self.version, **kwargs)
File "/home/gzx/.local/lib/python3.6/site-packages/pysc2/lib/sc_process.py", line 143, in init
self._host, self._port, self, timeout_seconds=timeout_seconds)
File "/home/gzx/.local/lib/python3.6/site-packages/pysc2/lib/remote_controller.py", line 146, in init
sock = self._connect(host, port, proc, timeout_seconds)
File "/home/gzx/.local/lib/python3.6/site-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "/home/gzx/.local/lib/python3.6/site-packages/pysc2/lib/remote_controller.py", line 180, in _connect
raise ConnectError("Failed to connect to the SC2 websocket. Is it up?")
File "/usr/lib/python3.6/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
pysc2.lib.remote_controller.ConnectError: Failed to connect to the SC2 websocket. Is it up?
File "/home/gzx/pymarl-master/src/runners/parallel_runner.py", line 237, in env_worker
env.reset()
File "/home/gzx/.local/lib/python3.6/site-packages/smac/env/starcraft2/starcraft2.py", line 347, in reset
self._launch()
File "/home/gzx/.local/lib/python3.6/site-packages/smac/env/starcraft2/starcraft2.py", line 297, in _launch
self._sc2_proc = self._run_config.start(window_size=self.window_size)
File "/home/gzx/.local/lib/python3.6/site-packages/pysc2/run_configs/platforms.py", line 205, in start
want_rgb=want_rgb, extra_args=extra_args, **kwargs)
File "/home/gzx/.local/lib/python3.6/site-packages/pysc2/run_configs/platforms.py", line 88, in start
self, exec_path=exec_path, version=self.version, **kwargs)
File "/home/gzx/.local/lib/python3.6/site-packages/pysc2/lib/sc_process.py", line 143, in init
self._host, self._port, self, timeout_seconds=timeout_seconds)
File "/home/gzx/.local/lib/python3.6/site-packages/pysc2/lib/remote_controller.py", line 146, in init
sock = self._connect(host, port, proc, timeout_seconds)
File "/home/gzx/.local/lib/python3.6/site-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "/home/gzx/.local/lib/python3.6/site-packages/pysc2/lib/remote_controller.py", line 180, in _connect
raise ConnectError("Failed to connect to the SC2 websocket. Is it up?")
pysc2.lib.remote_controller.ConnectError: Failed to connect to the SC2 websocket. Is it up?
File "/home/gzx/.local/lib/python3.6/site-packages/pysc2/run_configs/platforms.py", line 88, in start
self, exec_path=exec_path, version=self.version, **kwargs)
File "/home/gzx/.local/lib/python3.6/site-packages/pysc2/lib/sc_process.py", line 143, in init
self._host, self._port, self, timeout_seconds=timeout_seconds)
File "/home/gzx/.local/lib/python3.6/site-packages/pysc2/lib/remote_controller.py", line 146, in init
sock = self._connect(host, port, proc, timeout_seconds)
Traceback (most recent call last):
File "/home/gzx/.local/lib/python3.6/site-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "/home/gzx/.local/lib/python3.6/site-packages/pysc2/lib/remote_controller.py", line 180, in _connect
raise ConnectError("Failed to connect to the SC2 websocket. Is it up?")
pysc2.lib.remote_controller.ConnectError: Failed to connect to the SC2 websocket. Is it up?
File "/usr/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/usr/lib/python3.6/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/home/gzx/pymarl-master/src/runners/parallel_runner.py", line 237, in env_worker
env.reset()
File "/home/gzx/.local/lib/python3.6/site-packages/smac/env/starcraft2/starcraft2.py", line 347, in reset
self._launch()
File "/home/gzx/.local/lib/python3.6/site-packages/smac/env/starcraft2/starcraft2.py", line 297, in _launch
self._sc2_proc = self._run_config.start(window_size=self.window_size)
File "/home/gzx/.local/lib/python3.6/site-packages/pysc2/run_configs/platforms.py", line 205, in start
want_rgb=want_rgb, extra_args=extra_args, **kwargs)
File "/home/gzx/.local/lib/python3.6/site-packages/pysc2/run_configs/platforms.py", line 88, in start
self, exec_path=exec_path, version=self.version, **kwargs)
File "/home/gzx/.local/lib/python3.6/site-packages/pysc2/lib/sc_process.py", line 143, in init
self._host, self._port, self, timeout_seconds=timeout_seconds)
File "/home/gzx/.local/lib/python3.6/site-packages/pysc2/lib/remote_controller.py", line 146, in init
sock = self._connect(host, port, proc, timeout_seconds)
File "/home/gzx/.local/lib/python3.6/site-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "/home/gzx/.local/lib/python3.6/site-packages/pysc2/lib/remote_controller.py", line 180, in _connect
raise ConnectError("Failed to connect to the SC2 websocket. Is it up?")
pysc2.lib.remote_controller.ConnectError: Failed to connect to the SC2 websocket. Is it up?

How do you develop with this repository?

Hi,

I am new to developing rl algorithms and ml in general. I wanted to ask here what setup/work pipeline do you use to develop new algorithms for this repo?

I have a hard time to set up pycharm with a miniconda environment and running my code is docker is tedious to find errors.

I am glad for any tip.

Running Error from fresh installed docker

After installing Docker and run with the command inside the docker, I got the following message error.

File "/usr/local/lib/python3.5/dist-packages/pysc2/run_configs/platforms.py", line 179, in init
super(Linux, self).init(base_dir, "SC2_x64", version=version, env=env)
File "/usr/local/lib/python3.5/dist-packages/pysc2/run_configs/init.py", line 40, in get
return max(configs.values(), key=lambda c: c.priority())(version=version)
File "/usr/local/lib/python3.5/dist-packages/pysc2/run_configs/platforms.py", line 63, in init
data_dir=base_dir, tmp_dir=None, version=version, cwd=cwd, env=env)
File "/usr/local/lib/python3.5/dist-packages/pysc2/run_configs/platforms.py", line 179, in init
super(Linux, self).init(base_dir, "SC2_x64", version=version, env=env)
File "/usr/local/lib/python3.5/dist-packages/pysc2/run_configs/lib.py", line 112, in init
self.version = self._get_version(version)
File "/usr/local/lib/python3.5/dist-packages/pysc2/run_configs/platforms.py", line 63, in init
data_dir=base_dir, tmp_dir=None, version=version, cwd=cwd, env=env)
File "/usr/local/lib/python3.5/dist-packages/pysc2/run_configs/lib.py", line 220, in _get_version
versions = self.get_versions(containing=game_version)
File "/usr/local/lib/python3.5/dist-packages/pysc2/run_configs/lib.py", line 112, in init
self.version = self._get_version(version)
File "/usr/local/lib/python3.5/dist-packages/pysc2/run_configs/platforms.py", line 94, in get_versions
for v in os.listdir(versions_dir)
File "/usr/local/lib/python3.5/dist-packages/pysc2/run_configs/lib.py", line 220, in _get_version
versions = self.get_versions(containing=game_version)
File "/usr/local/lib/python3.5/dist-packages/pysc2/run_configs/platforms.py", line 94, in get_versions
for v in os.listdir(versions_dir)
FileNotFoundError: [Errno 2] No such file or directory: '/pymarl/3rdparty/StarCraftII/Versions'

Just wondering did I miss something in the installing processes.

running is intercepted with error between StarCraft 2 app

crash

Hi I tried running qmix with MMM map

(star2) D:\Documents\star2_multi_agents\pymarl-master\pymarl-master\src>python main.py --config=qmix_smac --env-config=sc2 with env_args.map_name=MMM
main.py:71: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
config_dict = yaml.load(f)
main.py:50: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
config_dict = yaml.load(f)
[INFO 14:27:16] root Saving to FileStorageObserver in results/sacred.
[DEBUG 14:27:19] pymarl Using capture mode "fd"

So this is run now but any unit in sc2 does not move and time is not started just stay in 0:00. And the picture I posted is come up with sc2 app. I live in Korea so in English that does mean "There is an error in access authorization from core". second sentence meant "Please explain the situation when an error occurred to help development team solve the problem". Last one meant "when you are discussing with blizzard about this problem, use below ID". The buttons are respectively "running again", and "close".

As a result, I clicked "close" button but any unit in sc2 app does not take any action.

I don't find the implementation of the IQL

Hello,Thank you for your efforts for this implementations.
I want to find the implementation of the IQL, unfortunately,I don't find it.(but I find the iql_smac.yaml file in config folder) Would you mind tell me where is it?
Thank you!

killed without warnings or errors

Hi, I have been running python3 src/main.py --config=qmix_smac --env-config=sc2 with env_args.map_name=2s3z and my process was killed suddenly. I have no idea why this occurred. Here is part of the output. (And by the way, I really don't understand why every INFO shows up eight times.)
I know there is a similar problem here, but we don't have exactly the same problems.
Anyone can help me? Thanks a lot. And also thanks for this repo.

`[INFO 12:57:42] my_main Beginning training for 10050000 timesteps

[INFO 12:57:43] absl No GL library found, so RGB rendering will be disabled. For software rendering install libosmesa.
[INFO 12:57:43] absl No GL library found, so RGB rendering will be disabled. For software rendering install libosmesa.
[INFO 12:57:43] absl No GL library found, so RGB rendering will be disabled. For software rendering install libosmesa.
[INFO 12:57:43] absl No GL library found, so RGB rendering will be disabled. For software rendering install libosmesa.
[INFO 12:57:43] absl No GL library found, so RGB rendering will be disabled. For software rendering install libosmesa.
[INFO 12:57:43] absl No GL library found, so RGB rendering will be disabled. For software rendering install libosmesa.
[INFO 12:57:43] absl No GL library found, so RGB rendering will be disabled. For software rendering install libosmesa.
[INFO 12:57:43] absl No GL library found, so RGB rendering will be disabled. For software rendering install libosmesa.
[INFO 12:57:43] absl Launching SC2: /home/ch/pymarl/3rdparty/StarCraftII/Versions/Base69232/SC2_x64 -listen 127.0.0.1 -port 23352 -dataDir /home/ch/pymarl/3rdparty/StarCraftII/ -tempDir /tmp/sc-ni4r5f6w/ -displayMode 0 -windowwidth 1920 -windowheight 1200 -windowx 50 -windowy 50
[INFO 12:57:43] absl Launching SC2: /home/ch/pymarl/3rdparty/StarCraftII/Versions/Base69232/SC2_x64 -listen 127.0.0.1 -port 19667 -dataDir /home/ch/pymarl/3rdparty/StarCraftII/ -tempDir /tmp/sc-ywijkadp/ -displayMode 0 -windowwidth 1920 -windowheight 1200 -windowx 50 -windowy 50
[INFO 12:57:43] absl Launching SC2: /home/ch/pymarl/3rdparty/StarCraftII/Versions/Base69232/SC2_x64 -listen 127.0.0.1 -port 16964 -dataDir /home/ch/pymarl/3rdparty/StarCraftII/ -tempDir /tmp/sc-0bs56nd5/ -displayMode 0 -windowwidth 1920 -windowheight 1200 -windowx 50 -windowy 50
[INFO 12:57:43] absl Launching SC2: /home/ch/pymarl/3rdparty/StarCraftII/Versions/Base69232/SC2_x64 -listen 127.0.0.1 -port 21594 -dataDir /home/ch/pymarl/3rdparty/StarCraftII/ -tempDir /tmp/sc-z44i84pm/ -displayMode 0 -windowwidth 1920 -windowheight 1200 -windowx 50 -windowy 50
[INFO 12:57:43] absl Launching SC2: /home/ch/pymarl/3rdparty/StarCraftII/Versions/Base69232/SC2_x64 -listen 127.0.0.1 -port 21722 -dataDir /home/ch/pymarl/3rdparty/StarCraftII/ -tempDir /tmp/sc-qu3cm6ig/ -displayMode 0 -windowwidth 1920 -windowheight 1200 -windowx 50 -windowy 50
[INFO 12:57:43] absl Launching SC2: /home/ch/pymarl/3rdparty/StarCraftII/Versions/Base69232/SC2_x64 -listen 127.0.0.1 -port 24486 -dataDir /home/ch/pymarl/3rdparty/StarCraftII/ -tempDir /tmp/sc-nccgtyde/ -displayMode 0 -windowwidth 1920 -windowheight 1200 -windowx 50 -windowy 50
[INFO 12:57:43] absl Launching SC2: /home/ch/pymarl/3rdparty/StarCraftII/Versions/Base69232/SC2_x64 -listen 127.0.0.1 -port 17230 -dataDir /home/ch/pymarl/3rdparty/StarCraftII/ -tempDir /tmp/sc-murh5_yx/ -displayMode 0 -windowwidth 1920 -windowheight 1200 -windowx 50 -windowy 50
[INFO 12:57:43] absl Launching SC2: /home/ch/pymarl/3rdparty/StarCraftII/Versions/Base69232/SC2_x64 -listen 127.0.0.1 -port 22863 -dataDir /home/ch/pymarl/3rdparty/StarCraftII/ -tempDir /tmp/sc-ujzqhm1t/ -displayMode 0 -windowwidth 1920 -windowheight 1200 -windowx 50 -windowy 50
[INFO 12:57:43] absl Connecting to: ws://127.0.0.1:21594/sc2api, attempt: 0, running: True
[INFO 12:57:43] absl Connecting to: ws://127.0.0.1:17230/sc2api, attempt: 0, running: True
[INFO 12:57:43] absl Connecting to: ws://127.0.0.1:19667/sc2api, attempt: 0, running: True
[INFO 12:57:43] absl Connecting to: ws://127.0.0.1:24486/sc2api, attempt: 0, running: True
[INFO 12:57:43] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 0, running: True
[INFO 12:57:43] absl Connecting to: ws://127.0.0.1:21722/sc2api, attempt: 0, running: True
[INFO 12:57:43] absl Connecting to: ws://127.0.0.1:16964/sc2api, attempt: 0, running: True
[INFO 12:57:43] absl Connecting to: ws://127.0.0.1:22863/sc2api, attempt: 0, running: True
Version: B69232 (SC2.4.6-Publish)
Version: B69232 (SC2.4.6-Publish)
Version: B69232 (SC2.4.6-Publish)
Build: Oct 23 2018 01:43:04
Build: Oct 23 2018 01:43:04
Build: Oct 23 2018 01:43:04
Version: B69232 (SC2.4.6-Publish)
Build: Oct 23 2018 01:43:04
Command Line: '"/home/ch/pymarl/3rdparty/StarCraftII/Versions/Base69232/SC2_x64" -listen 127.0.0.1 -port 22863 -dataDir /home/ch/pymarl/3rdparty/StarCraftII/ -tempDir /tmp/sc-ujzqhm1t/ -displayMode 0 -windowwidth 1920 -windowheight 1200 -windowx 50 -windowy 50'
Command Line: '"/home/ch/pymarl/3rdparty/StarCraftII/Versions/Base69232/SC2_x64" -listen 127.0.0.1 -port 24486 -dataDir /home/ch/pymarl/3rdparty/StarCraftII/ -tempDir /tmp/sc-nccgtyde/ -displayMode 0 -windowwidth 1920 -windowheight 1200 -windowx 50 -windowy 50'
Command Line: '"/home/ch/pymarl/3rdparty/StarCraftII/Versions/Base69232/SC2_x64" -listen 127.0.0.1 -port 23352 -dataDir /home/ch/pymarl/3rdparty/StarCraftII/ -tempDir /tmp/sc-ni4r5f6w/ -displayMode 0 -windowwidth 1920 -windowheight 1200 -windowx 50 -windowy 50'
Command Line: '"/home/ch/pymarl/3rdparty/StarCraftII/Versions/Base69232/SC2_x64" -listen 127.0.0.1 -port 21594 -dataDir /home/ch/pymarl/3rdparty/StarCraftII/ -tempDir /tmp/sc-z44i84pm/ -displayMode 0 -windowwidth 1920 -windowheight 1200 -windowx 50 -windowy 50'
Version: B69232 (SC2.4.6-Publish)
Build: Oct 23 2018 01:43:04
Command Line: '"/home/ch/pymarl/3rdparty/StarCraftII/Versions/Base69232/SC2_x64" -listen 127.0.0.1 -port 19667 -dataDir /home/ch/pymarl/3rdparty/StarCraftII/ -tempDir /tmp/sc-ywijkadp/ -displayMode 0 -windowwidth 1920 -windowheight 1200 -windowx 50 -windowy 50'
Version: B69232 (SC2.4.6-Publish)
Build: Oct 23 2018 01:43:04
Command Line: '"/home/ch/pymarl/3rdparty/StarCraftII/Versions/Base69232/SC2_x64" -listen 127.0.0.1 -port 16964 -dataDir /home/ch/pymarl/3rdparty/StarCraftII/ -tempDir /tmp/sc-0bs56nd5/ -displayMode 0 -windowwidth 1920 -windowheight 1200 -windowx 50 -windowy 50'
Version: B69232 (SC2.4.6-Publish)
Build: Oct 23 2018 01:43:04
Command Line: '"/home/ch/pymarl/3rdparty/StarCraftII/Versions/Base69232/SC2_x64" -listen 127.0.0.1 -port 21722 -dataDir /home/ch/pymarl/3rdparty/StarCraftII/ -tempDir /tmp/sc-qu3cm6ig/ -displayMode 0 -windowwidth 1920 -windowheight 1200 -windowx 50 -windowy 50'
Version: B69232 (SC2.4.6-Publish)
Build: Oct 23 2018 01:43:04
Command Line: '"/home/ch/pymarl/3rdparty/StarCraftII/Versions/Base69232/SC2_x64" -listen 127.0.0.1 -port 17230 -dataDir /home/ch/pymarl/3rdparty/StarCraftII/ -tempDir /tmp/sc-murh5_yx/ -displayMode 0 -windowwidth 1920 -windowheight 1200 -windowx 50 -windowy 50'
Starting up...
Starting up...
Starting up...
Starting up...
Starting up...
Starting up...
Starting up...
Starting up...
[INFO 12:57:46] absl Connecting to: ws://127.0.0.1:16964/sc2api, attempt: 1, running: True
[INFO 12:57:46] absl Connecting to: ws://127.0.0.1:22863/sc2api, attempt: 1, running: True
[INFO 12:57:46] absl Connecting to: ws://127.0.0.1:21722/sc2api, attempt: 1, running: True
[INFO 12:57:46] absl Connecting to: ws://127.0.0.1:17230/sc2api, attempt: 1, running: True
[INFO 12:57:46] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 1, running: True
[INFO 12:57:46] absl Connecting to: ws://127.0.0.1:19667/sc2api, attempt: 1, running: True
[INFO 12:57:46] absl Connecting to: ws://127.0.0.1:21594/sc2api, attempt: 1, running: True
Startup Phase 1 complete
Startup Phase 1 complete
[INFO 12:57:46] absl Connecting to: ws://127.0.0.1:24486/sc2api, attempt: 1, running: True
Startup Phase 1 complete
Startup Phase 1 complete
Startup Phase 1 complete
Startup Phase 1 complete
Startup Phase 1 complete
Startup Phase 1 complete
[INFO 12:57:47] absl Connecting to: ws://127.0.0.1:22863/sc2api, attempt: 2, running: True
[INFO 12:57:48] absl Connecting to: ws://127.0.0.1:21594/sc2api, attempt: 2, running: True
[INFO 12:57:47] absl Connecting to: ws://127.0.0.1:23352/sc2api, attempt: 2, running: True
[INFO 12:57:47] absl Connecting to: ws://127.0.0.1:24486/sc2api, attempt: 2, running: True
[INFO 12:57:48] absl Connecting to: ws://127.0.0.1:17230/sc2api, attempt: 2, running: True
[INFO 12:57:48] absl Connecting to: ws://127.0.0.1:16964/sc2api, attempt: 2, running: True
[INFO 12:57:49] absl Connecting to: ws://127.0.0.1:19667/sc2api, attempt: 2, running: True
[INFO 12:57:56] absl Connecting to: ws://127.0.0.1:24486/sc2api, attempt: 3, running: True
[INFO 12:57:58] absl Connecting to: ws://127.0.0.1:22863/sc2api, attempt: 3, running: True
Killed
`

Ubuntu18.04: pysc2.lib.remote_controller.ConnectError: Failed to connect to the SC2 websocket. Is it up?

When running python3 src/main.py --config=qmix_smac --env-config=sc2 with env_args.map_name=2s3z, it has a error in Ubuntu18.04:

pysc2.lib.remote_controller.ConnectError: Failed to connect to the SC2 websocket. Is it up?

What operation did I miss?

File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/home/scu/pymarl/src/runners/parallel_runner.py", line 237, in env_worker
env.reset()
File "/home/scu/pymarl/src/runners/parallel_runner.py", line 237, in env_worker
env.reset()
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/smac/env/starcraft2/starcraft2.py", line 341, in reset
self._launch()
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/smac/env/starcraft2/starcraft2.py", line 341, in reset
self._launch()
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/smac/env/starcraft2/starcraft2.py", line 291, in _launch
self._sc2_proc = self._run_config.start(window_size=self.window_size)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/smac/env/starcraft2/starcraft2.py", line 291, in _launch
self._sc2_proc = self._run_config.start(window_size=self.window_size)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/pysc2/run_configs/platforms.py", line 205, in start
want_rgb=want_rgb, extra_args=extra_args, **kwargs)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/pysc2/run_configs/platforms.py", line 205, in start
want_rgb=want_rgb, extra_args=extra_args, **kwargs)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/pysc2/run_configs/platforms.py", line 88, in start
self, exec_path=exec_path, version=self.version, **kwargs)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/pysc2/run_configs/platforms.py", line 88, in start
self, exec_path=exec_path, version=self.version, **kwargs)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/pysc2/lib/sc_process.py", line 143, in init
self._host, self._port, self, timeout_seconds=timeout_seconds)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/pysc2/lib/sc_process.py", line 143, in init
self._host, self._port, self, timeout_seconds=timeout_seconds)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/pysc2/lib/remote_controller.py", line 146, in init
sock = self._connect(host, port, proc, timeout_seconds)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/pysc2/lib/remote_controller.py", line 146, in init
sock = self._connect(host, port, proc, timeout_seconds)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/pysc2/lib/remote_controller.py", line 180, in _connect
raise ConnectError("Failed to connect to the SC2 websocket. Is it up?")
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/pysc2/lib/remote_controller.py", line 180, in _connect
raise ConnectError("Failed to connect to the SC2 websocket. Is it up?")
pysc2.lib.remote_controller.ConnectError: Failed to connect to the SC2 websocket. Is it up?
pysc2.lib.remote_controller.ConnectError: Failed to connect to the SC2 websocket. Is it up?
Traceback (most recent call last):
Traceback (most recent call last):
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/home/scu/pymarl/src/runners/parallel_runner.py", line 237, in env_worker
env.reset()
File "/home/scu/pymarl/src/runners/parallel_runner.py", line 237, in env_worker
env.reset()
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/smac/env/starcraft2/starcraft2.py", line 341, in reset
self._launch()
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/smac/env/starcraft2/starcraft2.py", line 341, in reset
self._launch()
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/smac/env/starcraft2/starcraft2.py", line 291, in _launch
self._sc2_proc = self._run_config.start(window_size=self.window_size)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/smac/env/starcraft2/starcraft2.py", line 291, in _launch
self._sc2_proc = self._run_config.start(window_size=self.window_size)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/pysc2/run_configs/platforms.py", line 205, in start
want_rgb=want_rgb, extra_args=extra_args, **kwargs)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/pysc2/run_configs/platforms.py", line 205, in start
want_rgb=want_rgb, extra_args=extra_args, **kwargs)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/pysc2/run_configs/platforms.py", line 88, in start
self, exec_path=exec_path, version=self.version, **kwargs)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/pysc2/run_configs/platforms.py", line 88, in start
self, exec_path=exec_path, version=self.version, **kwargs)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/pysc2/lib/sc_process.py", line 143, in init
self._host, self._port, self, timeout_seconds=timeout_seconds)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/pysc2/lib/sc_process.py", line 143, in init
self._host, self._port, self, timeout_seconds=timeout_seconds)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/pysc2/lib/remote_controller.py", line 146, in init
sock = self._connect(host, port, proc, timeout_seconds)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/pysc2/lib/remote_controller.py", line 146, in init
sock = self._connect(host, port, proc, timeout_seconds)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/pysc2/lib/stopwatch.py", line 212, in _stopwatch
return func(*args, **kwargs)
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/pysc2/lib/remote_controller.py", line 180, in _connect
raise ConnectError("Failed to connect to the SC2 websocket. Is it up?")
File "/home/scu/anaconda3/envs/pymarl-env/lib/python3.6/site-packages/pysc2/lib/remote_controller.py", line 180, in _connect
raise ConnectError("Failed to connect to the SC2 websocket. Is it up?")
pysc2.lib.remote_controller.ConnectError: Failed to connect to the SC2 websocket. Is it up?
pysc2.lib.remote_controller.ConnectError: Failed to connect to the SC2 websocket. Is it up?

Anyone can run the COMA algorithm code?

Anyone can run the coma algorithm normaly?I have this erros like this:
The error is like this:

'Process Process-3:
Traceback (most recent call last):
File "/home/a/anaconda3/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/home/a/anaconda3/lib/python3.6/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/home/a/COMA/pymarl/src/runners/parallel_runner.py", line 221, in env_worker
reward, terminated, env_info = env.step(actions)
File "/home/a/anaconda3/lib/python3.6/site-packages/smac/env/starcraft2/starcraft2.py", line 373, in step
agent_action = self.get_agent_action(a_id, action)
File "/home/a/anaconda3/lib/python3.6/site-packages/smac/env/starcraft2/starcraft2.py", line 439, in get_agent_action
"Agent {} cannot perform action {}".format(a_id, action)
AssertionError: Agent 0 cannot perform action 0
'
Can you help me to solve this?Thanks!

Had problem running your code

I am new to docker and I failed to run your experiments.
OS: Ubuntu 18.04
Arch: x86_64

standard_init_linux.go:211: exec user process caused "exec format error" is the error I got when I tried to run the code posted in README.m file.

Can you tell me what is the problem if you have any ideas? Thank you.

standard_init_linux.go:207: exec user process caused "exec format error"

When running an experiment with Docker (bash run.sh $GPU python3 src/main.py --config=qmix_smac --env-config=sc2 with env_args.map_name=2s3z) I get the following issue:
standard_init_linux.go:207: exec user process caused "exec format error".

Any idea on what might be causing the issue? Thanks!

What may cause the problem, can not connect sc2.api

Version: B55958 (SC2.3.16)
Build: Jul 31 2017 13:19:41
Command Line: '"/home/gezhixin/pymarl-master/3rdparty/StarCraftII/Versions/Base55958/SC2_x64" -listen 127.0.0.1 -port 19660 -dataDir /home/gezhixin/pymarl-master/3rdparty/StarCraftII/ -tempDir /tmp/sc-7g3rhadx/ -eglpath libEGL.so'
[INFO 15:09:52] absl Connecting to: ws://127.0.0.1:20750/sc2api, attempt: 0, running: True
Version: B55958 (SC2.3.16)
Build: Jul 31 2017 13:19:41
Command Line: '"/home/gezhixin/pymarl-master/3rdparty/StarCraftII/Versions/Base55958/SC2_x64" -listen 127.0.0.1 -port 20750 -dataDir /home/gezhixin/pymarl-master/3rdparty/StarCraftII/ -tempDir /tmp/sc-mtis1x1z/ -eglpath libEGL.so'
[INFO 15:09:52] absl Connecting to: ws://127.0.0.1:23861/sc2api, attempt: 0, running: True
Version: B55958 (SC2.3.16)
Build: Jul 31 2017 13:19:41
Command Line: '"/home/gezhixin/pymarl-master/3rdparty/StarCraftII/Versions/Base55958/SC2_x64" -listen 127.0.0.1 -port 23861 -dataDir /home/gezhixin/pymarl-master/3rdparty/StarCraftII/ -tempDir /tmp/sc-887vyu8m/ -eglpath libEGL.so'
Version: B55958 (SC2.3.16)
Build: Jul 31 2017 13:19:41
Command Line: '"/home/gezhixin/pymarl-master/3rdparty/StarCraftII/Versions/Base55958/SC2_x64" -listen 127.0.0.1 -port 22483 -dataDir /home/gezhixin/pymarl-master/3rdparty/StarCraftII/ -tempDir /tmp/sc-cl3fv80z/ -eglpath libEGL.so'
Command Line: '"/home/gezhixin/pymarl-master/3rdparty/StarCraftII/Versions/Base55958/SC2_x64" -listen 127.0.0.1 -port 15531 -dataDir /home/gezhixin/pymarl-master/3rdparty/StarCraftII/ -tempDir /tmp/sc-kzyeambf/ -eglpath libEGL.so'
[INFO 15:09:52] absl Connecting to: ws://127.0.0.1:15148/sc2api, attempt: 0, running: True
Version: B55958 (SC2.3.16)
Build: Jul 31 2017 13:19:41
Command Line: '"/home/gezhixin/pymarl-master/3rdparty/StarCraftII/Versions/Base55958/SC2_x64" -listen 127.0.0.1 -port 15148 -dataDir /home/gezhixin/pymarl-master/3rdparty/StarCraftII/ -tempDir /tmp/sc-1jt2vxad/ -eglpath libEGL.so'
[INFO 15:09:52] absl Connecting to: ws://127.0.0.1:20873/sc2api, attempt: 0, running: True
Version: B55958 (SC2.3.16)
Build: Jul 31 2017 13:19:41
Command Line: '"/home/gezhixin/pymarl-master/3rdparty/StarCraftII/Versions/Base55958/SC2_x64" -listen 127.0.0.1 -port 20873 -dataDir /home/gezhixin/pymarl-master/3rdparty/StarCraftII/ -tempDir /tmp/sc-bgr0beac/ -eglpath libEGL.so'
Starting up...
Startup Phase 1 complete
[INFO 15:09:52] absl Connecting to: ws://127.0.0.1:22057/sc2api, attempt: 0, running: True
Version: B55958 (SC2.3.16)
Build: Jul 31 2017 13:19:41
Command Line: '"/home/gezhixin/pymarl-master/3rdparty/StarCraftII/Versions/Base55958/SC2_x64" -listen 127.0.0.1 -port 22057 -dataDir /home/gezhixin/pymarl-master/3rdparty/StarCraftII/ -tempDir /tmp/sc-hhuzwael/ -eglpath libEGL.so'
Starting up...
[INFO 15:09:52] absl Connecting to: ws://127.0.0.1:22646/sc2api, attempt: 0, running: True
Starting up...
Version: B55958 (SC2.3.16)
Build: Jul 31 2017 13:19:41
Command Line: '"/home/gezhixin/pymarl-master/3rdparty/StarCraftII/Versions/Base55958/SC2_x64" -listen 127.0.0.1 -port 21568 -dataDir /home/gezhixin/pymarl-master/3rdparty/StarCraftII/ -tempDir /tmp/sc-k3_l6j80/ -eglpath libEGL.so'
[INFO 15:09:52] absl Connecting to: ws://127.0.0.1:19660/sc2api, attempt: 0, running: True
Starting up...
Starting up...
Startup Phase 1 complete
Startup Phase 1 complete
Startup Phase 1 complete
Starting up...
Starting up...
Starting up...
Startup Phase 1 complete
Starting up...
Starting up...
Starting up...
Starting up...
Starting up...
Starting up...
Starting up...
Starting up...
Starting up...
Starting up...
Starting up...
Starting up...
Starting up...
Starting up...
Starting up...
Starting up...
Startup Phase 1 complete
Starting up...
Startup Phase 1 complete
Startup Phase 1 complete
Startup Phase 1 complete
Startup Phase 1 complete
Startup Phase 1 complete
Startup Phase 1 complete
Startup Phase 1 complete
Startup Phase 1 complete
Startup Phase 1 complete
Startup Phase 1 complete
Startup Phase 1 complete
Starting up...
Startup Phase 1 complete
Startup Phase 1 complete
Starting up...
Startup Phase 1 complete
Startup Phase 1 complete
Starting up...
Startup Phase 1 complete
Startup Phase 1 complete
Startup Phase 1 complete
Startup Phase 1 complete
Startup Phase 1 complete
Startup Phase 1 complete
Startup Phase 1 complete
Startup Phase 1 complete
Startup Phase 1 complete
[INFO 15:09:52] absl Connecting to: ws://127.0.0.1:24955/sc2api, attempt: 1, running: True
[INFO 15:09:53] absl Connecting to: ws://127.0.0.1:15973/sc2api, attempt: 1, running: True
[INFO 15:09:53] absl Connecting to: ws://127.0.0.1:15404/sc2api, attempt: 1, running: True
[INFO 15:09:53] absl Connecting to: ws://127.0.0.1:17495/sc2api, attempt: 1, running: True
[INFO 15:09:53] absl Connecting to: ws://127.0.0.1:16329/sc2api, attempt: 1, running: True
[INFO 15:09:53] absl Connecting to: ws://127.0.0.1:23943/sc2api, attempt: 1, running: True
[INFO 15:09:53] absl Connecting to: ws://127.0.0.1:21460/sc2api, attempt: 1, running: True
[INFO 15:09:53] absl Connecting to: ws://127.0.0.1:19711/sc2api, attempt: 1, running: True

What's the meaning of return_mean and return_std? / What's the function of rnn agent?

Hi, thanks for this repo!
I have been reading the source code pf pymarl and I have a few questions.

In the output of the program, there are a few parameters like return_mean . I understand most of them but I have trouble understanding return_mean and return_std. What's the meaning of return? (I guess may be the calculation of value function.) And how do you calculate returnalong with return_mean and return_std?

The other question is "why do we use rnn agent?". When I search the word rnn in this repo, I didn't find codes about how the rnn is used in training agents. And when we use algorithms like qmix, is the system still using rnn agent or the system use qmix agent(like overwriting rnn agent).

Thanks again for this repo!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.