Game Development - Final Project

December 23, 2024

18.12.2024 - 1.1.2024 / Week 13 - Week 15
Zhao GuanMei / 0363166
Game Development / Bachelor of Design (Hons) in Creative Media
Final Project

INDEX

Task 1: Game Design Document
Task 2: Art Asset development 
Task 3: Game Prototype

Final Project

Reflection


INSTRUCTIONS




FINAL PROJECT

Recap

n this project, we will complete our 2D platformer game using Unity, incorporating various game mechanics such as character movement, animations, and collision detection. The main goal is to create an engaging experience for the player by designing challenging levels that involve platform navigation, monster avoidance, and item collection. Through this project, we will focus on enhancing gameplay dynamics and ensuring a smooth, interactive experience for users.

Submission:

Unity Project Folder (zip)
Unity WebGL Build (zip)
Upload to Netlify or any online hosting service and share the link to the playable game.
Video presentation and Walkthrough of the game
Updated Game Design Document. 

Final Map 




Level 1

a. Platform
At the beginning, I imported the platforms and background, using a Polygon Collider to directly detect their shapes and form the platforms. For parts that were not detected, I used a transparent Box Collider to complete the setup.



Then, I imported the character's running and jumping animations, sliced the sprites, and created the animations. I spent a significant amount of time adjusting the Animator's logic. The sequence is as follows: the default state is idle, it transitions to run when the speed is greater than 0, and to jump when the character is not on the ground (isOnGround = false).



Additionally, I set up features like jumping, adding the necessary action controls for the character to ensure smooth gameplay and an engaging experience.



Out Come:





Next, I imported the star icon and used the coin collection functionality we learned in class to implement the collection and animation of the stars. Additionally, I set up a real-time counter in the top left corner to display the number of stars collected.


I imported the "monster" character and created a right-to-left movement animation. It is set as a trigger to decrease the player's lives (playerLives) upon collision. The player starts with three lives, and after three collisions, the game ends and transitions to the "restart game" screen. Additionally, I set up a heart icon in the top left corner, linked to the player-monster collision, which disappears upon impact. I also created a fade-out animation for the heart icon.








I set the "door" object as a trigger, so when the player collects all the stars and interacts with the door, it directly transitions to the next level without an intermediate animation. This makes the level transition more straightforward and seamless.

Since the main challenge of the level lies in navigating the terrain difficulty and avoiding monsters, I placed a collider at the bottom of the map. If the player falls, the game will directly transition to the "restart game" page.

Fianl Game Overview:


Level 2


Compare with level 1, level 2 increases in difficulty with monsters moving faster and appearing more densely. The shape of the map is also more complex, particularly in the forest section, where the platforms are very narrow, adding more challenge for the player in terms of jumping and avoiding.


At the end of level 2, the door will link to the "congratulations" page, indicating that the player has successfully completed the game. I used a video file and converted it into an audio source to play the background music in the game.


Final Project Submission


Final Video Walkthrough

Netlify Link :https://worldinmemory.netlify.app/

 



REFLECTION

Experience

In this project, I worked extensively with Unity to develop a 2D platformer game, integrating key game mechanics such as character movement, animations, collision detection, and audio. This process taught me how to implement complex systems, such as using video files converted into audio sources for background music. I also had the opportunity to design levels, create interactive elements, and optimize the gameplay to ensure an enjoyable experience for the player.

However, this project was a significant challenge for me. I encountered many seemingly minor issues that ended up taking a lot of time to resolve. For example, bugs related to animations and interactions were often more time-consuming than expected, requiring me to invest extra effort in trial and error. Throughout the process, my teacher, Mr. Razif, provided invaluable knowledge and guidance. His meticulous teaching of every part of the project helped me reduce doubts when reviewing and significantly increased my efficiency. After this course, I will continue to experiment with Unity to create more and become more flexible in using and writing C#.

Observation

One important observation I made during this project is that even the smallest details can become very complex. Tasks that initially seemed simple, such as creating animations or setting up character movements, often led to unexpected challenges. I also noticed that, as I continued working, my familiarity with Unity’s tools and workflow gradually increased, making me more efficient at solving problems, even though I still spent a significant amount of time dealing with some tricky bugs.

I also observed that when I encounter problems, I tend to get stuck and try to solve them on my own for long periods. Sometimes I am reluctant to seek help, choosing to solve issues independently, even though this approach can lead to slow progress and extended work hours.

Findings

One key finding from this project is that persistence pays off. Although the problems I faced were not always simple, I ultimately solved them through a lot of time and effort. This reinforced the importance of attention to detail and patience in game development.

Another finding is that while working independently is essential, there are times when seeking help can save time and prevent unnecessary frustration. I realized that avoiding help can result in longer working hours, and seeking assistance earlier could have made my work more efficient. This is something I need to improve in future projects.



End


Comments

Popular Posts