SVGs are from https://game-icons.net:
- Cyborg face icon by Delapouite (https://delapouite.com/) under CC BY 3.0
- Annexation icon by Cathelineau (https://game-icons.net/) under CC BY 3.0
- Cryo chamber icon by Delapouite (https://delapouite.com/) under CC BY 3.0
- python 3.6.1 or greater
- pipenv: https://pipenv.readthedocs.io/en/latest/
- Implement your bot anywhere you'd like using the 'http://127.0.0.1:5000/simulator/tick' endpoint and (optionally) the 'http://127.0.0.1:5000/simulator/new' endpoint. For your convenience, yourBot.py is available to give you a starting point and baseBot.py is available to see how the enemies work.
- The entities will execute their actions in the order they're listed in the sim.board.entities list
- The player's bot can't move on to a space occupied by another entity, except for a collectible the player is picking up
- The player can't hold up more than 5 collectibles
- When the player attempts to move on to their home base, they will instead deposit all their collectibles in their base
- There is a limit to the number of frames in a round
- There is a limit to the number of rounds before the final judgement
- Your bot is judged on the avg, high, and low of the following:
- Score. This is the number of collectibles you rescued minus the number of collectibles you lost.
- Rescued. This is the number of collectibles you deposited in your base.
- Lost. This is the number of collectibles your enemy deposited in their base.
On Mac, you may need to install https://www.anaconda.com/download/#macos so pythonw for python3 is available.
You may need to install pygame directly: python3 -m pip install -U pygame --user
to get the visualizer working
Execute the following to install your dependencies and start a annoying-sounding aliens example game. you should hear sound and see a some alien space ships, which will automatically close when they get to your vehicle.
make && make test-visualizer
this actually runs the simulation and has endpoints to control the simulation
make && make run-server-simple
make && make run-server-submission
print all available endpoints
make && make print-routes
At the time of this writing, that was:
Endpoint | Methods | Rule |
---|---|---|
health | GET | / |
new | POST | /simulator/new |
scores | GET | /roundScores |
state | GET | /simulator/state |
tick | POST | /simulator/tick |
this shows the current state of the local server's simulation by hitting the endpoints of the server
make && make run-visualizer
In addition to visualizing the current state of the simulator (and ending score summary), the visualizer can be used to interact with the server for testing. Press 'i' to toggle interactive mode
- Use the arrow keys to send a tick with all player bots going in that indicative direction. This uses the '/simulator/tick' endpoint.
- Use the 'r' button to go to the next round. This uses the '/simulator/new' endpoint
make && make run-base-bot
Run your own bot (see yourBot.py/yourBot.js to implement. By default will just print 'implement me', stay in the same spot, and wait a second)
make && make run-your-bot
make install-js-bot && make run-your-js-bot
- Ability to demo top implementations
- Run simulator/visualizer locally
- Local Web api to control the bot
- Move limit
- Same number of collectibles, but random location and random starting position of enemies
- Score = bot collected collectibles - enemy collected collectibles
- Simulation mode, 1000 games run. Record all scores.
- 5 collectible carrying capacity, then must touch your base
- Base bot to be used as a template
- Well (ish) understood images for all entities
- Display Leaderboard after max number of rounds
- Set simulator.ALLOW_STEALING to True. If you move in to an enemy, you'll take what they're holding. If they move in to you, they'll do likewise.
- Change numEnemies=2 to greater than 2.