This projet implements and compares both Reinforcement learning AI and conventional Behavior Tree AI on top of a 3D multiplayer brawler arena shooter game.
- The game implements a data-driven weapon system (with multiple projectiles, ammunition, particle systems, reloading animation). Everything is server-side and synchronized across multiple player instances.
- The game implements a lobby that waits for 4 people to join before entering the main arena. The game spawns BT AI and RL AI against the 4 players.
- The reinforcement learning AI consists of two phases: training the agent and playing against the agent:
- A fully costumizable training user interface was created. It allows the developer to tweek training data in real time to achieve the wanted behavior.
- Progress is being made towards exporting the RL code to a plugin.
- The agent stores it's progress when killed and when another one spawns in the next epoch the training continues where it left off.
- After an agent is trained it reads the model data from it's Q-table and does the best action
- The algorithm implemented in this project is tabular Q-learning
- It takes and agent and an environment.
- The agent is given a finite set of possible actions it can perform
- The environment gives the agent the current state of the game
- The environment gives the agent the current reward for the previous action it has performed
- The agent tries to optimize the total predicted future reward by doing the action that will give it the highest reward in a given state.