blizzard / s2client-proto Goto Github PK
View Code? Open in Web Editor NEWStarCraft II Client - protocol definitions used to communicate with StarCraft II.
License: MIT License
StarCraft II Client - protocol definitions used to communicate with StarCraft II.
License: MIT License
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.
Starting off with the given examples, passing in map name never seemed to work.
Observations:
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()
.
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?
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?
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:
Is there any way to use proto3 (csharp langauge support)?
Converter or something else?
Excuse my crossposting from the s2client-api issue tracker, but I believe this is critical and I am not sure whether the protocol or API library is at fault:
As zerg drones become buildings, the created building is a new unit, but the existing drone is never marked as destroyed/dead. It becomes impossible to know which drones still exist and which do not.
When training the agent, we find that sometimes the opponent says 'gg' which means we win. Is there a way for the agent to accept this surrender now? Thank you !
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).
Could you provide a "hello world" bot example?
Or rewrite for python this tutorial: https://github.com/Blizzard/s2client-api/blob/master/docs/tutorial1.md
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?
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
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.
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.
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.
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.
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.
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.
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
why do i need a password when unzip the SC2.3.16.1 package?
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.
Linux packages for 3.18.0 - 4.0.0 are missing along with relevant map packs.
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:
camera
feature from the minimap
to calculate the center of the camera
rectangle on the minimapcamera_move
action to move the camera to that calculated pointExpected result:
camera
feature should remain unchanged.Actual result:
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.
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....
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)
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
I downloaded Replays.zip and unzip it, but only found replay files. Where could I download the map from Battle.net Cache? Thank you !
the buildinfo/versions.json file is missing the information for the latest available linux package 4.0.2.
The info is needed for replay processing with the PySC2 framework
Related issue in PySC2 Repository:
google-deepmind/pysc2#131
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!
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;
}
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
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.
Best,
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!
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?
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?
I downloaded the Melee Map, it seems need password?
What is the pwd?
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?
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?
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?
Hi. I am trying to train an AI from replays , so I wonder if there is a way to acquire players' actions from replays. Thx : )
It already has mineral_cost
and vespene_cost
, so it would be logical to also have build time there.
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.
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?
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.
Reproduction:
Launch the Linux binary:
~/StarCraftII/Versions/Base55958/SC2_x64 -listen 127.0.0.1 -port 9999
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!
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.
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.
Request:
action {
actions {
chat {
channel: Team
message: "gl hf"
}
}
}
Response:
action {
result: Error
}
status: in_game
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).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.