2D Infinite Runner

Made from: June 2 2022 - June 22 2022

This game was made as part of my ICS4U1 Final Project in high school made in Java and Swing UI. I tasked myself to create my own game engine and leverege my expertise in using a game engine to decipher what various components to add. The following two images provide a brief look into the game.

Infinite Runner Initial Game Infinite Runner End Game

I created a game manager class to use an input static class to send information to the car object. The car object would then tell the Render Manager object about how it should be rendered. Additionally, it would also call a function for the Collision Manager so any collision with Objects could be detected.

The game manager would additionally increase the speed at which the cones are sent toward the left. It would place them in a queue and destroy them by calling a destroy function on the obstacle after it is outsie of the screen. The destroy function would then make the object remove it from the rendering and collision managers queues.

The increase speed ramping of obstacles can be seen in the the top two images. You can see the one with the larger score has more space inbetween obstales as a result and the smaller score has more obstacles. This is due to the obstacles being spawned from the game manager at set intervals.

The rendering manager was made so that it used the Heap datastructure (AKA Priority Queue in Java) so that they can be rendered in order based on priority.

This project has a public Github Repository: