Coder Social home page Coder Social logo

Comments (3)

samvelyan avatar samvelyan commented on May 29, 2024 1

Yes. The reason for this is that we don’t use regular SC2 units but rather slightly changed versions of them (which I name x_RL in the SC2 Editor) for allies. Basically, the default SC2 units have certain features which we wanted to disable for our RL agents. For instance, when a SC2 unit is under attack, it automatically starts attacking the units that is shooting at it. We wanted the RL agents to start shooting once they understand that it is necessary. What we’ve basically done is we copied the SC2 units in the Editor, changed 3 fields in their characteristics, and named it Unitname_RL (there is a paragraph about this at the Appendix of the SMAC paper). All of the SMAC maps feature such units for the ally team.

from smac.

douglasrizzo avatar douglasrizzo commented on May 29, 2024

I think I have found the answer to my question. In all scenarios, the number of unit types in the allied and enemy teams are the same, so SMAC uses the same number of 'bits' to encode unit types for both teams. This doesn't mean that the unit types themselves are the same, as in 2m_vs_1z, where each team has the same number of unit types (1), so SMAC doesn't even provide unit type IDs to tell them apart.

I hope you accept a pull request in which I expose unit type IDs, by providing a list with their default unit types, as provided by SC2.

from smac.

douglasrizzo avatar douglasrizzo commented on May 29, 2024

I did some debugging and found out that the SC2 client API returns allied and enemy units with different IDs. For example, in 2s3z, an allied Stalker has ID 1970 and a Zealot has ID 1971, while the enemy units have IDs 74 and 73.

That's a bummer. Is there a way I can get the usual unit types in the SMAC maps?

from smac.

Related Issues (20)

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.