An agar.io bot that tries to compete with humans
Beat humans in the agar.io game by having the biggest score.
Input: A sequence of the last N frames with:
- positions and types of:
- at most
f
nearest instances of typefood
- at most
p
nearest instances of typeplayer
- at most
m
nearest instances of typemine
- at most
Initially N = 1
, f = 1
, p = 1
, m = 0
will be used.
If the results appear to be promising, these values will be changed.
Values outlined with green are distances to food
, black - blob
s.
N = 1
, f = 2
, p = 3
, m = 0
.
Output:
- direction
- action:
move
split
- move and splitfeed
- move and feed
Initially only move
action will be allowed.
During the evolution score
will be assigned based on:
- time lived
food
consumed- enemies consumed
Genetic programming is going to be used.
The programs are going to be represented as Lisp code.
The first implementation should be as simple as possible.
An example program:
(if (< (distance (mine 0))
(distance (food 0)))
(+ 180 (direction (mine 0)))
(direction (food 0)))
To choose a subexpression to mutate, we can walk it recursively, construct a list of (references to) the individual expressions and choose one of them to mutate.
An example of such a list:
((if (< <...>) <...>)
(< <...>)
(distance (mine 0))
(distance (food 0))
(+ 180 <...>)
180
(direction (mine 0))
(direction (food 0)))
Symbols:
(distance (mine i))
(direction (mine i))
(size (mine i))
0
,5
, ...,355
Operations:
(if test then else)
(+ a b)
(- a)
(< a b)
- research existing solutions
- give a presentation
- play on external server
- play on internal server
- compare results from internal and external training
- quality
- speed
- compare the results
ai
vspro
vsamateur
- give a presentation again
- add teamplay
- profit