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.
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.
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.
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
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
Post a Comment