top of page

Mammonite (2019)

Duo Project - Combat Designer

Mammonite (2021): Video

The game

A lone hero in a postmodern city. A world where streaming is rampant, popularity is status, and money is power.

  • An Unreal Engine school project being made by 2 of us in our final year in Digipen. I was in charge of combat and core design, while my partner was in charge of level design. We used assets from the Unreal Marketplace.

  • A hack-and-slash action game featuring weighty combat with a strong focus on deliberate choices

  • An experiment trying to adapt the combat design methodologies of Mitsunori Takahashi, the battle director of Final Fantasy VII: Remake and Kingdom Hearts 2.

Mammonite (2021): Text

Gameplay Footage

Mammonite (2021): Text
Mammonite (2021): Videos

Design Process

Mammonite (2021): Text
Mammonite_concepting.png

Key Points I Definitely Wanted While Designing the Combat

One-Button Combat

Rather than expend a player's concentration of executing different attacks and combos, I aimed for combat that was simple in concept and execution to allow more focus on the battle situation.

Distinct weapons and actions

Even with the addition of different weapons, they must all affect battle differently from each other. Not just offer different movesets.

"This is it!" Deliberate moments

Clear opportunities that the player can weigh their choices against. Direction in how they choose their targets.

Mammonite (2021): Features

The Mechanics

The mechanics I worked on to create my desired game feel

Stagger and Direct Damage

Two kinds of damage can be inflicted on enemies:
Direct Damage is regular damage dealt to HP. When an enemy reaches 0 HP, they are killed.

Stagger Damage cannot kill an enemy no matter how much is accumulated, but it is easier to inflict than Direct Damage.


Here's the gimmick:

Upon receiving Direct Damage, all Stagger Damage is converted into Direct Damage.

Different weapons inflict different kinds of damage. Different actions such as Parrying, attacks from NPCs; will also inflict different kinds of damage.

My motivation behind this gimmick was to create situations for the player can read and act upon, as well as to be able to create those kind of situations with elements outside of the players' control.

mammonite_eg1.jpg

An A.I. teammate

An NPC ally that floats around, peppering the enemy with bullets that inflict Stagger damage. Parties where members fight as individuals didn't feel like what teamwork should feel like. So, I pursued the NPC's presence feeling incredibly helpful, but ultimately inconclusive without the player's participation.

Admittedly, when I implemented this, it made battles end faster and took away from some of the player's fighting. However, it did create those moments I wanted where some enemies would clearly be more weakened that others, prompting the player to make decisions which enemy to target. I decided it was worth the trade-off.

mammonite_eg2.jpg

Making attacks feel good

I aimed to emulate physical feedback the way Kingdom Hearts did it: knocking enemies about with every attack felt simple yet so effective. I also included attacks that streamed seamlessly into aerial combat, and I made sure that enemies couldn't be killed by anything other than a combo finisher. It was a lot more satisfying than enemies dying mid-combo.

From the beginning, I planned our scope to have only 2 types of combo-finishers. One on the ground, meant to create space with a huge AOE, and one in the air, used to single out an enemy to batter. It was very important to me that every move served a very distinct, different purpose. As much as possible, I wanted the player to think "In this situation, I want to use THIS move and I know how to use it."

I considered making even more fleshed out air combat, but ultimately decided against it. I felt that unlimited actions at any given time contradicted decision-making in favor of random button-mashing. I captured this by resetting the combos only upon landing. This, I felt, created a sense of believability and weight in the combat.

mammonite_eg3.jpg

Guarding, Evading and Movement

These mechanics are quintessential to hack-and-slash games. The core of this game's feel is being able to seize opportunity, so I made the momentary Guard not only stun the enemy, but also inflict plenty of stagger damage, rewarding the player for their perfect timing and continuing the flow of attack.

It took a long while sifting through many sound resource packs to find SFX that fit. I had to tweak those I couldn't directly use. The sound effect of the successful Guard I'm quite proud of. I wanted something like a "PINGGG!!" with a high-pitched, slightly resonating bass-kind of feeling, but I couldn't quite find a sound like that. By adjusting the pitch and layering 3 different sounds together, I managed to get what I wanted. It made successful parries feel really good!

Most of the animations I got from Mixamo. Some worked, others I had to tweak quite heavily in order to deliver that fast-paced "battle feeling". The sprinting animation with the melee weapon is one of them!

mammonite_eg4.jpg

A lock-on I could improve on

The one thing that bugged me from start to end was how to implement the Lock-On. It was necessary to use this over reticle aiming because of the amount of knockback and potential air combat this game had, so I definitely had to figure it out. It took 1-2 weeks of tutorial watching and I still struggled with it.

At this point, through the hacky use of a long Trigger box, it definitely works better than it did at the beginning, and it works for what it needed to do, but it definitely feels barbaric, hahaha... If I could do a similar project again, with this experience, I'd definitely try to figure out a better way of implementing it.

mammonite_eg5.jpg
Mammonite (2021): Projects
bottom of page