Technical Update #4
Sword Sync and Force Feedback
In this, which will likely be the last technical update we post during the Kickstarter campaign, we’ll try to roll together some of the material from the earlier technical updates and address the single most frequently asked question we get: how to handle force feedback, or the lack thereof, in the hardware controller.
This is going to be somewhat in-depth, but we think we owe it to our donors to address the question as fully as possible.
By way of introduction, I (Neal) offer the following extended analogy to the development of first person shooters over the years.
In some early video games, you had an infinite amount of ammunition and so could just hold the trigger down the whole time. I can remember the first time I played a game that was actually sophisticated enough to keep track of how many rounds had been fired from the magazine and that had the bad manners to stop firing when I allowed myself to run out of ammunition. Many “lives” were lost. I might even have stopped playing the game in disgust and gone back to an old-school shooter where I didn't have to worry about such annoying details. But after a little adjustment I saw it wasn't that difficult to keep an eye on the user interface widget that told me how many rounds were left. I started making allowances for this and reloading when I had an opportunity. The game became more challenging and more engaging as a result. I ended up feeling pleased that the designers of the game had given me credit for having some brains and adaptability. Going back now to an old-school "infinite ammo" game would feel like a step backwards.
If we are going to advance beyond the current doldrums in the swordfighting video game world, we need to make similar reasonable demands on the players. We're confident that they'll step up and handle it, and never look back.
Just as real gunfighters don't lose track of how much ammo is left in their magazine, real swordfighters don't make wild, uncontrolled swings without regard for what their opponents are doing. Both of these are bad ideas in a real fight. A video game that lets you get away with making those errors isn't being honest with you. At some level, you know this.
While swinging your blade into an attack, you'll have time--not much, but enough--to anticipate whether your opponent's sword is going to block yours. Recognizing that, you are, of course, still free to "swing for the fences," but the predictable and fair result of making such an overcommitted attack will be that you'll lose sword sync. That is, your controller's position will get completely out of whack with what's depicted on the screen. Like a shooter player who has just run out of ammo, you'll lose control of the situation.
With the benefit of some game play experience and other user interface features such as tachypsychia (mild slowing down of time) and simple visual, auditory, and haptic feedback, players will learn the knack of anticipating blocks, and other sword-on-sword contact, and then controlling their movements so as to maintain sword sync. This in turn will give them access to relevant gameplay options such as the ability to flow around a block and parry a possible counterattack, or to change the attack into some other technique on the fly.
To translate that into specific user interface terms: all of the moves you can use in a given situation should be represented on the screen by an array of user interface widgets that come and go dynamically based on the game situation. We’ve depicted one possible set of widgets in Technical Update #2 and its associated video clip. Losing sword sync, or letting your character get into a bad position vis-a-vis the opponent, is going to cause a lot of those widgets to gray out or disappear altogether, narrowing your options.
So much for the abstract description of our game design intent.
In the second half of this Technical Update, we now want to get into the weeds a little more, and show why all of this makes sense from the point of view of hard-core swordfighting geeks, or, as our donor Jackalgirl has dubbed them, HSGs.
We’ve had vigorous internal debate over whether and how to release this material, because if we just throw it out there as “proof” that we have got the force feedback problem solved, donors who are coming at this from a more code-centric, software engineering standpoint may feel as though we’re begging the question by changing the subject to medieval swordfighting mumbo jumbo. “Your sad devotion to that ancient religion has not helped you conjure up the stolen data tapes!” But it’s our view that any solution to the software problem has to be rooted in the physical reality of swordfighting. We have to start from the original sources and then look for ways to embody that reality in code.
In that spirit, we recently connected with old friends at the School of European Swordsmanship in Helsinki and Academie Duello in Vancouver--two of the leading organizations in the historical swordsmanship revival that has inspired CLANG. The result is a series of short videos that help to introduce the force feedback “problem” and elucidate why we think it’s solvable from a game design point of view.
First, an illustration of what it is that people are concerned about, filmed at Academie Duello.
Next, a discussion of overcommitment in the fight, from Guy Windsor at the School of European Swordsmanship. The book that Guy is referring to here is, of course, Il Fior di Battaglia, by Fiore dei Liberi (1410).
Finally, a followup from Devon at Academie Duello, discussing some practical approaches to the overcommitment problem from a swordfighting point of view with application to gameplay mechanics.
If you’re still with us at this point, I think you can see that what we’re calling the sword sync problem--loss of registration between the position of the controller in the gamer’s hands vs. position of the virtual sword in the game world--looks like a whole different issue from the point of view of professional longsword fighting instructors. When we come at this from an engineering mindset, it’s natural to get hung up on the fully general problem of what happens when a big swing slams into a strong block. And that is a difficult problem to solve, when you put it that way. But people who play CLANG are going to be inhabiting the characters of trained swordfighters, who don’t fight that way--instead they are thinking a couple of moves ahead, adapting to what the adversary is doing, getting ready to flow around it into the next move. We’ve seen some examples of that “flowing around” in the videos from Guy and Devon, and we’re hoping that experienced gamers--who’ve had to master equally challenging moves when playing other types of games--will see that this style of gameplay is learnable, it’s workable, and that it relegates the force feedback issue into the category of “things that we can figure out given some time and some resources.”