Key elements I learned while developing Lasergladiator
Unity and C#
As this was my first project using Unity I first had to learn the basics of C# as well as Unity workflows. The latter includes lightning, physics and basic shader knowledge.
Being a multiplayer title my current project requires some knowledge about multiplayer structures
Animation and rigging
I used Unity’s bone-system to rig and animate the 2D Sprites.
I edited and created a lot of sound and texture files to help players immerse into the game.
Fighting Gameplay vs AI
Overview Missionselection+ Combat
The fighting system consists of the following basic-actions:
The robot uses it´s weapon to inflict damage to nearby enemies. The game will automatically determin the distance to the closest enemy and start a fitting attack. Every weapon has close-, normal- and far-attacks.
The damage dealt by an attack is depending on the weapon.
Players can activate their guard stance by holding the block-button.
While in guard stance players are imume to enemy attack come from infront but will walk slower.
While in guard stance players cannot start other actions.
The longer the guard stance is active, the longer it will take the player to return to the default stance.
A guardbreak will only deal minimal damage but stuns the enemy even if they are in guard stance. While stunned the players robots will enter a ragdoll mode during which they are endangered to external map hazards like cliffs, water or bombs.
The latest development version of this projects offers three different weapons: Sword, double sword and lance. Upcoming weapons will include axes, shields as well as some laser guns. Guns will need to be carefully balanced and therefore not be added before the melee fighting system is polished.
How the multiplayer works
This projects uses player-hosted servers. This means, that one player will act as a client and a server simultaneously. Obviously dedicated servers would offer the best experience
The multiplayer system is powered by a customized version of „Mirror“, a multiplayer plugin for Unity.
The Fighting System consists of three main actions: Attacking, blocking and „guard breaking“. Simplified it could be seen as a „Rock-Paper-Scissors“-system. Blocking will defend you from getting damage from normal attacks, but a guard break will stun you for some seconds during which you are vulnerable. Also, depending on the environment, you run the risk of falling from cliffs… (see Physics)
Physics are used for the Fighting System as well as for a „ragdoll mode“ which is active if a player is stunned. When being stunned players are not only threatened by other players but also by the environment. Some maps include elements like towers or cliffs. Falling from those could have painful results. Also, special map events become more dangerous, if you can’t run… (see Map Events)
Random map events spice up the gameplay. Players will not only have to keep an eye on their enemies but also on their surroundings. Depending on the map events like deadly laser beams or falling trees will threaten players.