C++ Typing Game JBC Hero
In spring of 2021 my Intro to Software Engineering class was tasked with creating an application using the SFML graphics library for C++. I worked with three other Boston University students (Maxine Loebs, Josh Singh, and Grayson Wiggins) to create this typing game. The name sake of the game, which we titled ‘JBC Hero’, is the initials of the professor who tasked us with this project, Professor Jeffrey B. Carruthers.
The game is simple. Imagine a cross between Typer Shark and Guitar Hero. The objective is for the user to type along to the lyrics of different songs accurately and in time. Points are deducted from the user’s score for typing too slowly or entering incorrect characters. At the end, if the user performs well enough, they can add their name to the leaderboard alongside fellow users.
This idea was conceived because we thought it would be a fun way for computer users of all ages and experience levels to improve their typing prowess. The C++ source code for this project can be viewed in PDF format here.
Here is a screenshot of the instructions screen, which can be accessed from the main menu. It offers a brief description of the gameplay and explains the scoring system.
This screen shows the selections of returning users one can choose from. The names shown are stored in a text file which is accessed by the source code. The player also has the option to enter a new name.
This image shows the gameplay. The song being played is Your Song by Elton John (we’re all big Elton Fans), but there are four other songs to choose from as well. The white lettering near the top shows the line to be typed. The gray letters above that are a preview of the next line. The user-typed letters appear in bold white in the middle of the screen. The logo of the game (designed by Maxine) appears at the bottom.
This image shows the leaderboard. Similarly to the ‘Returning User’ menu, these names and scores are accessed from a text file. The file automatically updates if the user beats the lowest-performing name on the list.