Final Project Write Up



Final Project Write Up

Game Features

For my final project I used my 2D collision system and Srija Kambhampati’s Audio system to make an arcade space shooter game that is based off of asteroids. Player’s are able to move a ship that can shoot at asteroids to destroy them. Players can also collect a shield power up. Player’s lose the game once their ship has been destroyed. The object of the game is to destroy as many asteroids as possible before finally dying. Players can see they’re last sessions scores in the games log file.

Purpose of Systems Used

2D Collision System

  • Detect player and asteroid collisions (with and without power up).
  • Detect bullet and asteroid collisions.
  • Detect player and power up collisions.

Audio System

  • Play a clip when the game is about to start.
  • Play a clip when the player destroys an asteroid.
  • Play a clip when the player is destroyed by an asteroid.
  • Play a clip when the player picks up a power up.
  • Play a clip when the player loses the power up.
  • Play background music.

My experience using my engine system

When I designed my collision system I tried to keep it as simple to use as possible. I tried to imagine what someone might try to use my system for so I tried to add as many features as I could in the allotted amount of time. I didn’t have any issues using it for my particular game. The feedback I got from classmates that used my system was that it was easy to use and understand. There were two things that I wish I had been able to implement before the due date which were being able to rotate a rect collider (there were some bugs that I could not resolve before the due date so that feature was removed) and having a better fleshed out layer system. I think being able to add a way to specify what each layer collides with rather than just making it so only colliders on the same layer collided would have allowed for easier use and more complex game design (Most engines have a way for you to designate what a given collision layer responds to and how it responds).

My experience using Srija’s engine system

Srija’s system was very easy to use. It actually only took me 30 mins to get it integrated into my solution and to have all the audio playback I wanted in my game. The only issue I encountered was that my visual studio did not have the external dependencies required installed so I had to add those myself. Wasn’t a big issue just something that was not mentioned in her how to guide and it was resolved by doing a quick and basic google search of the error message.

My experience making a game with my game object and graphics interfaces

Using my game objects and graphics interface was pretty easy for this particular project. I didn’t need to do any drastic changes to either of the systems from the way they were in the original assignments. All I had to do was add a way for a gameobject to keep a reference to its collider pointer and add a set/get method for it. The most useful thing I did for the graphics system was to add a bool to my gameobject class that told both the collision system and the graphics system whether or not the gameobject should collide or render (similar to unity’s gameobject enabled feature). That allowed me to create a pool of gameobjects that I could just enabled and disable as my game ran without having to create/destroy gameobjects during the games run time.

My experience in this course

I think one of the most valuable things that I learned from this course is the importance of creating human readable tools. From what I have seen in my short time applying for positions in the industry it seems that understanding how to make tools specifically for non-engineers on development teams is a highly sought out skill. It also helped me to understand how to design interfaces in a way that focuses on ease of use and understanding especially because the industry requires collaboration and it is important to that process to have intuitive interfaces. 

Files

FinalProject.zip 31 MB
Dec 12, 2019

Get Custom Engine Asteroids Demo

Leave a comment

Log in with itch.io to leave a comment.