Justus Hörberg

Super Mario 64 Fanmake
This is a fan remake of the Super Mario 64 for the Nintendo 64, aiming to replicate as much of the original game as possible while still making efforts to keep it fresh.
Platform: PC
Engine: Unity
Language(s): C#
Project Created: February 2021
Team Size: 1
Info
Project Information
This is a solo-developed game made in Unity. Development spanned between February-March 2021, and was worked on during off-hours at FutureGames. All assets, including environments, animations and code (with the exception of models and sounds) have been made from scratch, using Unity.
Technical Features

Interactables
The player is also able to interact with NPCs. The game continuously scans for nearby NPCs by overlapping a sphere around Mario. If NPCs are found, and Mario is in a state where he can interact with NPCs, the player can press the B-button to interact with the one closest to him (the user also has the option to make the interaction automatic if they want to). The NPC is then the one in charge of controlling the cutscene; they may spawn a textbox, change the camera angle, move somewhere, make Mario move somewhere, etc.
Sliding
When Mario touches a steep slope, he enters the sliding state, where he will slide on his belly until he comes to a stop. He will start moving in the direction of the slope, gaining speed at a rate of gravity * sin(angle between slope and gravity directions). The player can influence Mario's speed to some extent by pushing the control stick, which will add speed in that direction.

Triple Jumping
If Mario jumps three times in quick succession, he can perform a triple jump that launches him higher than usual. When Mario jumps, the game will check if the type of jump he's performing is one that can lead into a triple jump (this is true for his regular jump, for example). The game then adds 1 to a variable that keeps track of how many times Mario has jumped recently, and starts a coroutine that, when Mario lands on the ground, depletes this number to 0 if he doesn't jump in time. When Mario enters the jumping state when this number is 3, he performs a triple jump.

Attacking
Pressing the B-button makes Mario attack. Mario can punch twice, and on the third attack he can kick. When the player presses the B-button during an attack, the input gets buffered so that Mario throws out the next one once it is finished. The animation calls on an AnimationEvent that spawns hitboxes along Mario's arms. The hitboxes are given ScriptableObject information about their damage and knockback, which hurtboxes will receive, and report to their owners, if they derive from the IHurtboxReceiver interface. Hitboxes can also report back to the user that they hit something, and in the case with Mario, if he hit a wall, he will ricochet off of it.
