top of page

AR BATTLE PROTOTYPE

A battle simulator that utilises the real world as an arena - designed to get the player up and moving!

This project places the player in a one-on-one duel with a virtual opponent. Attacking is done by tapping on the screen to launch a projectile at the enemy.

While the opponent has the same projectile attack, it also has access to 3 other techniques, designed to keep the player on their toes!

Project Design:

The main design philosophy for this project is to keep the player moving around at all times - each enemy attack is made to move the player from their current location.

Doing this not only paves the way for an engaging and interactive battle experience, but also encourages activeness during play, and can help the player to stay fit through regular sessions.

ARBattleQR.png

Download the APK here:

A great example of this is the damage system. As the player gets closer to the enemy, a higher damage multiplier will be applied to the player's attacks. This encourages the player to get up close - however, the enemy has multiple attacks to keep the player at bay:

Shockwave:

Screenshot_2021-12-17-13-50-06-546_com.AirshipStudios.SuperGOBattle-min.jpg

Projectile:

Screenshot_2021-12-17-13-51-50-574_com.AirshipStudios.SuperGOBattle-min.jpg

Pillar:

Screenshot_2021-12-17-13-48-26-971_com.AirshipStudios.SuperGOBattle-min.jpg

Special Move:

Screenshot_2021-12-17-13-57-13-751_com.AirshipStudios.SuperGOBattle-min.jpg

Scripting and Implimentation:

The enemy, as well as its attacks, are handled by a state machine that's scripted to always fire standard projectiles unless a certain criteria has been met - for instance the enemy will always perform the shockwave attack if the player is within 2 metres of them. Using this state machine has created an AI which is highly reactive to the player's movement and location, which was my biggest goal for this project.

For each attack to work, they all have attatched 'attack power' values, that interact with the player and enemy's attack and defense stats to form a sum of total damage. Damage is calculated by doing: attackPower * originAttackStat / recipientDefenceStat. For the player, this end value is multiplied by a value that gets higher the closer they are to the enemy.

DamageCalc.JPG

Project Reflection:

What went well:
I loved working on this project! Starting it fueled my passion for AR development. This enthusiasm helped me plan out and successfully execute a battle system that rewards player movement. I think that for my first time both designing and programming for a platform as unique as AR, I did a brilliant job.

What could've gone better:
Rather than creating my own behaviour tree for the enemy AI, I utilised Unity's animator. While this did help in saving time for a project originally created for a module at Uni, after developing it further it has started to limit how creative I can be with the enemy's behaviour overall. I wish to continue working on this project and eventually release it as a full game, where I will most likely re-create the AI from scratch.

bottom of page