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
fnearest instances of typefood - at most
pnearest instances of typeplayer - at most
mnearest 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 - blobs.
N = 1, f = 2, p = 3, m = 0.
Output:
- direction
- action:
movesplit- move and splitfeed- move and feed
Initially only move action will be allowed.
During the evolution score will be assigned based on:
- time lived
foodconsumed- 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
aivsprovsamateur
- give a presentation again
- add teamplay
- profit