oxwhirl / smac

SMAC: The StarCraft Multi-Agent Challenge
MIT License
1.07k stars 226 forks source link

The meaning of move_feats、enemy_feats、ally_feats、own_feats in starcraft2.py #5

Closed TimeBreaker closed 5 years ago

TimeBreaker commented 5 years ago

Hi, thanks for this repo. I have been reading the source code of smac these days and I have a question. What's the meaning of these four variables move_feats、enemy_feats、ally_feats、own_feats in the file smac/smac/env/starcraft2/starcraft2.py ? And also, what's their function? (I failed to find annotations about them.) Thanks a lot!

samvelyan commented 5 years ago

Hi @TimeBreaker. Thanks for your interest in our work.

I believe these are from the get_obs_agent function which returns observations of agent i. The observation of each agent includes information about the allied units (ally_feats), enemy units (enemy_feats), features relating to moving, such as whether the agent can go left, right, etc (move_feats), and information about the agent itself (own_feats), such as the agent's health or type. Basically, feats is short for features.

In the end of the function these 4 features vectors are flattened and concatenated yielding the observation of agent i.

Hope this helps.

TimeBreaker commented 5 years ago

@samvelyan Thanks a lot! Now I understand how to get an agent's observations. While reading the source code of pymarl, I came up with a few questions. I'll raise an issue in the pymarl repo. Thanks again for your patience.