Games Development - Final Project: Playable Game

08/12/2024 - 12/01/2025 / Week 12 - Week 16
Joey Lok Wai San / 0350857
Games Development / Bachelor of Design (Hons) in Creative Media 
Final Project: Playable Game



TABLE OF CONTENTS



LECTURES

All lectures and exercises completed in Games Development - Lectures & Exercises



INSTRUCTIONS


https://drive.google.com/file/d/1Gtkh4m9BvehlC5o1Vlk3Ja0el36iSHBI/preview



FINAL PROJECT: Playable Game

In the final task, students will integrate their art assets into their game development and produce a fully functional and playable game.
  1. Unity Project Folder 
  2. Unity WebGL Build
  3. Upload to Netlify or any online hosting service and share the link to the playable game.
  4. Video presentation and walkthrough of the game 
  5. Updated Game Design Document
  6. Blog post URL to the exact page/ post on this project

Design Process in Unity
After reviewing my game prototype, I realised there wasn't anything much in the game as it lacked platforms and other traps that I wanted to make. Furthermore, the linear design made the gameplay feel quite boring. For the final project, revised the designs of my level designs, and created additional game mechanics. 

Camera Placement
One of the main things I changed was the camera placement because the camera was too low therefore showing too much ground in the scene. I couldn't do this initially but after some long anger issues sessions, I found that you can change the Screen Y placement of the body. 


Fig. 1.1 Camera Placement - Before (Left) vs After (Right)

Camera Bounds
One of the other things I did based on the camera was to add camera bounds. Basically, it just helped the player from looking outside the map of the game. To make sure the player doesn't fall off, I added a box collider where the camera bounds ends.

Shoutout to this YouTube channel "Raycastly", the videos are really helpful and take less than a few minutes. It's so straight to the point and doesn't waste any time. They really saved me fr

Fig. 1.2 How to Add Camera Bounds in 100 Seconds | Unity 2D Camera Confiner

Fig. 1.3 Outcome of Camera Bounds in Unity

Timer
I made a timer for my game, the concept behind it was that at the end of the game, it'll show the players "You're only X minutes late!" in a humorous way. I followed this tutorial from this YouTube channel, "Rehope Games", which was another one of my lifesavers during this project.


Fig. 1.4 Make a TIMER & COUNTDOWN in 5 Mins | Unity Tutorial for Beginners

Fig. 1.5 Outcome of Timer in Unity

Respawn Checkpoints
Again following a tutorial from this guy, I made respawn checkpoints. Initially, this game component worked fine but after I added more code the mechanic stopped working. In the end, I decided that when the player dies they will respawn at the start. This keeps them more on their toes and prioritizes carefulness and patience in the gameplay. 


Fig. 1.6 Unity RESPAWN CHECKPOINTS tutorial in 120 Seconds

Stairs - One Way Platform
My game has stairs because it would make sense to lead the player to a higher level in a school. Initially, I wanted to do ladders because it seemed easier but then it wouldn't make sense. I followed the tutorial below which is to make a one-way platform, so when you jump on the stairs you can go down.

Fig. 1.7 How to Make Stairs - One-Way Platforms in Unity

After watching the tutorial the first thing I did was create a one-way platform just like the tutorial. I'm really surprised it work almost immediately so that's great. Then I moved on to making the stairs.

Fig. 1.8 Outcome of One-Way Platform

For the stairs, I planned to use the tilesets I made but the colliders were getting in the way. I found another method which was to just use an image of the stairs I made and then add the necessary colliders. 


Fig. 1.9 Stairs Ground


Unused Game Components & Assets
There are quite a large number of unused assets that I developed mechanics for but could not ultimately make work in the end. 

Crushing Obstacle
 I wanted to make a projectile which makes players time their moves but it did not work out. The initial idea was to have broken fire sprinklers that go on and off, and then when hit by water the player takes damage.

Another idea was inspired by this video of a platform falling down a similar mechanism where players have to time their movements. I only managed to make the AC fall but it does not deal damage to the player and ends up affecting the enemies instead.


Fig. 2.1 How to Make a Crushing Obstacle in Unity 2D for Beginners


Fig. 2.2 Outcome of Crushing Obstacle


I also had an idea to add platforms that fall after standing on them for a while few seconds. The idea is to have those large AC units act as the platforms so standing on them for long will cause them to fall. I did not have the time to implement this however, it would have been so cool in the game though.

Vision Cone
I created the vision cone for the enemy and attached it as a child of the enemy. The vision cone functions well, however, the moment the character walks into it, the camera detaches from the enemy and just chases after the player. I decided not to include it in the end as it may also make the gameplay too hard.


Fig. 2.3 Enemy Vision Cone

Scenes
Scenes including the start, game over, and victory scenes have been created for easy navigation throughout the game.

Main Menu
- Title Screen
- Start Game Button


Fig. 3.1 Main Menu Scene

I created several variations for my main menu scene before arriving at the one above. At first, it looked too messy, but my friend suggested the high contrast works, especially if that's the vibe of my game.


Fig. 3.2 Main Menu Design Variations

Victory Screen 
- Level Complete
- Menu Button


Fig. 3.3 Victory Screen

Game Over Screen
- Restart Button
- Menu Button


Fig. 3.4 Game Over Screen

Pause Menu 
- Resume Button
- Menu Button 
- Quit Game Button


Fig. 3.5 Pause Menu

Cutscene
Cutscene videos were also made and edited by me to add between levels and to flesh out the story more. However, I could not make the video play and when inserting the cut scene it would stop the levels from becoming playable. Ultimately I decided to take it out to make my game functional.

Fig. 3.6 Unused Cutscene Video

Creating Menu Scenes
For the home menu and pause menu, I followed the tutorial by this guy. His videos are simple to understand so it was relatively easy to implement these. There are some errors that show up but I managed to fix them with a little bit of trial and error.


Fig. 3.7 How to Create a PAUSE MENU in Unity! | UI Design Tutorial


Fig. 3.8 5-Minute MAIN MENU Unity Tutorial

Levels
I’ve completed three levels for my game, each with increasing difficulty. I decided to take away the boss fight of the game as there was not enough time to code the mechanics of the boss. Instead, the boss chases the player at the last level of the game.

Level 1
Navigate from the school grounds to enter the school doors. Introduce players to the game's basic mechanics in a low-pressure environment, allowing them to practice and get familiar with player controls such as moving, hiding, attacking, jumping, and collecting items.


Fig. 4.1 Level 1 Design


Fig. 4.2 Level 1 Design in Unity


Fig. 4.3 Level 1 Map in Unity

Level 2
Once you enter the school, race to the classroom while avoiding a series of obstacles. Navigate through hallways filled with obstacles and hazards, avoid hall monitors, and reach the classroom in time. Don’t get caught by hall monitors, you will have to hide or knock them out.


Fig. 4.4 Hallway Design in Illustrator


Fig. 4.5 Level 2 Design in Unity


Fig. 4.6 Level 2 Map in Unity

Level 3
Outrun Mr. Grumpy and knock out any hall monitors that get in your way in the hallway. The player must reach the classroom at the end of the hallway to win the game. For this level, I made a long hallway filled with hall monitor patrols. 


Fig. 4.7 Level 3 Design in Unity


Fig. 4.8 Level 3 Map in Unity

Level Design
For the level design, I decided to use tilemaps instead of just putting an image there for the ground. I followed this tutorial which is to make a tile palette and from there, you can draw your ground however you want. This meant I had to design tiles (crying) - most of the tiles I did not end up using unfortunately.


Fig. 4.9 Tilemaps | Unity 2D Platformer Tutorial


Fig. 4.10 Tile Palette in Unity

Final Project: Playable Game

Netlify Link
Google Drive Link
Google Drive includes Project Folder, WebGL Build, and updated Game Design Document
https://drive.google.com/drive/folders/1YIg2sx2Dy5YD_lhqr5K6eI4wGkWN7DKw?usp=sharing

Final Game Design Document


Fig. 5.1 Final Game Design Document, Week 15 (12/01/2025)

Fig. 5.2 Final Project: Playable Game - Presentation Video, Week 15 (12/01/2025)

Fig. 5.3 Final Project: Playable Game - Walkthrough Video, Week 15 (12/01/2025)



FEEDBACK

WEEK 13
Whatever you do for the game, such as platforms, should make sense for your game. You can use big trash bins to run on as platforms, if there's a puddle inside the school it should make sense as well.

WEEK 15
Incase cannot do 3 levels, do 2. If 2 also cannot, do 1 but still need boss fight



REFLECTION

This module is genuinely the most time-consuming module in the entire degree. I never quit halfway through a project except for this one time. It really reached new lows in my life I never thought I'd get to holy shit and it made me physically ill multiple times too. The concept of the module in its entirety sounds really fun, as well as creating a game from scratch and all that. However, to put it quite frankly, there is not enough time in the whole semester to create a game and learn how to. 

I think I learned quite a bit from this module compared to the others this semester, and would be very useful in the future especially when I want to create my own game. I got to learn new skills and put them to use. I'm not proud of my final outcome but I would like to redeem myself in the future by creating another game, this round with all the time I need to make it a good one.

Comments