Ace In The Hole


After spending time in several Unity projects, I decided to switch it up by trying out the latest version of Godot to learn its capabilities. I gave myself the challenge of creating a game by myself, in 48 hours, from scratch, using a limited number of assets. I had already learned the basics of navigating the engine and writing GDScript from tutorials and I wanted to put those skills to the test. I have described the results of those efforts below.


THE CONCEPT

To kick off this project, I wanted to consolidate the scope of the game as much as possible so it could be finished 48 hours. However, I wanted it to be local multiplayer so my friends could compete with each other in person. This led me to making an arcade game where players would compete to reach the highest score. To accomplish this, the baseline would be that I would have to make control schemes for each player, something that gives players score, and a hazard that would prevent players from gaining score.

From that, I thought it would be most efficient to put the setting in the sky to prevent having to create too many level assets. This made it easy to focus on the gameplay as much as possible with the time I gave myself.


basic MOVEMENT

For this entire project, I challenged myself to use GDScript, something that I was unfamiliar with. What’s nice is that even though I didn’t know the language, I could still write out the logic and use online resources such as Godot’s API Documentation to help me learn how to materialize it.

With enough trials, I was able to figure out how to gather input to move the character, have it move without stuttering, figure out the screen boundaries, and finally restrict the movement of the player to stay within those boundaries for a smooth gameplay experience. Additionally, I added the some juice by letting the player spin quickly across the screen for extra points.

CREATING THE LEVEL

The bare minimum I needed to do to have competitive gameplay was to have a way for players to gain points through their movement skill and punish them for their lack of skill. I thought to do this by challenging them to fly through differently colored rings in the sky. The placement and size of the rings determined the color I decided to make it, which also determined the number of points the player would earn.

I found a black hole shader that could assist me for the hazards. Touching the black hole destroys the plane temporarily, which makes it so it’s impossible to earn points for a few seconds.

User interface

Learning a whole new system for user interface took a good bulk of the time I used to create this project since there was a whole new structure in Godot that I was unfamiliar with. From principles I knew that I needed a collision script that sends a message to a script that tracks the score, and the UI to be updated in coordination to the score changes.


reflection