Robo-Boxing

Robo-Boxing is a 3D fighting game inspired by the old arcade classic Urban Champion. In Robo-Boxing, you go against different fighters with higher and lower stats letting players make strategic moves with the fighting and movement style. Robo-Boxing is a fighting game with a twist! You can fight clean or dirty, however if you fight dirty there are going to be consequences from a referee in the ring and fans in the crowd watching your every move. Choose your way to fight.

Robo-Boxing was a 3D-boxing game I made solely on my own.The game was made in Unity-3D using visual studio to program the game and Mixamo to gather the animations to resemble fighting and movement. The game is now enclosed as a basic version, however could be revisited at a later date. Onwards shows the development of the project

Bass Class

Player and NPC Variables For Components and Movement
NPC and PC Variables For Fighting
Camera Class Variables
Camera Class Late Update
Camera Class Camera Move
Camera Class Zoom
Camera Class Greatest Distance
Camera Class Get Centre Point
AI Ref Variables
Referee Movement
AI Crowed Variables
AI Crowed parabola function
AI Crowed Target Variables
AI Crowed Physics Object
AI Crowed Activate The Throw Function
Start 01
Start 02
Start 03
Start 04
Start 05
Update Debugging
Movement
Combat Function For Animations
Stamina Function
Fighter Stamina Function
Regen Stamina Function
previous arrow
next arrow
 
Shadow

This is the Base class which controls a lot of the logic for the game. This C# script gets passed into other classes so they can use the functions which have been declared in the base. There are also subclasses in the base which are used by the camera or referee to stop errors from appearing in the console.

PC Derived Class & AI Derived Class

Player Scripts

Player Variables
Player Start
Player FixedUpdate 01
Player FixedUpdate 02
Player FixedUpdate 03
Player KnockedOut
Player Movement
Player Stamina Logic
Player OnTriggerEnter & Exit
previous arrow
next arrow
 
Shadow

This is the script which allows players to move around in the game and fight the opponent.

NPC Script

NPC Variable 01
NPC Variable 02
NPC Start
Update 01
Update 02
Update 03
Update 04
NPC Movement 01
NPC Movement 02
NPC Clean Fighting
NPC Dirty Fighting
NPC Stamina Functions
Type Of Fighter 01
Type Of Fighter 02
Type Of Fighter 03
Type Of Fighter 05
Type Of Fighter 04
Type Of Fighter 06
NPC OnTriggerEnter
NPC OnTriggerExit
previous arrow
next arrow
Shadow

This is the script which allows the NPC fighter to know what to do in different game states, allowing for movement and combat.

Camera Movement Class

This script is applied to the camera so that it will follow a list of objects and find the centre point between them all. It also has a zoom effect when objects move closer or further away from each other.

Referee Derived Class & NPC Crowed Thrower Derived Class

Referee Variables
Referee Start
Referee Update 01
Referee Update 02
Referee Take Action NPC 01
Referee Take Action NPC 02
Referee PC TakeAction 01
Referee PC TakeAction 02
Referee OnTriggerEnter
AI Crowed Member
previous arrow
next arrow
 
Shadow

Additional Bottle Derived Class

This derived class allow for different types of gameplay. The referee AI will be stunned and when sending each fighter into their corner, the referee is prevented as they have been stunned. When the referee is stunned, players can use more aggresive moves without being penalized. While the referee can be stunned so can the fighters when the bottle is thrown at them. The bottle gets thrown at the fighters when they use an illegal fighting technique. 

When first thinking about how I would execute this project, I had a game I was using as inspiration which was Urban Champion the old arcade 2D street brawler game. After playing the game for a while I decided this was something I wanted to create. I wanted to re-make the game but change how it is presented. I did this by changing the environment from an illegal street fight to a boxing ring but having a dirty fighting element. I made the referee similar to the police car from Urban Champion, the one object which stopped the fight when it appeared; However, in this case the referee stops the fight when a dirty fighting technique is used by either fighter. The referee can sometimes miss the offender’s attack and instead the AI crowd member will throw an object at the offender. I wanted to use OOP (“Object Oriented Programming”) because I wanted all the objects to be linked together which I feel like I achieved with the referee linking with the AI thrower and all inheriting from the base.

However, like most projects there are some things I would have liked to have done better if time was on my side. To start I would have liked to make the environment more interesting by designing the level instead of using placeholder objects like cubes used for the ring, referee and AI crowd member. I would have also liked to spend a little more time on the animations for both the player and NPC so they could play more smoothly, whether it is in blend tress or when & where they’re called through the scripts. Lastly, I would have liked to have spent more time on the AI thrower so there could be more dynamic throws. This would have allowed fighters to punch the object at their opponent or allowed for more combat options, like head butts and blocking attacks for a more strategic approach to the gameplay. 

To see the project for yourself feel free to find it on my GitHub