Games Development Task 4: Final Project & E-portfolio

24/6/2024 - 9/7/2024
Edwin Choo Quan Rong / 0348305 / Bachelor of Design (Hons) In Creative Media
DST 61104 / Games Development
Task 4


Task 4: Final Project & E-portfolio


Scenes

1) Main Menu
  • Play Button
  • Instructions Button
  • Quit Button


Fig 1.0 - Main Menu


Fig 1.1 - Instructions Tab

Players can navigate through the menus via the click of a button, using OnClick function to load scene of Level 1 and GameObject SetActive bool to transition between Instructions Menu and Main Menu.
Initially, the game menu and main levels begins with a dark screen fading out to present it in a smoother effect.



Fig 1.2 - Main Menu Hierarchy


2) Level 1
  • Tutorials (Basic Movement, Dash Ability, Attack, Sword Throw)
  • Enemies (normal)
  • Platforms
  • Next Level Door

Level 1 introduces the players to the basics of the game. It starts off with a storyline chapter, followed with multiple game instructions to teach the player about the character controls. Initially, I wanted to showcase all the tutorials at the start, however that will be overwhelming for some people, stemming from my experience with games that its usually easier to learn about the tutorial  and apply it immediately. Thus, I designed the tutorials so that players can apply their learned knowledge in a practical environment.

After players have learned the basics, they will progress further into the main area of Level 1. Using all the skills learned from the tutorials will help the player navigate through the level with ease. In case the player dies, they can respawn at the start of the level or the checkpoints throughout the level.


Fig 1.3 - Level 1 Layout


Fig 1.4 - In Game HUD UI


Fig 1.5 - Respawn Screen



Fig 1.6 - Level 1 Hierarchy


3) Level 2
  • Tutorials (Wall Bounce Ability, Parry Ability)
  • Enemies (normal + elite)
  • Platforms
  • Next Level Door

Level 2 increases the difficulty by introducing more complex platformer puzzle layouts, more enemies, and new mechanics for players to learn. Same like the previous level, the user continues off with more story progression, before shortly arriving at a tutorial which introduces the new mechanic of Wall Bounce. This ability helps players to progress to the next area, which Wall Bounce is further used as a key movement ability to traverse the main area ahead.

Afterwards, players will arrive at the tutorial for the Parry mechanic, where a well-timed parry during an enemy's attack window is effective in stunning the enemy, dealing damage, as well as negating all damage as the parry cancels their attack. The enemy this is tested on are elite enemies, symbolized by being bigger and having more stats in health and damage. This is a preliminary event to hint towards the player about one part of the puzzle to deal with tougher enemies.



Fig 1.7 - Level 2 Layout


Fig 1.8 - Normal + Elite Enemies


Fig 1.9 - Level 2 Hierarchy


4) Level 3
  • Enemies (Boss fight)
  • End Menu Door
Level 3 is the boss fight stage of the game. As usual, the player begins with continuation of the story, combined with with a long corridor ahead symbolizing an upcoming boss fight. Once the player enters the arena, they have to beat the boss to end the level. The boss is highly buffed in stats, having tremendous health and damage, as well as a faster attack speed and attack range. This provides a challenge for the player as the usual combat patterns players have been using beforehand won't be effective against this boss.

Players will eventually find close range combat being ineffective against the boss. However, remember the parry tutorial from Level 2? The parry mechanic stuns the enemy for a set duration. This opens up the opportunity for players to combine the parry mechanics with weaving in a few normal attacks, or use the parry mechanic and ranged sword throw attack together in a loop. This creates an effective stun-lock on the boss as long as the players parry at the boss' attack window.

After defeating the boss, players proceed to the end of the level where the hostages are located, saving them from the imprisonment of the rogue knight Malakar, as Sir Alaric leads them to their freedom.



Fig 1.10 - Level 3 Layout


Fig 1.11 - Boss fight stage


Fig 1.12 - Level 3 Hierarchy

5) End Screen Menu
  • End Menu Screen
  • Replay Button
  • Quit Button

Fig 1.13 - End Screen Menu

Sounds

Sounds obtained were from royalty free sound websites: Pixabay and Mixkit


Fig 2.0 - AudioManager

Background Music
The BGM for all 3 levels uses a medieval battle tension music from Pixabay.

Sound Effects
Sound effects were applied to the sword for a sword swinging sound, with another sound used for taking damage which sounds like sword clashing onto the knight's armor.


Final Submission for Games Development Task 4
Fig 3.0 - WebGL Build with Netlify

Play the game here:



Fig 3.1 - Revised & Final Game Design Document

After dabbling in the Unity in the early weeks of game development, I found out that my initial project idea was too vast for me to complete in a timely manner. Thus, I had to scale down my project idea to one that's more feasible to produce within the given timeframe. Attached above is a revision of my previous project proposal to fit my current project: revising its storyline, themes, gameplay mechanics, and etc.



Fig 3.2 - Video Presentation



Fig 3.3 - Video Walkthrough



Reflection

Working on this project has been a unique and insightful experience, offering a glimpse into the behind-the-scenes challenges game developers face during the creation process. Despite the many obstacles encountered while developing a 2D platformer for the first time, successfully implementing gameplay mechanics was incredibly rewarding.

As a first-time game developer, learning the basics of Unity was both difficult and time-consuming. However, one valuable skill I acquired was the ability to search for solutions online effectively. Many game development challenges have already been addressed in forums or small websites, making it easier to find the help needed. Due to the limited timeframe, I had to revise my original project idea, shifting to something more feasible and realistic. In hindsight, my initial concept was overly ambitious, as even seemingly simple games require significant behind-the-scenes work to ensure a smooth player experience.

The scripting aspect of Unity presented the most significant challenges. Initially, I placed most of my code in the Player Controller script, which led to issues with code conflicts as I added new features. This forced me to re-edit previous code and create unconventional variable names to avoid clashes. Fortunately, I discovered a solution online that greatly improved my workflow: Object-Oriented Programming (OOP). OOP organizes software design around data or objects rather than functions or logic, offering a modular and structured approach to game development. When applied in Unity, it enhances organization, reusability, and maintainability, allowing developers to implement complex mechanics more efficiently. Using OOP transformed my development process, enabling me to focus on adding new features rather than constantly fixing bugs. I wish I had learned this technique earlier, and I highly recommend all game developers, especially beginners, to incorporate OOP into their Unity projects. You can learn more about OOP in Unity here.

In conclusion, this project has been an invaluable learning experience that not only introduced me to the complexities of game development but also equipped me with essential skills and techniques, such as Object-Oriented Programming, that will greatly benefit my future game development endeavors. Overcoming the challenges of working with Unity and adapting to a more realistic project scope has taught me the importance of flexibility and perseverance in game design, this knowledge will aid with careful preparations for a smoother developing experience in the future. As I move forward, I am excited to apply these lessons to create more refined and engaging games, building on the foundation laid during this project.

Comments

Popular posts from this blog

Collaborative Design Practice - Task 1: Empathy Map & Problem Statement

App Design II - Task 2: Interaction Design Planning & Prototyping