It is essential for multiplayer computer games, to be well balanced, to ensure that neither player has advantage from the attributes of the game, and that the chance of winning is determined only by the skill of the players. This matter can be solved in a trivial way if all of the players have the same starting conditions. However in most games this isn’t the case, lots of times players can chose for a variety of options, which we do not consider as a part of the game. In this case too we have to ensure that the different starting conditions do not mean advantage or disadvantage. It’s a hard task to guarantee this, because different starting conditions can lead to different optimal strategies.
The aim of this thesis is to create an algorithm, which can be generally used to test, and if needed, change the starting conditions of the game in order to balance it. To achieve this, a game was needed to be constructed, which is interesting enough from a balancing perspective. I’ve chosen a simple card game, in which the players can play with different kind of decks against each other. These decks represent the different kind of starting conditions to be balanced.
In order to evaluate the game balance, we need to know the optimal strategy for each deck. Reinforcement learning is a good tool to do this. Reinforcement learning is a field of machine learning, where the agents aim is to maximize the overall reward, which was given for its actions. The agent does this by learning the optimal strategy from the given rewards and the changes in the state of the environment.
From the optimal strategies and the utility of the games states calculated with the reinforcement learning, I created agent, which closely resemble the actions of a human playing the game. With these agents, an algorithm was created which can change randomly generated starting conditions in a way, that the two opposing agents can have the same efficiency in a representative number of battles. The algorithm uses only the utility calculated with the reinforcement learning, to change the attributes of the decks in order to create the game balance, which is measured by the win ratio of the opposing agents. The algorithm can be used to balance any game, because the only data it has to know of the game is the utility of the states.