Inspiration

We all found common ground on our passions in speed typing. So, we decided to find a new way to practice and compete in that genre by fusing it with a nostalgic rhythm game of our past, Piano Tiles. We therefore decided to take on this game, using Java, a language which we all were familiar with.

What it does

The game has three game modes, with characters spawning on the top, travelling down vertically; from the right and left sides, converging towards the center; and from all four corners, converging radially. There are also options to customize the difficulty of the set, where the user can control the delay between character spawns, and the speed of which a character falls down. With each character entry that is registered near the judgement bar (we call it the event horizon), the user will be graded on how close they are, and will also have a streak, to further promote competition. At the end, the user's high score and current score is tracked.

How we built it

Since we all had some knowledge in Java, we decided to build our game with it. We started with getting familiarized with some boiler plate game loop code, separating the game into its different components, such as the character spawner, level manager, and character position updater. We then branched out to focus on some more visual aspects, delving deeper into the Java Graphics API, to make a compatible UI. In the end, we spent time covering some bugs and balancing the game.

Challenges we ran into

We all entered with different skill levels, with one of us having simple object oriented knowledge, another having experience working on console based database assignments, another having a strong background in mathematics, and another having some experience coding Java games in the past. We all divided up the work according to our strongsuits, where we found certain tasks to be more suitable for one person. For instance, the character movement was more mathematical, setting up the game loop and connecting the files together would require experience with handling projects in the past, and creating the note object had its easy aspects of object oriented programming, but as it is the core of the project, grew in complexity in how it had to interact with other classes.

Project control using Github was also relatively new to us, requiring time to ponder about why our git bash wasn't connecting, or figuring out why we couldn't push, or deciding what portions of the code to accept and reject in a merge. Being a team of four people, this issue was barely manageable, as we all were able to commit in short periods of time to keep each other updated.

Designing UI for Java was also a significant challenge. When compared to game engines such as Unreal and Unity, the resources to deal with graphics were pretty limited. This constituted most of the time, as we had to make sure each component of the rendering was set up properly: the fonts, font colors, backgrounds, rectangle parameters, and gradient colors.

Accomplishments that we're proud of

We're proud of having managed three game modes, as it allows the playing experience to be more diverse. We're also proud of the general aesthetic and feel of the game, because it's rather easy to be overwhelmed by the hoard of characters spawning, creating a rather comical effect.

What we learned

We learned how to integrate multiple classes together into a main game class and manage a game loop. keeping track of time, as our game was highly centered around that aspect. Working out the rendering was also rather significant, provided the number of steps it takes to render a simple button that says "Play."

What's next for Type in Time

One of our motivations for this app was to integrate music. Due to time constraints, we haven't been able to implement such a feature, but we would like to see some sort of spawning system synced with music. We also plan on reworking the UI, with more consistent positioning of the elements across the screen. We would also like to improve the scoring system, perhaps introducing abilities such as time slow or complete column deletion to improve score. Other future features: data saving, preset levels, including numbers and punctuations, adding full words at random, spawning in multiple characters at once.

Built With

Share this project:

Updates