I've created a game (basically an Agar.io clone), where a human player is placed against AI controlled bots powered by a genetic algorithm and neural networks.
The problem is that I think that my algorithm isn't efficient. I have 10 bots ranked by their fitness function, which is time survived. Their gene consists of real numbers between -1 and 1.
From lowest to highest fitness, I take n bots up to 5 bots and take the current weight value and add it by a Gaussian number multiplied by (10^-n). I had trouble performing crossover with floating point numbers, thus I only did mutation like this.
Obviously, my AI isn't very intelligent.
How could I improve my algorithm?
Here is where most of the source code resides if needed: https://github.com/jadenyjw/evo/blob/master/core/src/com/evo/game/stages/GameStage.java