top of page

PROJECT CYBERSTRYKE

Cyberstryke is a Final Year Project made in Unreal Engine 4 for PC. It is considered my last hurrah before I graduated from my Game Development course. This page will log all of my work from my Research Methodology (Pre-production) to my Final Year Project (Production).

Brief Information About Cyberstryke

Cyberstryke is an arena gladiator fight game that features the use of multiple weapons, 80's synth wave themed graphics, punchy music and awesome weapons' martial arts animation.

Cyberstryke Trailer

Disclaimer: The video is created for educational purposes. Any copyright infringement is unintentional.

Latest Cyberstryke stories

Team

The Team

JADΛX

Team_Jadax_Group_Photo.png

J

A

D

Λ

X

Jonathan

Raymond Nunis

Jonathan Nunis.png

Lead

Artist

Work Scope

  • 3D Modeller

  • Texture Artist

AugustineChen_0115764_GameArtist.png

Artist

Work Scope

  • 3D Animator

  • 2D Artist

Augustine

Chen

Dania

Kamrul Ariffin

Dania Amrul Kariffin.png

Programmer

Work Scope

  • UI/UX Programmer

  • Technical Arts

  • Gameplay Programmer

OngVieKeat_0113664_GameProgrammer.png

Programmer &

Team Lead

Work Scope

  • Documentations

  • Gameplay Programmer

(VK)

Ong Vie Keat

(Xynan)

Lee Choon Meng

LeeChoonMeng.png

AI

Programmer

Work Scope

  • Documentations

  • Gameplay Programmer

  • AI Programmer

  • Optimizations

Our Mentors

265953_10150310434383126_2587358_o.jpg

Hilmy Abdul Rahim

34102817_10155710185228790_6622421128948

Shern Chong

Research methodology

Research Methodology

COMPETANT & BELIEVABLE SCRIPTED AI IN VIDEO GAMES

Research Objective

To make a competent and believable combat AI in video games.

Research Questions

  1. What qualities does an AI need to have to be classified as a good AI?

  2. Can a rule-based AI be made such that it seems believable to players?

  3. Can a rule-based AI be made such that it can adapt to player’s play style?

Research Results

  1. A good AI has some special qualities when compared to simple and basic AI (Performance, Efficiency, Predictability).

  2. A rule-based AI is believable to players in terms of human-like behaviour.

  3. A rule-based AI is capable and flexible to adapt to player’s play style.

MY AI Implementation

My AI Implementation

Planning AI Architecture

Variables -> Sensing -> Processing -> Acting -> Reward or Punishment

  • Variables​​

Untitled.png

The main variables:

Aggression Counter

The variable that determines how often the AI attacks. The higher the value, the more likely it will attack.

 

Defensive Counter

The variable that determines how often the AI blocks, dodges and counter-attacks. The higher the value, the more likely it will commit the mentioned actions.

 

Attack Interest

The resultant value that calculated based on Aggression Counter, Defensive Counter, health leads that will determine the next Aggression Counter.

 

Defense Interest

The resultant value that calculated based on a randomised percentage that runs every frame.

  • Sensing

Untitled.png

The Damage and Attack Mechanics are also part of the sensing process of the logic of the AI because they interact directly to the attack and defense interest.

  • Processing

BTS_UpdateAILocation

The behaviour tree service that is essential for the AI to execute any action from movement to attacks and defences. This class will determine whether the AI is too far, too near or in an optimum distance with the player in order to execute further actions.

 

BTT_CalculateAttackInterestBP

The behaviour tree task that is needed to calculate the attack interest that determines the AI's will of attack. The behaviour tree task will return an FVector(attackInterest, lightAttackAmount, heavyAttackAmount).

 

Formulae:

Defensive AI

Untitled.png
Untitled.png
Untitled.png

Aggressive AI

Untitled.png
Untitled.png
Untitled.png

BTT_CalculateDefenseInterest

The behaviour tree task that is needed to calculate defense interest that controls the AI's defensive manoeuvres such as dodging, blocking and counter-attacking. The behaviour tree task will return a float number.

Untitled.png
  • Acting

BTS_InstinctReaction

The behaviour tree service that is needed for executing the fast response of AI's defensive manoeuvres. It constantly updates the state between AI and player to check the need of execution.

 

There are 3 types of dashes the AI can perform: 
• Forward Dash 
The forward dash function is similar to what the player is using. 
 
• Strafe Dash 
The strafe dash will use most of the logic in the forward dash, but the only difference is the movement input is added to the character’s right vector instead of the forward vector. Strafe Dash is further explained in BTS_StrafeDash. 
 
• Dash Out of Corner 
Dash Out of Corner will be further explained by at BTS_CheckBackRaycast. 

InitiateCounterAttack()

A function that is in the CyberstrykeAICharacter class that will initiate the counter-attack sequence with a proc chance of 50% of defensive interest.

BTT_AttackExecution

The behaviour tree task that is needed to execute the attack. An attack sequence will proc after the attack interest is smaller than the aggression counter. It is programmed to cater to 3 situations: Light Attack Only, Heavy Attack Only, and Light to Heavy Combos

BTS_StrafeDash

The behaviour tree service that will force the AI to dodge an incoming attack from the player sideways if the AI has recently been hit more than 2 times.

BTT_CalculateStrafeLeftRight

The behaviour tree task that is necessary for the AI's strafe around the player's feature.

a.png
a.png

BTT_CheckBackRaycast

The behaviour tree task that is needed for the AI to check whether it is cornered by the player. If it is, it will dash ouf of the position.

 

The logic behind the raycasts

a.png
  • Reward or Punishment

  1. If successfully hit the player, the aggression counter will increment by 0.015 as a reward to encourage the AI to be more aggressive, the more it hits the player.

  2. The AI will also be rewarded an increment of 0.015 to defensive counter every time it gets hit by the player successfully to encourage it to block or evade incoming attacks.

  3. The punishment mechanic is removed because it would make the AI perform worse in the fight. 

For more information about the project, here is the link to my thesis.

That's all I have for this game. Hope you guys download and play the game. Stay tuned for more great games and have a great day.

2020 by Xynan Lee.

  • LinkedIn
  • Instagram - Black Circle
bottom of page