Dr. Higgs’s Great is a first person runner that pits the player against time and a black hole that they have accidentally created. Made in Unity 3-D, the player controls Dr. Higgs, who is followed by his robot companion throughout the game. On a team of 6, I served as the lead programmer.
My tasks critical to gameplay included creating the timed speedup mechanic during running, the black hole, pickups, the tutorial sequence, the logic for the companion bot, along with a system for our cutscenes to be played. I also helped fix major bugs related to the character controller and the wall ride mechanic.
Key Programming Tasks Completed:
Our idea for movement began with a metronome-like mechanic that involved a semicircle centered at the bottom of the green. A red dial would rotate back and forth between zones, and the player originally had to time the left or right trigger pull with the overlap of the dial and the proper zone, based on current speed. Though it was possible, and fun to pull off after some practice, the distraction from the middle of the screen proved to be too much, so the idea was scrapped.
Instead, a new system involved the natural swinging of arms was created. To gain speed, the player must press the corresponding trigger when an arm has reached its peak during swinging. Upon four consecutive successful hits, the players speed will be added by the base speed, with the max speed capping out at four times the max speed. Every ten seconds, unless speed is raised or lowered by another means, the speed will be reduced by the base value.
If an obstacle is hit at three or four times the base speed, then the players’ speed is reset to the base value. If a hit is not timed correctly, then the hit counter goes down by one. If the hit counter was already at 1, then speed will be lowered by the base value. The player’s speed cannot go below the base value.
If the player is already at max speed, then four successive hits will reset the hit counter to 0 and extend the time at which the player runs at max speed by 10 seconds.
The black hole was a unique lose state that needed to feel consistent in each level. The object consisted of a particle effect with a properly scaled trigger sphere, along with a slightly larger trigger sphere that scaled along with the black hole. If the player is hit by the outer trigger, Higgs’ companion will warn him to hurry up. If the player is hit by the black hole, they must restart the level.
Variables used to tweak the black hole include the starting radius size of the parent game object, the rate of growth, along with the space between the triggers.
At any time while in control of Higgs’, the player is able to push the right joystick down and look over their right shoulder to check on the whereabouts of the black hole.
Through the three levels played, the player must collect or avoid two different types of pick ups.
The first pickup introduced is Antimatter, which slows down the rate at which the black hole expands behind the player. The total amount of antimatter picked up is displayed in the top right corner of the screen, and is a useful tool if the player finds themselves unable to outrun the black hole.
The other pickup is Radiation, which temporarily halts the player and resets their speed back to the base value.
The primary method of communicating with the player is via his flying robot companion. This robot will fly behind the player unless he has something to say, at which point he flies in front of the player, speaks, then returns to the rear position.
The companion also has the ability to move to the left or right of Higgs. If he comes near contact of a wall, he will move to the other side of the player to avoid collision.
During either/both of these movement phases, the companion is always hovering up and down.
Aside from Higgs’ companion, the player’s other main sources of conveyance come packaged as cutscenes. Each level has a brief intro and outro, with the current objective being the focus of each one. The first frame of the intros and the last frame of the outros are the same frame, which show a static loading screen. This effect worked well, considering the relatively fast loading times between levels.
The audio for the tutorial was finished later than expected, so a visual tutorial was requested from me with less than a couple of hours to go in development time, so with that time, I created a one time function to display unique UI in front the player, displaying how to increase speed, jump, and ride walls.