Role in Project:

Developer, Asset Artist, Composer.

Contributors:

This project was completed individually.

Programs Used:

Processing (Code), Photoshop (Asset Design), Figma (Logo Design).

Timeline:

Roughly 4 weeks, completed in April of 2023.

Planning

‘Shred It!’ was created as my final project for my Digital Games class. Unlike previous class projects, which were more restricted, the final project was quite open ended. We were also granted the ability to make a game in any genre that we wanted. I of course sought to create a game far different from the 2D Platformers and top-down shooters we had learned to make so far. Although this would be more difficult, I recognised It would be a great learning opportunity for myself. I had the restriction of using the java based Processing language we had used in the class which did not lend itself to 3D games. With this restriction in mind I started brainstorming unexplored game genres that could be created in a 2D environment. In the end I decided that I wanted to make a rhythm game. From a technical standpoint this did not seem so different from what I had learned to code thus far, that my previous experience would be useless. At the same time, from a player's perspective the game would seem to be an entirely different experience than my previous work. For my inspiration, the game would be a synthesis of two of the most popular rhythm games, Guitar Hero and Friday Night Funkin. It would borrow much of its core gameplay from the latter, including: Battling a rival on stage, A metre at the bottom of the screen judging your performance, and notes flying over the screen. Some ideas from the former would also be showcased such as the notes being hit at the bottom of the screen, and the guitarist imagery.

Figure 1: An in-game capture of Friday Night Funkin, one of my game’s inspirations.

Project Proposal

When it came time to propose this idea to be approved by the Professor and his assistants, It was greenlit. The professor loved how unique the idea was compared to my peers. As I found out, despite how open-ended the assignment was, most of my peers had fallen back on ideas closer to the previous assignments. With a solid idea of how my final game would look, I began programming.

Development

Although I had experimented with how to create the core mechanics, I would instead start by creating the menus and level systems. This was so that I could build the gameplay on top of them rather than figuring out how to implement the menus and levels later. This was important given my inexperience with levels and menus, because my previous games had been wave based.

Figure 2: An early build of the game’s menu with no decoration.

Finally after this was finished, I would begin working on the core gameplay mechanics and the heads up display. Once these were working I could begin designing each level. Unlike most game genres, in rhythm games the music was the first thing that needed to be made. Unlike the team at Activision making Guitar Hero, my budget would not allow for the licensing of established tracks. Instead, I would compose three original tracks using Apple’s Garageband. After these tracks were made, I added them to my game by using a Processing extension called Minum by Damien Di Fede and Anderson Mills. This allowed me to add sound to my game, another thing that I had not done in previous projects. Then began the tedious task of manually placing hundreds of notes so they would properly sync with the songs. This was the most time consuming step to this point, a process which had no clear alternative. With All the levels working from start to end, the project would become more fun to execute.

Figure 3: An early build of the game’s core gameplay with placeholder assets.

Art Creation and Implementation

Most of what was left to do now was the creation and implementation of art assets. All of my assets were created by myself in photoshop. I created five different colours of notes for the five notes it is possible to play. I also created a buzzing electricity animation for the notes to give them life and visual interest as they fly down the screen. Next I made three animated backgrounds to give each level a distinct feel. The first was a robot factory with an assembly line of dancing robots moving by in a loop. The second is an ice cave with minecarts passing behind in a loop. The final was an underworld-like background with loop animated fire. Next I created the player’s rockstar avatar, with a lime colour pallet that contrasts nicely with the pallets of the three levels. For each level I also created a rival guitarist to appear on stage with you. Each is visually distinct and possesses a unique guitar that matches their design.

Figure 4: The second level, where you battle a yeti in an ice cave!

Figure 5: The final level, facing a rival demon in the fiery underworld!

With these rivals complete and implemented, I was nearly done. My project still needed something more however. Something that would allow it to stand out from the aforementioned inspirations. To make the game more difficult and unique I added the ability for the rivals to hurl musical attacks at the player that they must dodge. So I created more art assets and gave each of the three rivals increasingly more difficult move sets. The player must avoid attacks by jumping, so I implemented a jump animation for the player.

Figure 6: The first rival, a robot, uses an attack that the player is jumping over.

Feedback and Takeaway

This marked the completion of the game and was the point at which I handed it in. The teaching team admired it greatly and gave me one of the highest marks in the class. Beyond learning to code better, I gained a few more big picture takeaways relating to my process. The most important was the issue of optimisation. Although the game ran excellent on my computer, a lower end computer I tested it on near the end of development had consistent framerate issues. From this I know to test my projects on different devices through the whole process so that optimisation changes can be made earlier. That being said, At the time of its completion this was easily the game I was most proud of making and had put the most effort into. I was glad to see that others enjoyed it as well.