Game Development - Task 4 - Final Project - Playable Game

 8/06/2025 - 6/07/2025 (Week8 - Week11)

Teu Yu Tian / 0371923
Application Design 2 | Bachelors of Design (Honour) in Creative Media | Taylor's University
Task 4: Final Project - Playable Game





1. INSTRUCTIONS:



Task 3

REQUIREMENT:
Students will integrate their art asset to their game development and produce a fully functional and playable game.

Submission Requirement
  1. Unity Project files and Folders.
  2. Video Capture and Presentation of the gameplay walkthrough
  3. Game WebGL Build
  4. Blog post for your reflective studies

Progression

We developed a simple prototype in Task 3 for Level 2. For the final project, our goal was to complete two more levels and add UI and audio features to bring the game to life.

We split the workload as follows:



My Task:
  • Adding audio effects.
  • Setting up the collectibles mechanic.
  • Adding the Interact animator for the player (used in Level 3).
  • Refining the defend mechanic.
  • Helping compile all files from teammates into a single working build.
  • Visualise storyline (if we had time)

1. Adding audio sources

I started by downloading audio files previously compiled by me and Melvin in Task 2.

Some issues I faced:

  • Silent parts in the audio.

  • Some files were too soft to hear.

  • Some were too fast.

To fix these, I used the MP3 Cutter website to trim, adjust volume, and modify playback speed. This was quick and effective for small edits.


After adjustments, I imported the audio files into Unity → Assets → Audio → LukyAudio. Lately, Melvin helped fine‑tune volumes and added extra sound effects for pigeon actions.


Two Ways I Added Audio in Unity:
(a) Add PlayAudioClip Script to Animator
  • Used this for player and enemy sounds.
  • Modified the script to include a volume slider and loop certain sounds (e.g., player defend sound).

(b) Write Script to Play Audio When Events Trigger
  • Used for obstacle, enemy, and player sounds.
  • This required modifying existing scripts.
  • Melvin added inspector slots so I could attach the correct audio clip directly.
Challenge: Sometimes audio didn’t play because the obstacle was destroyed too quickly, or the event never triggered. I had to debug and tweak scripts for some days to fix all audio triggers.




2. Refining Player Animator & Adding Interact Animator

Fix respawn and death

While working on Task 3’s prototype, I noticed:

  • Player did not respawn correctly.

  • When health reached zero, the death animation triggered late and looped.

Using Debug.Log, I checked the logic and found the original template’s respawn mechanic wasn’t called properly after we customized scripts. I moved respawn and death logic into the PlayerHealth script.

Add interact animator

After getting Melvin’s updated file with player health and enemy scripts (which included a “J” defend key), I imported the Interact animation spritesheet and animator. I added a parameter "Interact" and modified scripts to trigger it when the button was pressed.




3. Refine collectibles

From Melvin’s setup:

  • Player could collect clovers to increase the timer by 30 seconds.

I modified this to match our original planning:

  • Player first interacts with a “bling” object.

  • The bling randomly spawns 0–3 clovers.

  • Added a pulse animation in the script to make the bling shine and feel more engaging.



The stage 1 task is done, we had second round task delegation on week 14, for my part, i had to do the storyline illustration and refine defend mechanic and compile all teammates' file in one. 

4. Defend mechanic

Originally, the defend function didn’t work. I updated it so:
  • Player can block all projectiles (toaster, aircon, flying books, falling boxes).
  • Player cannot block floor hazards (poop, socks).
I worked with Melvin to:
  • Add knockback effects to flying books when blocked.
  • Implement paper box bounce physics (took some trial and error because of collider disable timing and fade‑out effects).

5. Storyline UI Panel & Motion Comic Setup

For storytelling, we wanted an engaging experience, so we go for a comic illustration approach with simple animation:

  • I created a rough storyboard based on script written by Yanny. 
Start Story: 
Luky wakes to a jolting alert on his phone:
“World’s Unluckiest Day detected! Luck = 0. Find a clover in 10 seconds or bye!”
A glowing astrolabe whirs into view and warns:
“Your bad luck curse is peaking. Clovers are your only lifeline—collect them fast! Every minute your luck drains by one, and at zero… well, you know.”

With the countdown, a panicked Luky jams his shoes onto the wrong feet and sprints out the door in search of his very first clover before fate clocks out......



End of Game:


After scrambling for clovers, dodging a giant pigeon, and shutting down a furious mega aircond, often with only a sliver of luck left—Luky survived!

“Yes! I made it through the whole day!” he gasps, clutching his last clover. WHACK!
A flying book suddenly smacks him squarely on the head, popping the final clover into the air. Luky hits the floor, dazed, but musters a woozy thumbs‑up:

“Guess… I’m still… kinda lucky…” @~@
(Cue one remaining clover fluttering down beside him as the screen fades.)


  • Illustration was executed in Adobe Illustrator.
  • Imported illustration into Unity and set up UI panels that fade in/out.
  • Linked these to “Start” and “End” events so they display at the right moments without breaking gameplay flow.


Start Story


End story



6. Unity BGM Setup

To manage background music and UI sounds, I used an AudioManager script:

  • Scene‑specific BGMs (e.g., Home screen, Level gameplay, Story scenes).

  • Button click sounds for all UI elements.

  • Used DontDestroyOnLoad to keep music playing across scenes without restarting.

After all, I compile file from Yanny, Melvin and my own file, fix bugs and pass the file to Melvin for final refinement. 

Final Submission



Demo Video


Google Drive of Final Unity File




3. FEEDBACK

Week 14 
  • The game is cute, need to see how the game set up, transition from one level to another level, UI panel and so on. The mechanics were okay.
  • The obstacles are not obvious, people cannot see the 
  • How does player know how to defeat the boss? you might need to add some instruction for them. 

Week 15
  • The art style is pretty, and the storyline was good and got the immersive feelings.
  • It contains the uniqueness that differentiate your game with other game in the market. 
3. REFLECTION

Experience

This was my first time using Unity, and we had to build a complete game from scratch. The process was both challenging and exciting. With the experience of building prototype in Task 3, I am more familiar with Unity. In Task 4, I handled audio, collectibles, animations, and UI storytelling. Debugging animation transitions and ensuring sounds triggered at the right time pushed me to explore Unity’s event handling and Animator systems more deeply. This project gave me a great opportunity to learn Unity, which I had been wanting to do for some time. Even though I only created a simple 2D platformer, it already involved so many different tasks, making me appreciate how much more complex professional industry projects must be.

Observation

Even small gameplay elements, like well-timed sound effects or responsive animations, have a huge impact on player immersion. A missing audio, unclear visual cue or delayed animation can make actions feel unresponsive. Unity’s Animator transitions can easily break the player movement if not set up properly. I also notice the importance of game testing as many issues only appeared during playthroughs, developers can't find the problem. Team collaboration was also important. Building on each other’s prior work saved time and reduced duplication, especially when handling scripts and preparing assets. While file compilation often caused unexpected errors, I became more familiar with the process in the second round and learned the importance of patience and careful checking.

Findings

Working on Unity taught me the importance of understanding how different systems, like the Animator, physics, script and audio interact with each other. Collaborating with teammates taught me how to adapt to different working styles while staying aligned with the project vision. The final results even better than what I expected, it is an outcome of 3 person's ideas, strength and dedication to deliver an ideal project in our mind. Overall, the experience strengthened my problem-solving skills and boosted my confidence in managing complex, multi-component game features.


评论

热门博文