yeah, the training environment was a basic bullet hell "game" (really just bullets being fired at the player and at random directions) to teach the neural network basic bullet dodging skills
- the white dot with 2 surrounding squares is the player and the red dots are bullets
- the data input from the environment is at the top-left and the confidence levels for each key (green = pressed) are at the bottom-left
- the scoring system is basically the total of all bullet distances
- this was one of the training sessions
- the fitness does improve but stops improving pretty quickly
- the increase in validation error (while training error decreased) is indicated overfitting
- it's kinda hard to explain here but basically the neural network performs well with the training data it is trained with but doesn't perform well with training data it isn't (which it should also be good at)
me too! there aren't many attempts at machine learning in this type of game so I wasn't really sure what to expect.
yeah, the NN did this as well in the training environment. most likely it just doesn't understand these tactics as well as it could so it's less aware of (and therefore more comfortable) to make smaller, more riskier dodges.
this was one of its main weaknesses. the timespan of the input and output data are both 0.1 seconds - meaning it sees 0.1 seconds into the past to perform moves for 0.1 seconds into the future - and that amount of time is only really suitable for quick, last-minute dodges, not complex sequences of moves to dodge several bullets at a time.
the method used to input data meant it couldn't see the bounds of the game window so it does frequently corner itself. I am working on a different method that prevents this issue, luckily.