ml.PNG

A common problem with game design is creating a game that is engaging and challenging for every player. Some players are more skilled than others, making the game too easy for some, and too hard for others. I wanted to create a game that was equally challenging for every player no matter their skill. I did so in this infinite runner game, where the platforms are generated one at a time based on the player’s previous performance. Certain features were identified for each block: how far and high it is from the previous, how wide the block is, and if there is an enemy or other obstacle present on the block. Based on how well the player performs on blocks with those features, a machine learning algorithm generates the blocks that would best suit the player so that in the beginning of the game they get blocks they are good at; but as time progresses, the game becomes more difficult and they are given blocks that they perform poorly at. This makes every game unique and personal to each player.

I did not have a large testing group for this, so to ensure my block generation was doing its job, I created several artificial intelligent agents to play the game, each with a different set of skills. This showed that agents that are designed to be bad at particular features of blocks would experience these blocks less. Also, AI are more consistent with humans so they will never get better at what they are bad at, which would give a more clear indicator that the block generation was catering to specific skills.

Overall, the project was a success and there was a clear indication that the agents performance increased over time as the block generator learned what the agent was good and bad at such.

This was a project I pursued for an independent research class at the University of Kentucky as an undergraduate student.

I only implemented the block generation to this project. The assets were gained from a third party.

Agent jumping along some blocks.

Agent jumping along some blocks.

Further Development

I am satisfied with the current standing of this project, however, I would like to take some time to write a research article about it and try to get it published. I have a preliminary paper which was required for the course for which it was made.