You will need to rebuild and restart your containers. Try:
docker-compose downdocker-compose builddocker-compose up --abort-on-container-exit
The Docker CLI is unable to reach the Docker Daemon. Try checking that your Docker is up and running.
This might be because you are using an older version of
docker-compose which does not support the keyword
extends. You will need to update
docker-compose to version 1.27+. More info on the issue here and info on how to upgrade here.
You might experience a difference in the rate of update between your Agent and the game environment. I.e. you may send an action at
tick_number = 1, but the
game_state does not update with this action until
tick_number = 2.
This is likely because you are using a
WORLD_SEED that is invalid (i.e. game is trying to generate a map that breaks some pre-defined rules). Try using another
WORLD_SEED. Examples of broken
You can connect a second agent or switch out any connected agent by changing the services
agent-b in the
docker-compose.yml file provided in the starter kits.
agent-a is commented out. Un-comment this block to connect a second version of your agent to the game server.
base-compose.yml contains some default services that you can switch out either
agent-b for (e.g. for
fwd model agents). If you want to create your own, you will need to create your own Dockerfile (more docs on this here).
agent-a:extends:file: base-compose.yml# update next line with a service in base-compose.yml to change agentservice: python3-agent-dev # e.g. change to 'python3-agent' to test production buildenvironment:- GAME_CONNECTION_STRING=ws://game-server:3000/?role=agent&agentId=agentA&name=python3-agent- FWD_MODEL_CONNECTION_STRING=ws://fwd-server-a:6969/?role=admindepends_on:- game-server- fwd-server-anetworks:- coderone-tournament
You will need to create your own starter kit (you can use the Python and TypeScript versions as references) and ensure your agent's packets to the game server conform with the JSON schema under
If you have any issues, please reach out on Discord.
It will be safe to assume the following default runtime resources will be available:
See the Docker documentation here for a more verbose explanation of the above values:
Download your JSON replay file and upload it here.
Yes, we can provide you with the game server binary upon request. Reach out to @ModMail on Discord.
You can suppress some of the logs (e.g. tick counting) by setting the flag
0 (more info on changing environment flags here).
You can also configure your
docker-compose file to log server output (documentation here).
This refers to the forward model and forward agent starter kit. More information available here.
dev mount your host volume to the container. When changes are made to your agent, they will be reflected once you restart the agent container, without needing to rebuild the image. Servers without the
dev label are best for testing your production/submission-ready build.
You can add a restart policy to the game-server service in
docker-compose (docs here). Alternatively, you can run the game using
docker-compose up --abort-on-container-exit so that you will not need to exit the containers before restarting them.
If your Agent tries to make an invalid move (e.g. moving outside the boundary of the map, placing bombs when you have no ammo, trying to move onto a tile with a block etc.), the game environment will reject that action and your Agent will do nothing instead.
Actions are processed in the order that the agent packets are received, even if they occur within the same tick. Therefore, a situation where there is a competition for the same resource is only possible if two agents send actions at the exact same time, which is impossible (or at least very, very unlikely).
Agents have an invulnerability period lasting 5 ticks after they lose 1 HP. Walking through a blast or fire during this time will not incur any further damage.
Yes, check out the
administrator feature here.
Yes, check the documentation here.
The game server will resolve events in the following order:
Resolve all placements
Resolve all detonations
Resolve all agent movements (up/down/left/right)
Yes, the most up-to-date and best source of truth will be the validation scheme (link).