Devlog #2 - Combos


Our first mission on the project was setting up the characters in a way that it could an attack/move script for a player would work for any character, even if they did not have 100% matching animations.

If my Character1 has 3 Light Attacks that Sequence and my Character2 only has 2, I can still use the same Player Controller and it'll feed itself from the Character Data and only play what it actually can. So in the case of Character1, I would be able to chain together 3 light attacks, but in Character2, with the same script, I'm only able to chain 2, this is because the logic is all on the scriptable objects that hold the data for an attack.

This idea came from researching options and finding Create A 3D Fight Game In Unity In One Video | 3D Beat Em Up Unity Tutorial | Fight Game Unity3D. The system he introduced was a good starting point, but it couldn't be adjusted on the fly depending on the character, it's made in a way to work only with this specific character, so I ended up constructing logic based on the talk about scriptable objects that I have linked in the last part of the Prelude.

This was when I had finished the system and was testing out some transitions on the animator.

And this was when I had already set up the level elements and was testing out some more of the movement and attack combos that now had a detection system, shown as the white spheres that are drawn when an attack is played.

Axel was scrapped and we introduced Kyo, with Kyo the back attack was removed, and in it's place "special" attacks are now a type of attack, behavior will most likely vary over different characters. Run Attack was also introduce, to show the character attacking while sliding if a Light Attack is pressed while the character is running.

Another big thing introduced with Kyo was the change in Heavy Attacks, now they do not have an order, generally Heavy Attacks are end of Combo Strings, and before, in Axel's case, his end combo string for Light and Medium attacks was always the same Heavy Attack, now, we can define a different Heavy Attack to end the attack combo strings and a different attack is played.

In this clip one can see the difference between :

  • Light 1 -> Light 2 -> Light 3 -> Heavy 1
  • Medium 1 -> Medium 2 -> Heavy 2

Where Heavy 1 is an uppercut and Heavy 2 is an axe/downwards kick.

Full combo:

  •  Light 1 -> Light 2 -> Light 3 -> Medium 1 -> Medium 2 -> Heavy 2

With this system, I could even introduce different other Heavy Attacks, that I'm using as combo finishers (100% knockdown effect) that would be linked to various stages of the combo strings. Perhaps a Heavy Attack 3 that could only be linked to Light Attack 2 and after I have played that Light Attack, if i pressed the Heavy Attack Input, I would get a different Heavy Attack, from the other 2 that were already present on the character. And it's as easy as adding a "attack type" to a list of "linkable attacks" in the scriptable object of an attack.


This is Kyo's Light Attack 3 Scriptable Object, and the way it knows it links to Medium Attack 1 and Heavy Attack 1 is because it belongs to the link list, that is checked when a different attack is to be played, among other stats, like how the hit detection is done.

Get Infinity Battle

Leave a comment

Log in with itch.io to leave a comment.