Categories
Uncategorized

Getting Started with ML-Breakout

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.

Categories
Uncategorized

Hello world!

Welcome to Ben’s Bug Blog!

Introduction

This b”Blog” will serve as a part of my debugging process as well as being a record of the problems I solve (and the ones that I cause :/ ).  Isolating and correcting bugs is as much of an art as it is a science, but like with most things in life, the easiest way to fix any problem is to avoid having it in the first place.  This is why proper coding practices and maintaining documentation is paramount to writing clean, efficient, and effective code.

Personal Information

I attend Oregon State University in-person at the Corvallis Campus, where I am pursuing a Computer Science Degree.  As of writing this I am 22 years old and have lived in Oregon for the majority of my life, having been born in Arizona before moving after around three years.  Even though my memories from early childhood are pretty vague, I remember being fascinated with Video Games and Computers.  My older sister had poor eye-hand coordination, so the doctor prescribed video games to help her practice and develop those skills.  She didn’t care for them much, but I quickly became obsessed.  My parents attempted to wean me off but it was already too late, and ever since then video games and technology have become crucial components of my life.  

Both of my parents are engineers, so when I applied to Oregon State University I did as a Electrical and Computer Engineering student.  While I enjoyed some of the complex mathematics and logic from that coursework, I had no passion for circuitry, but I immensely enjoyed the programming heavy courses.  Recently I switched my major to Computer Science with an option in Simulation and Game Programming and began my pursuit of a career that I could actually enjoy.

Family and Pets

I have one sibling (aforementioned older sister who lives in another state) who has a cat named Baby Daisy, and my parents who have an amazing Yellow Labrador Retriever named Jasper.

Skills and Interests

  • C/C++
  • Python
  • HTML/JavaScript
  • Assembly Language
  • OpenGL

I also have experience with Digital Logic Design and microcontrollers due to my history with ECE.  My favorite examples of past projects are creating a visual HDMI connector, building simple ASCII and Simulation Games, and creating Interactive and Traversable One-Page Websites with JavaScript, DOM API, and MongoDB.