Warlander Devblog #2: Slice and Dice
Let’s talk about innovative slicing mechanics of Warlander! It is unique from both gameplay and technical aspects, and we will cover both in this blog.
Imagine a situation where you find yourself surrounded by enemies. You have nothing else but your trusty light-blade. How will you defend yourself? Will you decide to cut off a leg and cripple and enemy, throwing him out of the fight? Will you try to sever your opponent’s arm to disarm him? Or you can try to behead your enemy with one swift strike? In Warlander you can do it all, based on your decisions and aiming skills.
Progression of your skills and powers actually depends on the slicing mechanics and your skill at aiming. As you fight enemies you will be able to cut off arms, legs and heads and collect them as bloody trophies. They won’t just hang on our wall as decoration, but we will discuss all of this in greater detail in a separate blog post.
How did our slicing mechanics came to pass, you might wonder? One morning, our creative director woke up and thought to himself “How about a game where a barbarian carries a lightsaber?” This was the initial design idea that defined Warlander.
One of the main inspirations for the combat system was Jedi Knight: Jedi Academy, mainly because of the ragdoll physics and the feeling of cutting enemies with a lightsaber. But, combat in Jedi Academy is light-footed, fast paced and has a feeling of “zero gravity” to it. Not appropriate for our massive but nimble barbarian!
Another game featuring slicing mechanism is Metal Gear Rising: Revengeance. This game features a “blade mode” where the protagonist slows down time and cuts his enemies to pieces. We find this very satisfying and entertaining but risk-free. This is why we implemented our slicing mechanics in real time. In Warlander, enemies will defend themselves and strike back while you aim and slice.
So, guided by the question posed by our creative director and inspired by the aforementioned games (among many others) we decided to create our slicing combat mechanics because we wanted to give a sense of control to our players. Unlike in modern hack and slash games where characters perform complex choreography of cuts and slashes with one button pressed, the players control the blade in Warlander. We don’t want the game’s engine to decide the place where the sword will strike, and what kind of injury it will cause. Instead, we leave all of these decisions to the players and we believe this makes our combat more challenging, skill-based, immersive and ultimately fun.
We posted some GIFs of our Warlander’s combat showcasing the slicing mechanics on Reddit a couple of months ago. The initial response of the community was overwhelmingly positive and we can assure you - the slicing mechanics feel as good as they look! A lot of people also wanted to know how did we achieve the real time mesh slicing in Unity. So, we’ve spoken to Danilo - our programmer lead. A word of warning - it is a bit tech savvy!
“At first, we created a system with predefined sliced-up body, basically a group of individual body parts that would be created by slicing up the original body mesh inside the editor. Once the parts were set-up, they would be added to a character who would carry them around hidden.
Then, when a body part was cut, we would replace the original body mesh with this predefined group of meshes that the original skeleton would continue to control - minus the sliced one - that would be dropped on the ground using physics.
We were not too happy with results, as a predefined cut will always show on the same place no matter where we hit the character. Also, seams would be visible on places where the remaining parts of the body meet.”
“That’s why we created a new system that calculates precise cuts in real time based on the direction the blade was moving. We would construct a plane using the weapon’s velocity vector, then we would detect bones above and below the plane and create separate meshes for each group. We would go through each bone of each group and collect vertex weight data. Any vertex not weighed to any bone in the group would be discarded from group’s mesh.
Of course, we would have to add vertices where plane intersects with the original mesh and cap the holes in a new meshes, mapping cap faces to a meat texture. If that particular cut was also a killing blow, we would assign a ragdoll system to each group and let the physics do the rest.”
We hope that Danilo’s explanation gives you an idea of how we achieved the real time mesh slicing.
That’s it - for now - about Warlander’s slicing mechanics! Be sure to subscribe to our newsletter to receive updates about Warlander! Also, you can follow us on Discord, Twitter and Facebook. We will post as often as possible and would love to get your feedback and questions.