Code: Github repo


This project involved developing a catch game using Unity Engine and C# in a team of six. The visual assets for this project were created using Adobe Illustrator. The team members can be found on the Readme page of the Github repository. The development stage of the Project was broken down into two sections: Menu User Interface (UI) and Gameplay.

User Interface

The User Interface was split into five different scenes:

  • Load User: The Load User scene is used to select between users. If a user does not exist denoted by < None >, a new user can be added onclick of the < None > button. To limit the storage used on disk, the number of users is limited to 4. To streamline the process of serializing user profile to/from disk, a User class is used. When the user selects one of the profiles, the makecurrentuser function in User class deserializes the user profile as a User object.
  • Level Select: The Level Select scene contains options for Quit, Previous level, Next level, Home and Level Selectors. When a user clicks on a Level Selector, it changes the current scene to the game level selected out of Level 1, 2 or 3 scenes.
  • Menu: The Menu scene contains options for Change User, Start game, Store, Settings and Exit. The buttons are mapped to their respective scenes explained by their literal names except the Exit button which is used to close the game.
  • Settings: The Settings scene contains inputs for volume control which can be changed using the slider available in the scene.
  • Shop: The Shop Scene contains customization options for the game background, sprite (the catcher), and notes (the falling objects). The purchases made by user for customizations are serialized to user profile on disk for persistance.

Gameplay

The Gameplay section is divided into three scenes for three levels available:

  • Level 1
  • Level 2
  • Level 3

Each level can be played for 60 seconds with a multiplier which increments after a note is caught and resets on a missed note. The top panel on the level scene shows timer on the left, color pallete in the center and pause option on the right. The bottom panel shows the sprite selected, colors available in the pallette and the multiplier in order respectively. The level color pallette is applied to the falling notes. Level 1 contains primary colors, level 2 contains secondary colors and level 3 contains tertiary colors. This feature was added to make the game educational. The pause button pauses the timer and shows options to Resume game, Quit game, Home and Restart. The game ends when the timer reaches 0 after which a final score is shown to the user. If the score exceeds 150, the players gets bonus points added to encourage user to catch as many notes as possible. If the user achieves a high score, it is persisted on disk. The user also earns coins after each game equal to 50% of the total score These coins can be used to purchase items in shop.

Below are some screenshots for the game:

Menu Shop Gameplay

Tools Used

  • Unity
  • C#
  • Adobe Illustrator

Demo