This is my final year academic project, designed and developed as part of
my
thesis, "Machine Learning In Video-games", in partial fulfilment of the
requirements for the degree of BSc Hons Computer Science (Games).
The
following piece of writing is directly taken from the abstract of my
thesis:
The system, a 2D platformer game, is a small collection of levels, made in Unity, that uses reinforcement learning to train an AI agent to play the game. The project's objective is to demonstrate that machine learning can be a viable, automated debugging tool for level design testing...the results of training the AI to complete the game prove that the AI is capable of discovering bugs and glitches, albeit in a random manner, within the levels.
What does "in a random manner" mean?
Simply put, in its current state, the system does not implement a tool that detects whether a bug has occured or records and prints out useful debugging information. This has to be done manually (e.g. video-recording). The system is only a prototype, after all. However, it was extremely interesting to observe the AI playing through my game and even discovering different glitches that had escaped my eyes.