Game Development // Final Game

 
13/11-16/12/23 Week 12 - Week 16
Chan Siew Ni #0352518
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.

Solutions: 

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

The Reason: It was due to the gravity modifier, physics was not reset before loading the scene so its new value from the first game was kept and multiplied at each reload.

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

Popular Posts