Ee Xuan En, Arvin
Brokkr Steinn
Game Engine: Unity 5
Platform: PC
Scripting Language: C#
Brokkr Steinn is my 3rd year Final Year Project which it spans an academic year. My main role in the project is a programmer.
Also in this project is Pang Xue Zheng (Producer, Designer), Phang Jia Rong (Lead Programmer), Peh Shi Hao (Designer, Programmer), Chloe Ng Hui (Environmental Artist), Goh Wen Si (UI Artist) and Tan Ze Li (Character Artist).
Brokkr Steinn is a hack and slash, with elements of adventure game such as quest, exploration, and skills that manipulate the gravity of objects to help the player in a fantasy theme game.
Below are game screenshots,
Scope of Work:
-
Programming of the minibosses state changes.
-
Programming of the skill changes made
-
Programming of the tutorial, starting dialogue sequence backbone
-
Programming of the endgame sequence
-
Programming of skill feedback scaling, texture changes based on charged amount
-
Programming of various gameplay improvements such as damage instances, camera panning, fading objects that are blocking player, door opening and closing based on player presence, enemy spawn, freezing player when changing scenes, panning.
-
Playtesting and bug solving.
Mechanics
Skills
Lift:
This is first skill introduce to the player. Once used, it lifts the various objects in the game and gives the player the ability to launch it in any direction the player wishes to. The player can also use some time to charge which increases the force the object is launched as well as the damage. Once it is fully charged, it can instant kill any single enemy.
Absorb:
The second skill introduced to the player. It can absorb enemies towards an object, causing damage and knockback for the enemy. The longer it is charged, the greater the range of absorption and damage. Once fully charged, it attracts all nearby objects and enemies and rotates them like a whirlwind, dealing heavy damage for each collision instance.
Seismic Heave:
The ultimate that requires being charged first. When unleashed, the character jumps and slams his hammer on the ground causing a shockwave that stuns and damages enemies, at the same time spawning boulders that player can use inflict more damage.
Quest
Quest System:
Quest givers will have an indication above their heads to tell the player that they have a quest. Yellow question mark shows an unaccepted quest that is available, red exclamation mark shows an ongoing quest and a green exclamation mark shows a completed quest. The currently accepted quest can be seen with the tab.
Programming
Boss 1
Design:
Boss will use its normal attack which is jumping up and slamming down, towards the player. It will continue for a before launching a black hole object that attracts nearby objects and the player. It will explode after a while and deal damage to the player if the player is close. At this time, it loses some momentum and rests for a while before continuing its normal attack.
Program:
//Idle state - Plays idle animation, wait for player to enter
//Normal attack - Once player entered, state changes to normal attack.
//Count down for normal attack function
counts down for the boss to attack, does not count when it is normal attacking
//Count down for special attack function
counts down for the boss to do a special attack and change state to special attack
//Special attack state
//do the special attack which jumps to a predefined transform and when landed, launch a blackhole prefab and stay in this state until the whole sequence including resting ended before transversing to normal attack state.
//Black hole Object
//Init function that starts the game object, called form boss's special attack state, starts a coroutine that explodes after a while
//trigger enters function that sucks player and object towards it
//once object explodes, set boolean to true in the coroutine which deals damage to player
//disappear after a set time
You can download the current build of the game here. (Note : This is a google share link.)
You can visit the SD Grad Show 2018 to see more https://www.facebook.com/events/180155799410069/
Pseudo Code for camera fade:
//Cast a raycast from the camera to the player
//if it does not hit the player,
//Cast a raycast all from the camera to the player, including only those that are of fade layer
//for all objects that are hit,
//for all previously faded object, if there is none, skipped
//check if any of the previously fade objects is not part of the hit,
//recover the fade object using the function
//if it is in the hit objects, do nothing
//check if the hit object is in previously faded object and if it is closer to the camera than the player
//if it is, fade the object using the function
//for all previously faded object, and if the first raycast hits the player
// recover the faded game objects