top of page
CartoonMe.png
artstation_logo_icon_145479.png
InBug-Black.png

Systems Design

Traits System

Using an asset from the Unity asset store to gain the general functionality of an autochess game I created my own set of traits. 

Terrier: When units with this trait attack, they heal for a percentage of the damage they deal 

Working: Units with this trait gain a health bonus at the start of combat as well as dealing more damage based on the amount of health they have 

Toy: Units with this trait will randomly select and heal an ally  

Pastoral: Units with this trait will take less damage the more units that target it as well as periodically taunting random enemies to target them

 

Hound: Units with this trait will target the enemy with the lowest health

 

Gun: Applies a bleed effect every time they attack 

ApplyOnAttackSnippet.png
Traits System

Since the framework for implimenting traits was already there I was able to really focus on how the traits should work.

I used this ApplyOnAttack method to apply most of the bonus' however there were some traits where I wanted more niche or specialized effects to occur so I had to create custom methods to be able to do this including: 

- OnTauntEnemies 

- OnGotBleed

- OnHealAllies 

Then there were also some effects where I had to think about the math involved. I wanted to maintain the abstractness of the bonus class so I wasn't creating loads of different public float variables to apply effects in different ways so I had to think about how I could manipulate the bonusValue with different operations to achieve different effects.

For example with the Pastoral trait I needed the bonus value to represent both a percentage chance of the stun happening as well as a scaler for how much damage the champion should face when surrounded by other champs. 

For the percentage chance I can just divide by 100. Then for the scaler value I would multiply it by how many attackers were targeting this unit. Then took that value from 100 and divided by 100 to turn it into a percentage scaler. Finally I multiplied that value by the incoming damage to scale the incoming damage.

PastoralIncoming (1).png
Combo System

As part of this project I'm imagining that I have to develop the next set for TFT which includes an overall theme with a unique set mechanic and some traits that would work for it. The overall theme I'm going with is a theme of dogs.

The mechanic I went with is this combo system since a common trait of dogs is that they cross breed to take on different traits from parents.


For it I took the data from champion A and champion B and mixed it together in a new serializable Champion object. For data that can be averaged i.e. health and damage I'm averaging it across both champs. This means that you can't just keep combining champs to make endlessly strong superpowered champs.


To improve this I'd like to try to create ranges the system can choose from. This will make the system less deterministic since crossbreeding in dogsis unpredicatable. The autochess genre is about intoducing randomness to test players strategy so this also fits into the core design of the autochess genre.

Then for data that can't be averaged i.e. character model / projectile type and attack range the system will randomly select data from either A or B.


To improve this I'd like to have a dictionary inside of each champ that has mixed versions of each trait it can refer to since players can forget which champions have already been combined.

Steering-Drifting GDD.png
Find out more about this system here:
10 (1) (1).png
Find out more about this system here:
2D-Camera.jpg
CaptureGDD.png
bottom of page