Machine Learning – Breakout
The project that I am working on for my Senior Project is ML-Breakout, where our group is recreating the game Atari Breakout using the Unity Game Engine, this time with a Versus Mode. Additionally we will be utilizing a Machine Learning Tool (most likely with TensorFlow) to allow for an Artificial Intelligence to play as well, both solo and versus another AI or human player. We have completed the requirements phase and have moved into the design phase of the project.
My Responsibilities
Our group divided up and assigned sections of this project based on our areas of expertise and interest. I will be working on the Physics interactions (2D kinematics) as well as the controller input scheme.
The Unity Game Engine has tools to help create a wide range of games, anything from a simple arcade game to a large scale-MMO. For this project I will be taking advantage of Unity’s built-in 2D Physics Engine, which essentially consists of Rigidbody 2D (physical game entities), with their interactions governed by Collider 2Ds (hitboxes/collision radii) and Effector 2Ds (determines the magnitude and angle of forces applied between colliders).
First Roadblock
The first issue that I have run into during the design phase of this project is how faithful to be to the original implementation. The original game ran on simple hardware compared to todays modern computers, so many optimizations were made to reduce physics computations.
For example, you may assume that if the ball approaches the center of the paddle at a 45° angle it will launch at a 45° angle, and you might be right. But what about a 44° input angle? or 43.7°? The original game had a limited number of acceptable angles and would simplify the input angles in order to reduce the computational strain on the machine. The paddle itself was also divided in half, with launch zones favoring angles respective to their sides (i.e contact with the left side of the paddle will give the ball a more left-leaning launch angle). However this was likely done to give the player more control when returning the ball rather than reducing computations. Since the source code of Atari Breakout is not available, the exact specifications of the physics are a mystery.
Figure 1: The above figure depicts the expected launch angle (dashed line) compared to the actual travel path of the ball in Atari Breakout.