Power Of The Elements

First version done in groups of 4 over 3 months.
Second version done in groups of 3 over 3 months.

A multiplayer online TPS fighting game in 3D in C# using Unity

Writing a multiplayer online TPS fighting game in 3D about bending one of the four elements (water, earth, fire and air) in C# using Unity.

WaterVSEarth.gif
A very good example illustrating in 2D what we wanna do in 3D. Created by dawgiesman1.

Features
  • Elements already used usable again at will
  • Earth bending (proof of concept done, need to rework physics, add procedural rock and terrain destruction)
  • Water bending using one of the three following method with the ability to freeze it:
    • using spheres (proof of concept done, need to rework physics) and metaballs (to do)
    • using mesh deformation based on the incompressible Navier–Stokes equation (to do)
    • using fluid dynamics (to do)
  • Fire bending (to do) using fluid dynamics
  • Air bending (to do)
  • Multiplayer (LAN done) online network (lag compensation to do and architecture to rework) with more than 4 players
  • Procedural animations (to do)

Water Bending Version (Feb 2016 - Apr 2016)

The github repository is accessible here: Waterbending-Project

Demo Download link: MediaFire
Web Demo link: Unity Web Player

This is the second version, done over 3 months in a team of 3.

It includes:

  • Character physic and behaviour (done by me)
  • Animations (done by me)
  • Water bending (done by a teammate and I)
  • LAN (done by me)
  • Menu (done by a teammate)
  • Tutorial (done by me)
  • Deathmatch mode (done by a teammate)
  • Music (done by a musician outside the project: Nicolas Brochec)

This second version is based on the previous one, but with some changes:

  • The character behaviour and how it is managed has been changed. It now uses Concurrent Finite State Machines.
  • The animations has also been changed to fit our needs.
  • Earth bending has been removed for now as it needs improvements before beeing able to interact with water.
  • AI has been removed too for now as we don't need it since the character behaviour system has been change it would need to be adapted. Furthermore AI is not mandatory anymore since we have multiplayer.
  • Multiplayer is first and foremost intended to work over a LAN (low latency).
  • Water behaviour is handled using spheres attached by components defining its behaviour like:
    • Gravity when not bended
    • Target when thrown to someone making the flow curving a bit if the ennemy is moving to assist in aiming
    • Rotate when the flow needs to defines a circle like rotate around us while waiting to attack
    • Pull when pulling water in front of the character, a simple straight forward movement in front of the character is done here
    • Volume to handle incompressibility, splits a drop into several drops when going too fast and merges drops into one when too close (has been removed as it wasn't compatible with the water physics system)
    • Pull away from a point when colliding to give an effect of water flow moving apart
    • Deviation to deviate more or less a flow from its course to keep a smooth trajectory
  • To look more like a flow than just spheres sticked together, we wanted to use metaballs like in Portal 2. A version has been done by a teammate but it is not enough optimised, and since it is just a graphical effect not impacting gameplay, it has been disabled.

Earth Bending version (Oct 2015 - Dec 2015)

The github repository is accessible here: Power-of-the-elements

Demo Download link: MediaFire
Web Demo link: Unity Web Player

The first version has been done over 3 months in a team of 4.

It includes:

  • Character physic and behaviour (done by me)
  • Earth bending (done by me)
  • Menu (done by teammates)
  • Power-ups (done by teammates)
  • HUD (done by teammates)
  • Animations (done by teammates)
  • AI (done by teammates)

This first version is very basic, the goal was to make a proof of concept about earth bending and its reusability, which has been done. The next step about earth bending is to make it procedural so the gameplay is not limited to prefab's size

Resources

Inspirations

atla_earth.gif
Earthbending from the anime Avatar: The Last Airbender
atla_water.gif
Waterbending from the anime Avatar: The Last Airbender

Drop me a line

Phone

+33 6 09 34 62 27

Address

Toulon, France