Game Development // Final Game
13/11-16/12/23 Week 12 - Week 16
Chan Siew Ni #0352518
Bachelor of Design in Creative Media
Bachelor of Design in Creative Media
Game Development // Task 3 // Final Game Design
FINAL PROJECT
MOOD BOARD
Figure 1: Character design references
Figure 1.1: Game Items References
Figure 1.2: Environment references
PROCESS
Continuous on the previous progression, for this task, we have to replace
the "temporary" game assets with our final assets.
Figure 2: Progression of making the start screen
Figure 2.1: Progression of making the life bar
Figure 2.2: Progression of making the door (Portal)
Figure 2.3: Progression of making the level
Figure 2.4: Progression of making the end screen
Animations
Ava Idle
Ava Running
Ava Jumping
Ava Die
Mutant Human Walking
Final Boss Idle
Door Open
Problems Encounter:
1. Player Die Animation not playing
I used the method of SetTrigger in the animation and it ended up didn't play
the animation.
Solutions:
Instead of using the set trigger, Mr Razif said that I could directly use
animation play, and because I already added the restart level void at the end
of the animation, after the animation ended, the level would be
restarted.
2. Shooting bullet and when triggered something will destroy the bullet
but gets Error(The object of type 'GameObject' has been destroyed but you are still
trying to access it.) and the bullet wouldn’t re-spawn.
Original Code: bullet = Instantiate(bullet, bulletSpawn.position,
bulletSpawn.rotation);
The problem with this code: Because the "bullet" definition has been used,
if I destroy the gameObject, It can't spawn. I shall use a different name to
definite the bullet.
3. After restarting the level or going from one scene to another scene, my
character movement became very slow, and couldn't jump.
Solutions:
Movement: By adding the Time.timescale = 1f; could solve this problem. This answer is from Link.
The reason: For some reason, the game time is set to 0, but you can still move the camera without moving the FPS person. So the solution to this problem is to attach a script with this code to any of your active game objects.
Jump: By adding the Physics2D.gravity = new Vector3(0, -9.81f, 0); could solve this problem. The answer is from Link
Solved it by resetting the gravity before loading the scene
Resources:
1. Laboratory Tileset: Link
2. Level 1 Background Music: Link
3. Level 2 Background Music: Link
4.
FINAL SUBMISSION
Video Walkthrough Game
Link
Game Design Document
<iframe
src="https://drive.google.com/file/d/15F6wrVkLoraDN0lVtwxpbNljEmXqVQBW/preview"
width="640" height="480" allow="autoplay"></iframe>
Unity WebGL
Link
REFLECTIONS
This project is really very exhausting and tiring. But when seeing the game is playable. I felt so accomplished. I would say luckily that the tileset and background can be taken from the internet (Thanks to the creator) because this helps us to reduce some workload. We have to design our characters, items, animations, and level layouts. I would say that it is better to do the coding and designing things at the same time so that if which section progress is slower, at least it would not affect much time spent on another.
Although the overall visual was not that nice enough, I felt so proud of myself for doing this because before I did this project, I had been told that the C# script is a hard coding language, so I felt stressed because I didn't learn much coding. After the lectures and tutorials, It was actually easier than I thought. I think at least I mostly understand all the code that I'm typing.
The toughest part for me was that when I was about to complete the game, I found an issue when restarting the level, my player could not move and jump, this is a very serious problem as my player couldn't move whenever restarting or entering to a new level. I have been frustrated and stressed for a few days as I couldn't find a solution for it. Luckily at the final moment, I finally successfully found the solution. (Thanks to the people who gave answers on the Internet)
Lastly, I also wanted to thank Mr Razif, our module lecturer. He prepares a lot of exercises and tutorials for us so that we can do it by ourselves and this helps us to understand better the c# language. Other than that, whenever I encounter problems, other than searching on the internet, I will also ask him, He will be replied and record a video to teach me how to fix it.





















Comments
Post a Comment