Giter VIP home page Giter VIP logo

s2client-proto's Introduction

Overview

The StarCraft II API is an interface that provides full external control of StarCraft II.

This API exposes functionality for developing software for:

  • Scripted bots.
  • Machine-learning based bots.
  • Replay analysis.
  • Tool assisted human play.

The API is available in the retail Windows and Mac clients. There are also Linux clients available at the download links below.

Contents

Official

  • Protocol
  • Reference C++ implementation
    • Library designed for building a scripted bots using the API.
    • Repository
  • StarCraft II Linux Packages
  • Maps
    • Maps from the 1v1 ladder and other custom maps.
    • Download
  • Replays
    • Replay packs of 1v1 ladder games.
    • Download

Community

  • PySC2
    • DeepMind's python environment wrapper.
    • Repository
  • CommandCenter
    • A robust architecture for quickly developing Starcraft AI bots.
    • Repository
  • Bot Ladders
    • SC2AI - Unofficial community organized ladder.
    • AI Arena - Unofficial community organized ladder.
  • Community Wiki
    • Unofficial wiki of documentation and tutorials.
    • Website
  • Discord Server
    • Unofficial server for discussing AI questions and projects.
    • Invite Link
  • Facebook Group
    • Unofficial community page.
    • Website

Downloads

To access the linux packages, map packs and replay packs, you must agree to the AI and Machine Learning License

The files are password protected with the password 'iagreetotheeula'.

By typing in the password ‘iagreetotheeula’ you agree to be bound by the terms of the AI and Machine Learning License

Linux Packages

Map Packs

This is the previous version of the Ladder 2017 Season 3 Map Pack

Replay Packs

Installing Map and Replay Packs

All additional game data should be extracted within the installation directory.

The default installation directories are:

  • Windows: C:\Program Files (x86)\StarCraft II\
  • Mac: /Applications/StarCraft II/

On Linux, the installation directory is the folder you extracted the linux package into.

The folder structure is the same accross all platforms. However you may need to create some folders if they are missing.

Standard folder layout:

  • StarCraft II/
    • Battle.net/
    • Maps/
    • Replays/
    • SC2Data/
    • Versions/

Map Packs

  • Extract the zip file directly into the "Maps" folder.
  • In the API, a map can be specified as either an absolute path or its relative path inside this "Maps" folder.

Replay Packs

  • Replace the "Battle.net" and "Replays" folders with the ones in the zip file.
  • In the API, a replay must be specified as an absolute path.

Stable IDs

These define the action mappings from ability ids in the protobuf api to the internals of the game. They also define some general ids that combine multiple abilities that have a similar semantic meaning (eg various forms of burrow, cancel, lift/land, etc). The stableid.json is updated occasionally with the game, but can also be updated manually by downloading the stableid.json from here and placing it in the root of your StarCraft II directory.

s2client-proto's People

Contributors

akitensai avatar anthonybrunasso avatar austinhudelson avatar blizzaphex avatar changil-ckim-blizzard avatar chazix avatar davidkuhta avatar halfvoxel avatar impulsecloud avatar jashunk avatar jrepp avatar kevincalderone avatar kevinsandow avatar lladdy avatar m1ndgames avatar matthid avatar nickrader avatar nikibobi avatar richardapowell avatar safplusplus avatar sc2automation avatar sheikyabooti avatar tewalds 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  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

s2client-proto's Issues

Pls update data for version 4.1.1

Hi there. I am looking for the Hash code for version 4.1.1 after updating my game today. Could you please update the data for version 4.1.1?

Just starting out

So like all of you I am just starting out getting this figured out. I am going to try the version 3.16.1 so i can watch the included replays. After I download the source zip file and unzip it in my home directory what should I do next?

unzip password?

why do i need a password when unzip the SC2.3.16.1 package?

Debug draw filled polygons

Hey guys,
do you suppose the debug API could at some point feature functionality for drawing filled polygons? It'd be immensely helpful in debugging map regions ingame, for example.

At this point I suppose the Color structure would need to include an alpha value as well, since it'd be essential to be able to see through the polygon.

e_erroIdStreaming

Hello,

When I try to run SC2_x64 from 16.1 I get the following error
Command Line: '"/home/eput/StarCraftII/Versions/Base55958/SC2_x64" -listen 127.0.0.1 -port 8167 -displayMode 0 -windowwidth 1024 -windowheight 768 -windowx 100 -windowy 200'
Starting up...
Startup Phase 1 complete
Fatal error encountered!
Backtrace:
/home/eput/StarCraftII/Versions/Base55958/SC2_x64[0x653068]
/home/eput/StarCraftII/Versions/Base55958/SC2_x64[0x653aa0]
/home/eput/StarCraftII/Versions/Base55958/SC2_x64[0x6534f2]
/home/eput/StarCraftII/Versions/Base55958/SC2_x64[0x5f0ac8]
/home/eput/StarCraftII/Versions/Base55958/SC2_x64[0x19348d5]
/home/eput/StarCraftII/Versions/Base55958/SC2_x64[0x5ed44d]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf1)[0x7f33b18c91c1]
/home/eput/StarCraftII/Versions/Base55958/SC2_x64[0x5ed2d9]
Error condition code: '9'
Error suffix: 'Error'
Error preface: 'A fatal error occurred:'
Error failure: 'e_errorIdStreaming'
Error unique: '(NGDP:E_NOT_AVAILABLE)'
Error details: '"AppErrors.txt"'
Error description: 'AppErrors.txt'

I have downloaded and replaced the Replays and Battle.net Cache and Maps.
I am running ubuntu 17.10

How to control modified units?

Use sc2 editor copy a tank model and change its attack range. Then using ActionRaw fails to move the modified tank object under sc2 linux package 4.0.2. Is there any way to control modified units?

Render returns bytearray filled with 0's on OSX

I'm trying to use the render layer from OSX, using version Base59587.

The game is rendering differently to when I just render feature layers, dividing the space of the screen among both the minimap and map. I'm getting back sizes based on how these are laid out, not on the values passed to the SpatialCameraSetup resolution. And since the OSX doesn't allow fully free aspect ratio with the scaling it's hard to get the whole screen drawn.

The biggest issue is that the bytestring seems to be all zeroes (the length seems to be correct though).

generating protos with protoc

I'm trying to generate the protos from a git submodule in my project - running the following command errors out.

$ protoc -I s2client-proto/s2clientprotocol --rust_out src/protos --proto_path s2client-proto/s2clientprotocol s2client-proto/s2clientprotocol/*.proto
s2clientprotocol/common.proto: File not found.
data.proto: Import "s2clientprotocol/common.proto" was not found or had errors.
data.proto:82:12: "SC2APIProtocol.Race" seems to be defined in "common.proto", which is not imported by "data.proto".  To use it here, please add the necessary import.

I've also tried created a symbolic link and executing this command but get a lot of "file not found" and "is not defined".

$ protoc -I ./s2clientprotocol --rust_out ./src/protos --proto_path ./s2clientprotocol ./s2clientprotocol/sc2api.proto

Any advise would greatly be appreciated.

Linux binary crashes on a direct "quit {}" request

Reproduction:

  1. Launch the Linux binary:
    ~/StarCraftII/Versions/Base55958/SC2_x64 -listen 127.0.0.1 -port 9999

  2. Send "quit {}" to the server. I wrote a script to do this:
    https://gist.github.com/timshen91/b0aa69e311ea3546ebc772c091b571fd

Run with echo "quit {}" | sc2_repl.py

The server crashes, full log:

Version: B55958 (SC2.3.16)
Build: Jul 31 2017 13:19:41
Command Line: '"/.../StarCraftII/Versions/Base55958/SC2_x64" -listen 127.0.0.1 -port 9999'
Starting up...
Startup Phase 1 complete
Startup Phase 2 complete
Creating stub renderer...
Listening on: 127.0.0.1:9999 (9999)
Startup Phase 3 complete. Ready for commands.
RequestQuit command received.
Closing Application...
Error signal: '11'
Backtrace:
/home/tim/StarCraftII/Versions/Base55958/SC2_x64[0x652f73]
/usr/lib/libc.so.6(+0x33940)[0x7f1af24af940]
/home/tim/StarCraftII/Versions/Base55958/SC2_x64[0xe8d2bb]
/home/tim/StarCraftII/Versions/Base55958/SC2_x64[0xf9d06f]
/home/tim/StarCraftII/Versions/Base55958/SC2_x64[0xf9d1d2]
/home/tim/StarCraftII/Versions/Base55958/SC2_x64[0x192fbf2]
/home/tim/StarCraftII/Versions/Base55958/SC2_x64[0x19338e6]
/home/tim/StarCraftII/Versions/Base55958/SC2_x64[0x5ed4d5]
/usr/lib/libc.so.6(__libc_start_main+0xea)[0x7f1af249c4ca]
/home/tim/StarCraftII/Versions/Base55958/SC2_x64[0x5ed2d9]
zsh: segmentation fault (core dumped) ~/StarCraftII/Versions/Base55958/SC2_x64 -listen 127.0.0.1 -port 9999

I'm not sure if it's working as intended.

Thanks!

Anonymized replays - add back tracker events

From a processing standpoint the tracker events allow the user to make heads or tails actions that happened inside the replay without building the game engine.

The events I would like to see added back in are NNet.Replay.Tracker.*

As far as I know there is no personal information or information that would allow something to back fill an account in the tracker events.

Stripping the init data for player information, portrait , and randomizing hotkey usage would be enough to make it very difficult to figure out the actual account.

Terran add-ons have an overly large footprint_radius

The Terran add-on buildings (like the barracks reactor) report an overly large footprint_radius in the returned AbilityData from the game. Here's an example (in json format):

  {
    "ability_id": 422,
    "link_name": "BarracksAddOns",
    "link_index": 1,
    "button_name": "Reactor",
    "friendly_name": "Build Reactor Barracks",
    "hotkey": "C",
    "remaps_to_ability_id": 3683,
    "target": "PointOrNone",
    "available": true,
    "allow_minimap": false,
    "allow_autocast": false,
    "is_building": true,
    "footprint_radius": 3.5,
    "is_instant_placement": true,
    "cast_range": 0.0
  }

I'm not sure if the correct value should be 1.0 (for the add-on only), or maybe 2.5 (if including the footprint of the barracks)

GameSettings' map name always get overwritten

Starting off with the given examples, passing in map name never seemed to work.

Observations:

  1. There seems to be no public getter to retrieve the map name inside GameSetting of the coordinator.
  2. StartGame() and CreateGame() both takes const string& as param. Use empty string as default argument. Will always overwrite the map name with the passed in value.

With these two combined, I'm in a funny scenario. After passing in a map name through command-line argument, I can't read the map name from the coordinator and use it as param for Start/CreateGame().

Add a proto equivalent to sc2_typeenums.h

https://github.com/Blizzard/s2client-api/blob/master/include/sc2api/sc2_typeenums.h

As sc2_typeeenums.h says, "All units and abilities are represented as unsigned numbers in the StarCraft II engine. This can make issue abilities unnecessarily hard."

This fact is also true with the proto API. As it is, any equivalent implementation of the sc2api client in another language will have to define its own equivalent of these enums, or force its users to figure out the unit indexes themselves.

Is it possible to define this as a protobuf enum as part of the protocol sent by the game?

How to detect if the game has ended in the realtime mode

With two bots, status is still status: in_game, even after the game is over. Similarly, it looks like observation.player_result cannot used for that either, as the list is always empty in realtime mode.

Game returns ActionResult.YouCantControlThatUnit when trying to use units after the game is over, however is quite kludgy way to detect if the game is over, partially because it requires executing an action.

Capturing chat message by triggers

Hi there,

I'm having troubles with triggering a chat message Event using the protocol. Here's what I do.

I work with a custom map I created. During the game I perform an Action as ActionChat(message = 'test')). The result of the action is successful and I am able to see the message on the screen. Using the Map Editor, I created a trigger with the following Event:

Game -Player Any Player types a chat message containing "test", matching Exactly

However, the event is never triggered. Is this a bug?

My high-level goal is to trigger ANY event using the protocol. I just want to be able to work with custom map triggers using the protocol. If there are easier ways to do this w/o messages, I'd be happy to use those.

Many thanks

Add ability to set player names in bot games

Currently when I add a bot to a game, all the names are set to 'foo[xxxx]'. It would be good if I could set the name to a custom value to easier see which agent is controlling which player.

Vision radius of units

Any chance that the vision radius of units will be exposed in the API? It does not seem to be exposed in the Unit object. I'm trying to write code that detects if an enemy unit can see your unit. Obviously I can write a utility function with a giant switch statement, but I would prefer something more robust that can take balance changes into account automatically.

Add explanation to "cloak" field

What is the exact difference between these? Does CloakedDetected mean seeing the slight tremor when an invisible unit moves?

enum CloakState {
  Cloaked = 1;
  CloakedDetected = 2;
  NotCloaked = 3;
}

data regarding non-valid actions due to non-valid arguments

hello.
there are actions which are presence in the "available_actions" but are not valid due to not-valid arguments. for example, action to build a building is not valid if the screen location given in arguments is not valid (due to the height map or other reason).

in this case in the graphical environment of the game there is a a red line that saying that the location chosen for building is not valid. there is a way i can understand this output from the observation given in the step function? if not, there is another way to retrieve this data? so far i only succeed to retrieve this data through the screen observation but it retrieved in delay of a few steps (that is caused by the time that is taking to the scv to reach the building coordinate)
maybe there is a way to get from the screen observation the green mark that appear before the scv reach the building coordinate?

thanks
natan

Receiving actions of all players when playing replay

I may be missing something, but is there a way to get actions of all players when analyzing replay?

If I set observed_player_id in RequestStartReplay message to some valid player id (i.e. 1 or 2 for 2-player replay), it seems like in ResponseObservation messages afterwards I'm receiving actions only for this specified player. If I didn't set observed_player_id or set it to zero or some invalid value, I'm not receiving any actions at all.

How can I get actions of all players in a single replay session? Or should I analyze replay multiple times, one time for each player?

Thanks!

Train unit queue uses first building's queue to determine "full"

It seems that train unit queues are not working as expected. If I have three barracks selected and repeatedly issue the "train marine" command it seems that the queues for each building will increment in a balanced manner until the queue of the first selected barracks is full. At this point the remaining barracks will not add more units to the queue, instead they must wait until the first barracks finishes training a marine.
unknown

Providing Starcraft 2 like Linux Package for Windows

I know that for Windows and Mac, it is possible to download Startcraft2 from Battle.net.

It would be better if zipped version of Starcraft2 for Windows and Mac is distributed. Because it is much convenient to manage machine resources and separate the installation from other users.

Harvesting units

Is it possible to know if a harvesting unit is carrying mineral or vespene (and/or the amount of minerals/vespene)?

Is it possible to know which mineral field/vespene geyser is the target of a harvesting unit ?
For example, the engaged_target_tag of a mining SCV is 0.
Correct me if I am wrong:

  • At the beginning of the game it is automatically decided by the game. So there is no order to refer to.
  • It may be modified by the game if too many harvesting units are on the same mineral field.
  • It is different for vespene geyser as the harvesting unit just waits to have access and seems to keep the same target(geyser).

Chat is not working, sending messages results in error

Scenario

Game is created with two participants, a participant (my bot) and an easy computer. My bot joins to the game. Game info, game data and the first observation are requested. Before calling step, my bot sends a chat message gl hf.

I also tried sending the message only after a few frames, or sending it between every step, but the results were same.

Result

Expected: ActionResult.Success
Actual: ActionResult.Error

Game itself doesn't display any chat messages send by my bot. Player can still send messages normally by opening the chat, typing in the message and sending it.

Messages

Request:

action {
  actions {
    chat {
      channel: Team
      message: "gl hf"
    }
  }
}

Response:

action {
  result: Error
}
status: in_game

Request : distribute linux package in docker

It would be nice if you can provide ready-to-run self-contained docker image for linux.
I would love to just setup shared volume and send my bot to run.

I download linux-package but can't run it.

$ file StarCraftII/Versions/Base55958/SC2_x64 
StarCraftII/Versions/Base55958/SC2_x64: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=cb1cea9acb95b0c53e7a3cf18181fe5f7ff0e735, stripped

$ ./StarCraftII/Versions/Base55958/SC2_x64 
bash: ./StarCraftII/Versions/Base55958/SC2_x64: No such file or directory

$ cd works/beta_projects/starcraft2/s2client-api/build/bin/
$ ls
all_tests        bot_micro  bot_simple    feature_layers    libcivetweb.a  libprotobuf-lite.a  libsc2api.a  libsc2protocol.a  libsc2utils.a  libSDL2main.a  replay
annoying_helper  bot_mp     echo_actions  intermediate_bot  libprotobuf.a  libprotoc.a         libsc2lib.a  libsc2renderer.a  libSDL2.a      protoc         tutorial

$ ./all_tests -e ~/StarCraftII/Versions/Base55958/SC2_x64 
Running test: sc2::TestAbilityRemap
Launched SC2 (/home/wizzup/StarCraftII/Versions/Base55958/SC2_x64), PID: 10211
Failed to execute process /home/wizzup/StarCraftII/Versions/Base55958/SC2_x64 error: No such file or directory
^CWaiting for connection....

Add energy cost to AbilityData

Currently there seems to be no way to find out how much energy using an ability costs

Cost itself is already mentioned in a comment in data.proto. I suppose this means energy cost, because for building units and researching upgrades the cost data is already available, and for others there is no mineral or vespene cost:

// Stuff that may be important: cost, range, Alignment, targetfilters.

Chat Interaction

I'm currently building a mini game for which I need the ability for agents to both send chat messages as well as to receive them.

For sending chat message, I noticed the chat field in the Action message. However, I can't figure out how to correctly use it. If I send a request of

action {
  actions {
    chat {
      channel: Broadcast
      message: "Chat Test Message"
    }
  }
}

The response is always an error

action {
  result: Error
}
status: in_game

However, there seems to be no way to get more information about a request error from the API, so I don't know what I'm doing wrong here.

If I send the chat field together with a normal action (for example, to select a rectangle)

action {
  actions {
    action_feature_layer {
      unit_selection_rect {
        selection_screen_coord {
          p0 {
            x: 0
            y: 0
          }
          p1 {
            x: 63
            y: 63
          }
        }
        selection_add: false
      }
    }
    chat {
      channel: Broadcast
      message: "Chat Test Message"
    }
  }
}

the game responds with

action {
  result: Success
}
status: in_game

I can see in-game that the selection action is performed, however, no message is displayed in the chat.

Am I using the API in the wrong way or is chat sending functionality not yet implemented on the client? I'm testing this on Windows, by the way.

Furthermore, regarding the API for receiving chat messages, I have also never observed that the chat field in the ReponseObservations message was set.

As a side note, trying to use DebugChat with a request a la

debug {
  debug {
    chat {
      message: "Debug Chat Test Message"
    }
  }
}

seems to have no effect on the game.

Using camera_move action in feature layer is inaccurate

Summary:
The camera_move action introduces inaccuracy between the center of the camera feature in the minimap and the point that was passed as an argument to camera_move. The bigger the map, the more inaccurate it gets.

This jupyter notebook illustrates the issue.

The inaccuracy is probably coming from the way the camera feature layer itself is generated, but it manifests very clearly when the center of the camera rectangle is used as an argument to camera_move.

Steps to reproduce:

  • Initialize the API and connect to the feature layer, then start a new game using any map
  • Use the camera feature from the minimap to calculate the center of the camera rectangle on the minimap
  • Use the camera_move action to move the camera to that calculated point

Expected result:

  • Camera shouldn't move and center of camera feature should remain unchanged.

Actual result:

  • Camera drifts slightly towards the top-left corner
  • Repeating the last two steps causes the camera to continue drifting towards the top-left corner

Terran Addons don't build reliably for a second player

We've noticed that the terran building addons are not built when playing as the second player. This can be easily seen by running the intermediate_bot with 2 instances of the TerranMultiplayerBot from the examples. You can see that the first bot will always build the addons, and end up with a massive supply advantage because of it, when both bots should be identical.

nothing...

I downloaded the Melee Map, it seems need password?
What is the pwd?

Client version management

In light of major upcoming changes, I'm curious if there's a way to manage client versions and if yes, how will it affect client <-> API <-> pysc2 communication.

My concern is that otherwise these massive changes essentially void some research efforts (i.e. trained agents will break due to key units missing or behaving differently).

How do I order units to do something using raw interface?

For example, I have this code:

for drone in units["Drones"]:
    order = rawpb.UnitOrder(target_unit_tag = my_own_hatchery.tag, ability_id = 3674)
    # drone.orders.add(order) <--- this line states that I'm providing two arguments
    drone.orders.extend([order]) # adds order to the list but this doesn't affect the drones

This supposed to force the drones to attack their own hatchery, but instead of that units do not follow the order I've issued, and if I provide an order using drone.orders.add(order) it will state that I'm providing two arguments instead of required one.

And ofc rawpb is just raw_pb2 from s2clientprotocol
As well as to get all the units one should issue this line of code:
controller.observe().observation.raw_data.units

GLIBC 2.18 Requirement for SCII Linux Package

My linux environment has only GLIBC 2.17, which is not supported by StarCraftII Linux Package. When running, the error appears: GLIBC 2.18 not found.

Unfortunately, for some reason I cannot update my GLIBC to 2.18. Do you have GLIBC 2.17 supported version? If no, how can I solve this problem? Thank you!

Missing linked file

The first link in the file s2client-proto/docs/protocol.md is pointing to a file named sc2api.proto. It returns a 404 error when I follow it, so either the file is missing or it's somewhere else?

Unable to have more than 2 agents in a game at once.

I'm trying to start 3 agents in a game. Whenever I try to run the CreateGame() method, I get this error:

CreateGame request returned an error code: Invalid Player Setup CreateGame request returned error details: Only 1v1 is supported when using multiple agents

Is it possible to run a game with more than 2 agents, and is it possible to add an observer agent to a game where there are already 2 agents in game?

Fatal error occurred: 'e_errorIdDamagedRepairable'

Hitting this on 4.10.0-33-generic #37~16.04.1-Ubuntu SMP

 ~/StarCraftII/Versions/Base55958/SC2_x64 -listen 127.0.0.1 -port 9999                                                                                                                                       1 ↵
Version: B55958 (SC2.3.16)
Build: Jul 31 2017 13:19:41
Command Line: '"/home/oars/StarCraftII/Versions/Base55958/SC2_x64" -listen 127.0.0.1 -port 9999'
Starting up...
Startup Phase 1 complete
Fatal error encountered!
Backtrace:
/home/oars/StarCraftII/Versions/Base55958/SC2_x64[0x653068]
/home/oars/StarCraftII/Versions/Base55958/SC2_x64[0x653aa0]
/home/oars/StarCraftII/Versions/Base55958/SC2_x64[0x6534f2]
/home/oars/StarCraftII/Versions/Base55958/SC2_x64[0x5f19e3]
/home/oars/StarCraftII/Versions/Base55958/SC2_x64[0x19348d5]
/home/oars/StarCraftII/Versions/Base55958/SC2_x64[0x5ed44d]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f8b9c70f830]
/home/oars/StarCraftII/Versions/Base55958/SC2_x64[0x5ed2d9]
Error condition code: '9'
Error suffix: 'Error'
Error preface: 'A fatal error occurred:'
Error failure: 'e_errorIdDamagedRepairable'
Error details: '"AppErrors.txt"
NGDP:"B56787" != Exe:"B55958"'
Error description: 'AppErrors.txt'
[1]    16626 abort (core dumped)  ~/StarCraftII/Versions/Base55958/SC2_x64 -listen 127.0.0.1 -port 9999

Any suggestions or further logs I can provide?

Linux replays not working on macOS

I saved a replay (using RequestSaveReplay) on my Linux box. When I moved to to macOS, StarCraft II says: Unable to open map.. When I recorded one on my mac, it worked properly. Map details tell me that the replay is created with an older version of the game. 4.0.2. However, it's quite hard to watch replays if they are not working.

Maybe some patch broke the compatibility? In that case would it be possible to have a new version of the Linux package?

SC2_x86 crashed when using CollectMineralShards MAP

Hi

The SC2_x86 binary crashed when using the mini-game map CollectMineralShards (https://github.com/deepmind/pysc2/releases/download/v1.0/mini_games.zip).

Below is the detailed information.

uname -a
Linux zzhangPowerLap 4.12.12-1-ARCH #1 SMP PREEMPT Sun Sep 10 09:41:14 CEST 2017 x86_64 GNU/Linux

cat /etc/lsb-release
LSB_VERSION=1.4
DISTRIB_ID=Arch
DISTRIB_RELEASE=rolling
DISTRIB_DESCRIPTION="Arch Linux"

Crash details:

python train_mineral_shards.py
Version: B56787 (SC2.3.17)
Build: Aug 25 2017 15:00:49
Command Line: '"/home/zzhang/StarCraftII/Versions/Base56787/SC2_x64" -listen 127.0.0.1 -port 18537 -dataDir /home/zzhang/StarCraftII/ -tempDir /tmp/sc-tcrplguy/ -displayMode 0'
Starting up...
Startup Phase 1 complete
Startup Phase 2 complete
Creating stub renderer...
Listening on: 127.0.0.1:18537 (18537)
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 enabled
Configure: score interface enabled
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
Game has started.
Sending ResponseJoinGame
Error signal: '11'
Backtrace:
/home/zzhang/StarCraftII/Versions/Base56787/SC2_x64[0x659853]
/usr/lib/libc.so.6(+0x34920)[0x7f4e227e4920]
/home/zzhang/StarCraftII/Versions/Base56787/SC2_x64[0x1239271]
/home/zzhang/StarCraftII/Versions/Base56787/SC2_x64[0x12391d9]
/home/zzhang/StarCraftII/Versions/Base56787/SC2_x64[0x123a295]
/home/zzhang/StarCraftII/Versions/Base56787/SC2_x64[0x123ad34]
/home/zzhang/StarCraftII/Versions/Base56787/SC2_x64[0xff3b7c]
/home/zzhang/StarCraftII/Versions/Base56787/SC2_x64[0xfd5cdf]
/home/zzhang/StarCraftII/Versions/Base56787/SC2_x64[0xfd5e42]
/home/zzhang/StarCraftII/Versions/Base56787/SC2_x64[0x1a073a2]
/home/zzhang/StarCraftII/Versions/Base56787/SC2_x64[0x1a0b096]
/home/zzhang/StarCraftII/Versions/Base56787/SC2_x64[0x5f3db5]
/usr/lib/libc.so.6(__libc_start_main+0xea)[0x7f4e227d0f6a]
/home/zzhang/StarCraftII/Versions/Base56787/SC2_x64[0x5f3bb9]
Traceback (most recent call last):
File "/home/zzhang/.local/lib/python3.6/site-packages/pysc2/lib/protocol.py", line 61, in catch_websocket_connection_errors
yield
File "/home/zzhang/.local/lib/python3.6/site-packages/pysc2/lib/protocol.py", line 152, in _read
response_str = self._sock.recv()
File "/home/zzhang/.local/lib/python3.6/site-packages/websocket/_core.py", line 293, in recv
opcode, data = self.recv_data()
File "/home/zzhang/.local/lib/python3.6/site-packages/websocket/_core.py", line 310, in recv_data
opcode, frame = self.recv_data_frame(control_frame)
File "/home/zzhang/.local/lib/python3.6/site-packages/websocket/_core.py", line 323, in recv_data_frame
frame = self.recv_frame()
File "/home/zzhang/.local/lib/python3.6/site-packages/websocket/_core.py", line 357, in recv_frame
return self.frame_buffer.recv_frame()
File "/home/zzhang/.local/lib/python3.6/site-packages/websocket/_abnf.py", line 340, in recv_frame
self.recv_header()
File "/home/zzhang/.local/lib/python3.6/site-packages/websocket/_abnf.py", line 288, in recv_header
header = self.recv_strict(2)
File "/home/zzhang/.local/lib/python3.6/site-packages/websocket/abnf.py", line 375, in recv_strict
bytes
= self.recv(min(16384, shortage))
File "/home/zzhang/.local/lib/python3.6/site-packages/websocket/_core.py", line 427, in _recv
return recv(self.sock, bufsize)
File "/home/zzhang/.local/lib/python3.6/site-packages/websocket/_socket.py", line 93, 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 "train_mineral_shards.py", line 51, in
main()
File "train_mineral_shards.py", line 24, in main
visualize=True) as env:
File "/home/zzhang/.local/lib/python3.6/site-packages/pysc2/env/sc2_env.py", line 180, in init
static_data = self._controller.data()
File "/home/zzhang/.local/lib/python3.6/site-packages/pysc2/lib/remote_controller.py", line 151, in data
return static_data.StaticData(self.data_raw())
File "/home/zzhang/.local/lib/python3.6/site-packages/pysc2/lib/remote_controller.py", line 80, in _valid_status
return func(self, *args, **kwargs)
File "/home/zzhang/.local/lib/python3.6/site-packages/pysc2/lib/stopwatch.py", line 197, in _stopwatch
return func(*args, **kwargs)
File "/home/zzhang/.local/lib/python3.6/site-packages/pysc2/lib/remote_controller.py", line 147, in data_raw
ability_id=True, unit_type_id=True))
File "/home/zzhang/.local/lib/python3.6/site-packages/pysc2/lib/protocol.py", line 127, in send
res = self.send_req(sc_pb.Request(**kwargs))
File "/home/zzhang/.local/lib/python3.6/site-packages/pysc2/lib/protocol.py", line 113, in send_req
return self.read()
File "/home/zzhang/.local/lib/python3.6/site-packages/pysc2/lib/stopwatch.py", line 197, in _stopwatch
return func(*args, **kwargs)
File "/home/zzhang/.local/lib/python3.6/site-packages/pysc2/lib/protocol.py", line 86, in read
response = self._read()
File "/home/zzhang/.local/lib/python3.6/site-packages/pysc2/lib/protocol.py", line 152, in _read
response_str = self._sock.recv()
File "/usr/lib/python3.6/contextlib.py", line 99, in exit
self.gen.throw(type, value, traceback)
File "/home/zzhang/.local/lib/python3.6/site-packages/pysc2/lib/protocol.py", line 63, 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.

The installed software is in the attachment pacman.txt.

pacman.txt

Best,

Observing Mineral/Vespene amount of all Players

Is it possible to observe the Mineral/Vespene amount of all Players watching the game only once?

I know, that I can set "player_id" while call to "IgnoreReplay" to watch the replay from the view of the different players. In this case I can observe only the Mineral/Vespene amount of the current player. As expected...

If I set "player_id" to 0 while "IgnoreReplay", I have the view of an observer watching the game. But in this case I do not know how to get Mineral/Vespene Amounts. In my opinion all of them should be observable.

If not yet possible, may I propose a new feature?

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.