Swordbound
Genre: Single-player Fighting Game
Platform: PC
Engine: Unity
Skills Used: C# Scripting, AI programming, Systems Design, and 2D Art
Team: Jed Myers (Designer/Artist), Kamil Prosko (Artist)
A single-player fencing fighting game based on Bolognese sidesword fencing.
Intent
I’ve been fencing for two years now, both German longsword and (the subject of the game) sidesword of the Bolognese tradition. Swordbound is a fighting game based around dueling and the point of it is to make an incredibly lethal, defensive system of combat where the principles I learned were applied. The goal was to represent aspects of swordfighting that are not widely known but have a ton of gameplay potential like Binding. Eventually I will have a fighting game that represents the experience of learning a martial art for a master and applying their principles to defeat difficult enemies.
Platform: PC
Engine: Unity
Skills Used: C# Scripting, AI programming, Systems Design, and 2D Art
Team: Jed Myers (Designer/Artist), Kamil Prosko (Artist)
A single-player fencing fighting game based on Bolognese sidesword fencing.
Intent
I’ve been fencing for two years now, both German longsword and (the subject of the game) sidesword of the Bolognese tradition. Swordbound is a fighting game based around dueling and the point of it is to make an incredibly lethal, defensive system of combat where the principles I learned were applied. The goal was to represent aspects of swordfighting that are not widely known but have a ton of gameplay potential like Binding. Eventually I will have a fighting game that represents the experience of learning a martial art for a master and applying their principles to defeat difficult enemies.
Pre-Production
I first thought of this concept in the summer of 2016, after a longsword fencing class. I was aware of a number of fencing games that have come out over the years but none of them really captured the tension and experience I wanted. I began to write up a Design Document/Pitch Document in order to collect my thoughts. I used the site Wiktanauer to gain access to images and text from these manuals. These proved incredibly important to developing the animation. The core stances and attacks are based on the basic cuts that both longsword and sidesword share. And with this under my belt I made my first prototype. |
Early Prototype
I started work on the prototype in the Winter of 2016 for Senior Production. There were two fighters, one a player and one simple AI opponent. The first version of this used the keyboard to switch between a high, middle, and low stance. Each stance blocks the attack made from that stance. High blocks high, Low blocks Low, etc. Each of these corresponded to a number key and you click to attack. Left clicking the mouse caused the player to launch a single, heavy attack.
Now this is easily adapted to a console control scheme but the stance changing did not feel intuitive to most people when I tested for it. This initial version had prototype art by Kamil Prosko and focused more on longsword fighting. However, my next version used simple pixel art as Kamil had other obligations and we had move onto another prototype for Senior Production. This heavily influenced the look and feel of later animations.
I started work on the prototype in the Winter of 2016 for Senior Production. There were two fighters, one a player and one simple AI opponent. The first version of this used the keyboard to switch between a high, middle, and low stance. Each stance blocks the attack made from that stance. High blocks high, Low blocks Low, etc. Each of these corresponded to a number key and you click to attack. Left clicking the mouse caused the player to launch a single, heavy attack.
Now this is easily adapted to a console control scheme but the stance changing did not feel intuitive to most people when I tested for it. This initial version had prototype art by Kamil Prosko and focused more on longsword fighting. However, my next version used simple pixel art as Kamil had other obligations and we had move onto another prototype for Senior Production. This heavily influenced the look and feel of later animations.
Early Binding
My main object has always been to capture the concept called Binding. When two sharp swords strike each others at the proper edge alignment, they bite into each other and stick. Most weapon based fighting games reflect this by entering single-button minigames where the player button spams to overpower the enemy. The reality however is much more exciting and active. When two swords stick in reality they will not stick for long as someone will take the initiative or what is called Vor in German Longsword. They will then use any part of the sword they can to strike and likely cause a single, lethal blows.
My first translation worked more like a guessing game/combo system that occurred in the middle of combat. The idea was that the player would learn certain combos from swordmasters in an overworld mode and that their AI opponents would have their one list of combos. Whenever the two characters swung from the same stance, a Bind would initiate. If the player had the Vor, they could type in one of the combos they knew and the AI would check if they knew it. If they did, the attack would fail, and if they didn’t they would take massive damage. The idea behind this was to represent the sophisticated sword techniques from medieval swordfighting manuals, that were a combinations of blows designed to outwit your opponent. And this would represent that experience of feeling out what your opponent knows and trying to find something they didn’t know.
This version failed because it shattered the pacing of the game. Making the system into a guessing game created too much trial and error for the player and this resulted in a less fluid, fun system. This would be a problem I would take a while to solve.
Long and Short
My initial prototype only had one attack from each angle, leading to a total of only six moves. I’ve had limited experiences with fighting games but I knew I wanted to add an extra dimension to the combat. So I took a concept from fencing where with a two edged weapon, you can do two strikes. One is with the long-edge, the edge aligned with the knuckles. This is the primary edge used and it does the most damage. The other is the short edge, aligned with your palm. This edge has less power but still delivers a moderate amount of damage. The short edge also is used as a counter attack to parry cuts with counter cuts or do quick strikes to openings.
Adding in the short edge, I gave it the ability to do damage to an enemy who is doing a long edge attack, even if they are in the same stance. This provides another option to a player to counter, but also means the AI can punish players who try to spam long-edge attacks. This drastically increased the moveset, creating nine different moves, meaning that a more traditional combo system could be added in the future.
My main object has always been to capture the concept called Binding. When two sharp swords strike each others at the proper edge alignment, they bite into each other and stick. Most weapon based fighting games reflect this by entering single-button minigames where the player button spams to overpower the enemy. The reality however is much more exciting and active. When two swords stick in reality they will not stick for long as someone will take the initiative or what is called Vor in German Longsword. They will then use any part of the sword they can to strike and likely cause a single, lethal blows.
My first translation worked more like a guessing game/combo system that occurred in the middle of combat. The idea was that the player would learn certain combos from swordmasters in an overworld mode and that their AI opponents would have their one list of combos. Whenever the two characters swung from the same stance, a Bind would initiate. If the player had the Vor, they could type in one of the combos they knew and the AI would check if they knew it. If they did, the attack would fail, and if they didn’t they would take massive damage. The idea behind this was to represent the sophisticated sword techniques from medieval swordfighting manuals, that were a combinations of blows designed to outwit your opponent. And this would represent that experience of feeling out what your opponent knows and trying to find something they didn’t know.
This version failed because it shattered the pacing of the game. Making the system into a guessing game created too much trial and error for the player and this resulted in a less fluid, fun system. This would be a problem I would take a while to solve.
Long and Short
My initial prototype only had one attack from each angle, leading to a total of only six moves. I’ve had limited experiences with fighting games but I knew I wanted to add an extra dimension to the combat. So I took a concept from fencing where with a two edged weapon, you can do two strikes. One is with the long-edge, the edge aligned with the knuckles. This is the primary edge used and it does the most damage. The other is the short edge, aligned with your palm. This edge has less power but still delivers a moderate amount of damage. The short edge also is used as a counter attack to parry cuts with counter cuts or do quick strikes to openings.
Adding in the short edge, I gave it the ability to do damage to an enemy who is doing a long edge attack, even if they are in the same stance. This provides another option to a player to counter, but also means the AI can punish players who try to spam long-edge attacks. This drastically increased the moveset, creating nine different moves, meaning that a more traditional combo system could be added in the future.
AI Programming
By far, the proudest thing I did in this game was design a reasonably robust basic fighting game AI that seems reactive but also takes the initiative in fighting the player. The goal was to make an AI that would attack unpredictably within parameters of aggression. To this end I wrote in a random range with a value representing the aggression of the AI. If the random value between 1-100 is above the threshold, the AI will attack.
I also added a number of parameters that can be set to change the AI’s behavior using Booleans. Some AI will aggressively exploit an opening if the player doesn’t match their stance, some will tend to default in a favorite stance, and some will always attack the head if the player leaves if unguarded. This leads to a variety of strategies that the player can use to fight them.
Art
I had to build all of the art from the ground up and create the dozens of frames of animations. Although I had done some 3D work in the past, I didn’t have a ton of experience animating humanoids. However, I did have a ton of two dimensional references and a tiny amount of experience with pixel art. So I began to make the keyframes. At first these were primitive but slowly grew from two frame animations to rather smooth animations with shading and stronger outlines. I did this through a process of rotoscoping, making gifs of me performing the cuts described in the manuals and creating keyframes on top of those images.
At one point all my keyframes were deleted and I was mortified for an hour. But that night, I gritted my teeth and recreated three weeks of work from scratch. I finished a crude version that night and made a far superior version to both in a week. I was determined not to give up on my project, even if it hurt to do it and even if I had to use a skill I’m not entirely comfortable with. And though the art would benefit from a real artist, the results are certainly playable.
By far, the proudest thing I did in this game was design a reasonably robust basic fighting game AI that seems reactive but also takes the initiative in fighting the player. The goal was to make an AI that would attack unpredictably within parameters of aggression. To this end I wrote in a random range with a value representing the aggression of the AI. If the random value between 1-100 is above the threshold, the AI will attack.
I also added a number of parameters that can be set to change the AI’s behavior using Booleans. Some AI will aggressively exploit an opening if the player doesn’t match their stance, some will tend to default in a favorite stance, and some will always attack the head if the player leaves if unguarded. This leads to a variety of strategies that the player can use to fight them.
Art
I had to build all of the art from the ground up and create the dozens of frames of animations. Although I had done some 3D work in the past, I didn’t have a ton of experience animating humanoids. However, I did have a ton of two dimensional references and a tiny amount of experience with pixel art. So I began to make the keyframes. At first these were primitive but slowly grew from two frame animations to rather smooth animations with shading and stronger outlines. I did this through a process of rotoscoping, making gifs of me performing the cuts described in the manuals and creating keyframes on top of those images.
At one point all my keyframes were deleted and I was mortified for an hour. But that night, I gritted my teeth and recreated three weeks of work from scratch. I finished a crude version that night and made a far superior version to both in a week. I was determined not to give up on my project, even if it hurt to do it and even if I had to use a skill I’m not entirely comfortable with. And though the art would benefit from a real artist, the results are certainly playable.
Binding
Binding was the primary reason I wanted to make this game so I was initially discouraged by the lack of success of my initial version. After I resumed development I started brainstorming how to best accomplish this. One day I was watching a fencing related video in which an instructor was responding to an amateur who was talking about how he simple takes techniques from any number of source when he fences. The fencing instructor was correcting him and his eventual rebuttal was summed up in a phrase that "Historical Fencing is a principles based art and not a technique based one." This means that the principle behind a technique are much more important than the technique itself, because principles of body-mechanics, defensive, etc. are more important then the devices. The devices are merely there to teach those principles.
Binding was the primary reason I wanted to make this game so I was initially discouraged by the lack of success of my initial version. After I resumed development I started brainstorming how to best accomplish this. One day I was watching a fencing related video in which an instructor was responding to an amateur who was talking about how he simple takes techniques from any number of source when he fences. The fencing instructor was correcting him and his eventual rebuttal was summed up in a phrase that "Historical Fencing is a principles based art and not a technique based one." This means that the principle behind a technique are much more important than the technique itself, because principles of body-mechanics, defensive, etc. are more important then the devices. The devices are merely there to teach those principles.
So instead of continuing with my initial system, I chose to go back to the source, and in a 15th century fencing manual by the German Swordmaster, Johannes Liechtanauer. He talks about “weak binds” and “strong binds” and how, if you have seized the initiative, you should gauge your enemy’s bind and if it is weak, push through with a thrust or a cut and if it is strong, collapse your guard, disengage and perform a cut. This is called “feeling the bind”.
And so I based my new mechanic on “feeling” whether your opponent is pushing weakly or strongly and either take advantage of the weakness and strike, or let them push through and use their own momentum to stagger them. This solution is more intuitive, fluid, and reflects a change in values from technique to principles. |
Expansion
This is an ongoing project and I plan on expanding on the combat to add in learnable combos based on principles from the manuals. This ties into a simple overworld I would like to create that allows the player to go between locations, learn combos from swordmasters and manuals. And most importantly of all I want to add more AI opponents to challenge. Right now I have a pipeline set up that allows me to prototype an opponent with their animations in three days using my AI system. The only hold up to that is how to make them use combos as well which is a challenge I want to take on.
Conclusion
I have learned one primary lesson from this side-project and that is when you are adapting a real world concept, instead of aiming for specifics aim to capture the universal principles of it. The results will often feel more fresh and fluid then trying to perfectly recapture something in all its complexity. It provided hours upon hours of challenges for me and I tackled things that many programmers in my school advised me against due to the difficulty. In short I have never been more proud of a side-project.
This is an ongoing project and I plan on expanding on the combat to add in learnable combos based on principles from the manuals. This ties into a simple overworld I would like to create that allows the player to go between locations, learn combos from swordmasters and manuals. And most importantly of all I want to add more AI opponents to challenge. Right now I have a pipeline set up that allows me to prototype an opponent with their animations in three days using my AI system. The only hold up to that is how to make them use combos as well which is a challenge I want to take on.
Conclusion
I have learned one primary lesson from this side-project and that is when you are adapting a real world concept, instead of aiming for specifics aim to capture the universal principles of it. The results will often feel more fresh and fluid then trying to perfectly recapture something in all its complexity. It provided hours upon hours of challenges for me and I tackled things that many programmers in my school advised me against due to the difficulty. In short I have never been more proud of a side-project.