Games Development - Final Project


Games Development - Final Project

Our goal for this final project is to finalize our game, which we have roughly prototyped. By the end, the game should be playable, functional, and interactive. I did most of the coding by following YouTube tutorials, especially from a YouTuber named Brackeys, and made corrections with the help of the lecturer and ChatGPT. I started with the basic elements, such as player controls, landscape setup, collectibles, health and mana systems, and enemies. It took a lot of time to code these, as all these elements are interconnected, making it easy for bugs to occur. All the assets and visual effect sprite sheets were drawn by myself, so it took me a relatively longer time. Throughout the development process, I also realized that some game mechanics were unnecessary and could cause confusion. Throughout the process, I also encountered some bugs that I spent a lot of time resolving. As a result, I made adjustments to the gameplay. The document will be attached at the end of this page.


Player control


Environment


Prefab


UI


After setting up the basic requirements to make the gameplay functional, I started refining the details to make the player controls more fluid and enhance the user experience. Adjustments I made include fine-tuning the exit time of the animations so that when the player clicks on the key, there is no noticeable delay, which could otherwise impact the user experience. Furthermore, I enhanced the visual effects by adding animations for defeating monsters, collecting items, and hitting targets.


Some visual effects


In addition, I created the main menu, pause menu, and game over UI to help the player navigate. I also designed a title scene before the level starts, added dialogue with NPCs, and implemented an inner monologue UI to help the player understand the flow of the game and the story behind it.


Intro


Pause Game


Game Over


Dialogue


Last but not least, I implemented background music for each scene, as well as sound effects, to further enhance the user experience. The background music I have chosen is ambient, calm, and serene instrumental music, creating a sense of mystery. Additionally, I added sound effects primarily for the player to enhance the user experience, as well as for enemy defeats and item collection effects.


BGM and SFX


Below is a list of scripts that I have implemented in my game:


Player

  • PlayerController (Move, Jump, Double jump, Ground check, Short-range attack, Respawn point)
  • PlayerHealth (Max health, Health bar)
  • KnockBack (Knock back force X & Y)
  • ManaSystem (Max mana, Mana bar)
  • Bullet (Mana ball settings)
  • ManaBall (Fire point of long-range attack)
Enemy
  • Slime (Move, Detection range, Attack, Health)
  • Bat (Move, Detection range, Attack, Health)
  • Ghost (Move, Detection range, Attack, Health)
  • BossFight (Move, Detection range, Attack, Health, Projectile, Attack cooldown)
  • Projectile (Projectile from boss)
UI
  • PauseMenu (Pause the game, Resume, Menu, Quit)
  • GameOver (Restart, Menu, Quit)
  • TextTrigger (Dialogue, Text popup)
  • SceneTitleManager (Scene title)
  • ManaBar (Player mana system)
  • HealthBar (Player health system)
  • Witch (Move close the witch to trigger dialogue)
Collectible
  • HealthCollectibles (Heart that increase health)
  • KeyControl (Key to unlock portal)
  • ManaPickup (Mana ball that increase mana)
  • PlayerProgress (Crystal collected, Activate summoner)
Core
  • SceneController (Switch to the next scene)
  • BackgroundScroller (Background scrolling in main menu)
  • CameraFollow (Camera follows the player)
  • DeathBoundary (Boundary of the map)
  • FinishPoint (Finish point for each map)
  • FloatingHealthBar (Floating health bar on enemy)
  • ParallaxBackground (Moving background)
  • PortalTrigger (Trigger that open the portal)
  • MonsterSpawner (Monster spawn during boss fight)


Now, I will briefly introduce what happens in each level and scene. For more details, please refer to my game documentation!



Game Documentation


Main Menu

  • When the player first enters the game
  • Option to either Play or Quit the game

Main Menu


Chapter 1: Missing Memories
  • Goal: Defeat the monster, collect the key to activate the portal, and talk to the witch
  • Attack: Short-range attack
  • Monster: Slime
  • Collectible: Heart, Key, Mana ball
  • Interactable: Portal, Witch, Inner monologue


Chapter 1: Missing Memories


Chapter 2: Lost Stars

  • Goal: Defeat the monster, allocate the vases to reach to the next level
  • Attack: Short-range and long-range attack
  • Monster: Slime, Bat
  • Collectible: Heart, Mana ball
  • Interactable: Inner monologue

Chapter 2: Lost Stars


Chapter 3: Abyss of Darkness
  • Goal: Defeat the monster, collect 3 crystals to summon the final boss
  • Attack: Short-range and long-range attack
  • Monster: Slime, Bat, Ghost
  • Collectible: Heart, Crystal, Mana ball
  • Interactable: Summoner, Inner monologue

Chapter 3: Abyss of Darkness


Boss Fight: The Darkness
  • Goal: Defeat the Darkness
  • Attack: Short-range and long-range attack
  • Monster: Slime, Bat,   The Darkness
  • Collectible: Heart, Mana ball


Boss Fight: The Darkness


The End

  • Goal: Find and chat with Astra

The End


Last but not least, I am deploying my game to Netlify to make it accessible via a link. However, before deploying it, I encountered many challenges while converting it into a WebGL file. Some of my elements are not responsive, and one of my scenes is not loading. Fortunately, I didn’t leave this until the last minute before submission, so I have ample time to fix it. Below is the link to play my game, and I hope you'll like it :D


Link to my game - Infinity: https://infinitybyszeching.netlify.app/


Infinity


Walkthrough


Video Presentation


Reflection

To be honest, I dedicated the most effort to this module compared to all the others I have taken this semester. As a game enthusiast, I have always dreamed of creating an aesthetic game. This was the hardest module I’ve ever taken, but it also gave me the greatest satisfaction. The process of creating a game from scratch, without any prior knowledge of Unity or C#—involving ideation, creative thinking, development, and publishing the game within three months, was not an easy task. I felt confused, frustrated, zoned out, relieved, glad, and ultimately satisfied. Although the time given was limited, I did my best. However, if I had more time, I would have liked to make it even better. For example, I would explore different gameplay elements such as various weapons, more mind-skill puzzles, more challenging enemy, an interactive environment, enhanced animations, and more. However, the progress I have made so far is already a significant achievement. The final outcome is a big milestone for me and has given me more confidence for my future journey with Unity. It feels like dealing with a child—annoying and challenging at times yet sometimes bringing me happiness.






Comments

Popular Posts