Project Conclusions
Conclusions: Flaws
The issues with the data the system records from UE4 have not been a problem in terms of the recording, but in terms of what data to record. Potentially useful data which was not recorded includes which weapon a kill was performed with, the range of a kill, whether the offensive player was moving/crouched/jumping, how far through the round the kill occurred, the assisting weapon (if relevant), and how many players the defender was spotted by. These would all allow for an AI system to better evaluate its chances against the enemy team and make better decisions.
The reading of the data is flawed in the way it reads the metrics as currently it does not take into account a third axis of movement, and as such only produces a two-dimensional projection of the heatmap. This would obviously be problematic in maps with more z-play than the one currently in place - if the map had overlapping corridors then the system would culminate those metrics and project them only onto the top layer.
The input of the data could be managed better. Currently the data is projected onto the map by the gamemode, where ideally it would be handled by a separate data manager class which would allow for more control over the output as well as allowing for multiple gamemodes to utilise the same data manager.
Interpretation of the data has generally been very good, although my lack of experience in behaviour trees has resulted in a sub-optimal implementation which does not fully utilise the system. Currently the bots do not take into account ‘gain’ metrics in their decisions which may have changed the way they responded to certain situations.
Conclusions: Successes
Aside from the flaws in recording and usage, the data has allowed for a successful system to be produced. According to testing results 80% of people thought it was successful in its aim of producing more challenging, less predictable bots; and 100% thought the bots were more difficult to play against. The observation of the bot vs bot matches showcased some interesting quirks in the system such as the cyclical nature of a bot vs bot game compared to one with human players which will eventually settle at some sort of equilibrium as players discover positions which have an inherent advantage. If ai vs ai is the only learning data, Bots will not stick to these positions as they continue to try and adapt.
Though the game scenario is inherently quite difficult, all of the players in the testing were able to play and comment on the full test scenarios without external assistance. This was largely due to the spectator view available after death, which allowed the player to observe the ai bots more closely.
Conclusions: Future Development & Application
The system was generally very successful and has a lot of potential for further development. Aside from the flaws listed above, the system should be tested with other types of game, such as MOBA or Platformers to test the flexibility and relevance of the metrics used. Of course, different game types will require different recording methods and metric types, which would be an interesting expansion. One could adapt it for a MOBA system by taking factors such as ability timers, movement speeds, item purchasing and team composition to alter the ai’s decisions. Further development of the system would allow for both expansion and streamlining for efficiency, and may also allow for it to be tested in a client-server scenario - similar to a real-life implementation.