Final_Project_in_3D_Game

This repo is mainly built for the final project of CPSC6820-3D-Game-programming. In our project we use Unity as our development game engine. Website for this repo: https://mwfj.github.io/Final_Project_in_3D_Game/


Project maintained by mwfj Hosted on GitHub Pages — Theme by mattgraham

Update

(03/31/2020) Decide our game topic and upload the final project proposal

(04/07/2020) Division of labor for game development

(04/09/2020) Post our first playable game

In 04/09 updates we add a random maze and a boss room. But currently no boss in it. We will put adds in the maze and boss in the room in next updates.

map_overview At this patch, the way connected to the boss room will open after click on all three ‘switches’. There isn’t a finish condition yet, because no boss there.

(04/14/2020) Add Camera Collision detection, now camera won’t across the Wall

image-20200424040755928

(04/23/2020) Add Runtime Navmesh Baker and Agent

navmesh_maze_dynamically_generation

Repo_of_Runtime_NavMesh

Configure_navmash_agent Configure_navmesh_bake

Player_tag

trash_configuration

2020-4-23_update_prefab 2020-4-23_update_scripts

(04/25/2020) Add mobs/trashed animation

move_to_animation_folder

04_25-update_Trash_Prefab_Setting

(04/26/2020) Add Boss Creation and animation; Add trash/boss Health bar and Attack system

Boss Creation

The boss creation is little complicated, when the main character turn all the switch on(3 in this game), boss room will open, and the location of door will automatically create a box collider to detect whether the main character enter the boss room or not. When the main character first enter the boss room, it will trigger this collider and boss will generate in the boss room.

health_bar

Health bar

Add world space canvas to the enemy prefab, and change the fill account by the health point of the enemy.

If health equals 0, play the dying animation and destroy the object after the animation.

And the boss health bar will use the camera space, and is located at the top left of the screen. It will be activated when the boss is generated.

If we just set the canvas as a sub object of the enemy, the health bar will rotate with the enemy. We want it always face to our camera, so we add a script to dynamically detect the rotation and make sure the health bar is perfectly displayed.

Attack

Detection

We use collision detection on the weapon model to check the attack. If the weapon hits the enemy, it will have an collision event.

Add collision trigger on the weapon. Using onTriggerStay to check the attack the collision for the enemy with a delay have the best performance. Because sometimes enter and leave will not occur at the same time as the animation event change the attacking stats. So trigger the attack count and then delay the next attack until current animation is finish will be the best.

Hit Box

We should add additional box collider to check the attack. Because of the NaveMesh, some times the Weapon may not really attack on the enemy model, so a little bigger hit box should be added. This will improve the use experience.

health_bar

(04/27/2020) Add background music; Add main character/boss sound effect

Background music

There has two background sound in the game, when the main character in the maze, the game will play relatively soothing background music.

However, when the main character entered the boss room, the concert became relatively intense in order to give the player a sense of tension.

Moreover, when boss room opened, it will have sound effect to describe it.

When the main character kill boss, the background music will change to victory music.

Character/Boss sound effect

Because the time limit, I only added sound effects for the main character and boss. When player run, attack and jump, it will have sound effect. When boss roar(introduce animation) and attack, it will have sound effect. We will add sound effect for all character in the future.

(10/07/2021) Move the unitypackage to the Google Drive

Link is post on the Readme of the main page.