Reverse proxy for games
1.3K
A Massively Multi-player Online game, where players create Artificially Intelligent programs to play on their behalf.
People program Avatars. Avatars play the game. A player's aim is to create a better Avatar than other people's Avatars. A "better" Avatar is one that scores points faster than other people's Avatars.
By getting people to compete to program better Avatars, we can teach them all sorts of algorithms and optimisation techniques. For example, a really good Avatar might incorporate AI techniques such as neural networks in order to make more optimal decisions.
The world is a 2D grid. Some cells are impassable. Some cells generate score. Some cells contain pick-ups.
There are other Avatars in the world. The more Avatars there are, the bigger the world gets.
Time passes in turns. An Avatar may perform a single action every turn. They only have visibility of a small amount of the world around them.
Avatars can only wait, move or attack.
Even with these basic mechanics, there is quite a lot of complexity in creating an Avatar that is good at gaining score. For example, you may need to be able to find optimal paths from A to B. You may need to program your Avatar to remember the parts of the world that it has already encountered, so that you can find faster paths between locations. You may need to program your Avatar to machine learn when it is optimal to:
playersexample_projectaimmo-game-creatoraimmo-gameaimmo-game-workerClone the repo
Make and activate a virtualenv (We recommend virtualenvwrapper) - if you have a Mac see the following section.
mkvirtualenv -a path/to/aimmo aimmoworkon aimmo./run.py in your aimmo dir - This will:
You can quickly create players as desired using the following command:
python example_project/manage.py generate_players 5 dumb_avatar.py
This creates 5 users with password 123, and creates for each user an avatar that runs the code in dumb_avatar.py
To delete the generated players use the following command:
python example_project/manage.py delete_generated_players
python run.py -k. This will:
test-bin folder in the project's root directory.minikube start (if the cluster is not already running).minikube dashboard to open this.kubectl and minikube (both in the test-bin folder, note that this is not on your PATH) can be used to interact with the cluster.minikube dashboard to open the kubernetes dashboard in your def*./all_tests.py will run all tests (note that this is several pages of output).
--coverage option generates coverage data using coverage.pypython example_project/manage.py createsuperuser
pip install virtualenvwrapper export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
Want to help? You can read the contributing guidelines. You can also contact us directly using this contact form and we'll get in touch as soon as possible! Thanks a lot.
Content type
Image
Digest
Size
42.4 MB
Last updated
over 8 years ago
docker pull ocadotechnology/aimmo-reverse-proxy