The Sands of Majasa Update brought over 30 new monsters, including powerful new bosses. At the end of chapter 9, you have a chance to encounter the Goddess Majasa herself, experience her brutal transformation, and hopefully, manage to take her down. If you are interested in what goes into creating a powerful adversary and interesting boss fight, you are in the right place as we are going to dive into details about the lore, model, design of the encounter, and more.
Majasa, Goddess of the Desert, cares for the wealth, beauty, and perfection of herself and her domain above all else.
To achieve this perfection, Majasa believes in the value of order and has structured her society to this purpose. Her Nagasa servants and human followers are separated into strict castes, from the lowest human orphan to the Nagasa Diamond Matrons who administer her will. Majasa spends most of her time deep under her temple, tending to the vast piles of golden scales and gems shed from her body and meticulously inspecting herself for any sign of flaw or imperfection. Order begets perfection and perfection begets beauty.
Majasa was not always like this. In the Ancient past, Majasa more closely resembled her Nagasa servants. She was a goddess of change who embraced the shifting of the sands, each time she shed her skin she was born anew, the old Majasa discarded. Until one day, her shed skin was overcome with hatred and envy of her beautiful new self and attacked, binding the new goddess to her body and taking her name and power back, refusing to ever let it go.
When it came time for her to shed her skin once again, Majasa allowed the new body to be born from the one she had ensnared and deemed this child the Vessel Maiden, destined to replace the body that was in her grasp once it was no longer able to keep her rejuvenated.
This cycle has repeated for thousands of years, a Vessel Maiden being born just as the previous Vessel Maiden is sacrificed to Majasa so that her beauty can be rejuvenated and empowered, her mass and power far greater than the meek Majasa of the Ancient past. This cycle is threatened however, when the Vessel Maiden Apophis denies this fate and summons the destruction of the Void rather than let herself be sacrificed this way.
Concept and 3D Model
The Nagasa race is, visually, a hybrid of snake and human-like creature and the unique body shape presents a unique challenge to the animation process. One of the goals was for Majasa to feel majestic, but also clearly show where the beauty and perfection end and the dark side of the Goddess manifest. Here you can see several variants our concept artists explored during pre-production.
We knew that at some point in the encounter we wanted Majasa to rip her young vessel from her body so that was something that our 3D artists had to keep in mind and take into consideration. Majasa’s transformation was supposed to be very brutal and bloody and the model had to show the aftermath.
with Sam Corbridge, Monster Encounter and VFX lead
The Majasa fight ended up being one of our most ambitious bosses (only possibly competing with the Shade of Orobyss). We had a very strong backstory and reasoning for fighting Majasa, and wanted to make sure that at least some of that came across in the boss fight. She’s this sort of insane god who leeches the life of her followers to stay alive. Then when one of her followers rebels, it all starts going downhill for her.
We really wanted to show both sides of Majasa. The calm and controlled magical side, and then the frenzied, desperate, wild side. While we could have possibly done this with cutscenes or other interactions with her, we felt this was a fantastic opportunity for a 2 phase boss fight. She starts off very calculated and precise, using her rather long range magic to attempt to eliminate the Traveler. When she ultimately transitions into her second phase, she becomes extremely fast and aggressive. We wanted to get her attitude across in her mechanics as well as her voice lines. The first phase has generally slower, more telegraphed abilities where she doesn’t have to move very much and the second phase has generally faster, less telegraphed abilities where she needs to be up close and personal to really deal maximum damage.
The first phase represents the magical and more calculated side of Majasa
One of the most challenging things in this fight technically was the actual transition. We hadn’t done any sort of 2nd health bar transition in Last Epoch yet, so it was a bit of new ground we were exploring. In the end, we eventually deleted the phase one model and instantly replaced it with the phase 2 model. This required the animations to line up exactly and the appearing/deletion needs to happen nearly frame-perfect. At the end of the day, it really needed many very tiny adjustments to animation values to really get this to line up perfectly. If you have a keen eye (and/or possibly are achieving a high framerate) you may be able to pick out the exact frame that the swap happens.
Testing of the brutal transition
After she was transitioning properly, we had to make the health bar animate up. This was done by having phase 2 Majasa start with 0 health, be invincible and have very rapid health regen over a second or two. This worked well and ended up lining up quite well with the animation and sound design, to really make her feel like a formidable opponent who just got back up.
This approach ended up producing a bug (that actually released live with the launch of 0.8.3!) The bug was that if you dealt frame perfect damage right as the second phase Majasa appeared during the transition, you were able to damage her before her invincibility took hold and were able to kill Majasa’s phase 2 instantly, skipping the entire second phase. When we saw this, we initially thought it was cull, and we spent some time trying to cull Majasa to no luck. Eventually we just cranked attack speed up into the atmosphere and discovered the exploit was related to a single frame on the transition. After that it was a rather simple matter of forcing her to be invincible by default and it wears off after a second or two.
This was an interesting case of a bug so tiny that all of our internal testing missed it, but seeing as our community has grown quite large at this point, it was only a matter of time before someone found it. And someone did, on the first or second day of the patch launch. Luckily, we were able to address it rather quickly andwe hotfixed in a fix for this bug very quickly after discovering it.
Diving deeper into the specific mechanics of the fight, one thing you have to have when doing a giant snake lady boss is a Medusa stare. This is an interesting thing in an ARPG. Locking the character in place is often very polarizing. It’s either deadly, or totally useless. If a boss is doing a big wind up, stuns you, and then recovers from using that ability, oftentimes the stun has worn off. Stuns are most impactful when there are other enemies that will damage you, while the stunner is preparing their next attack. In the Majasa fight, there aren’t really any other enemies. She does summon the crystals, but hopefully you take care of those quickly (you do kill those right?). So having her do a stone stare that stuns the player needed to be quite long to really have any impact. Luckily, it also makes some thematic sense since you are being temporarily turned to stone. Also, we didn’t want the stun to be instant with minimal dodge time, because that just feels bad. The solution we arrived at there was to make the stun slowly stack up on you, before fully stunning you at max stacks. This ended up being the correct approach, and felt like there was plenty of counterplay, and plenty of tradeoff if you did get stunned.
In the second phase, Majasa becomes very aggressive and shows her feral side
The Healing Coffins were thrown in partway through the fight. The team had the idea of her running over to the coffins and sucking the remaining life out of the corpses there. When I first heard the idea, I thought “Well, this is very cool. I have no idea how we would do that.” Luckily we have some wizards on our team who enlightened me and we were able to make this happen. In the end, the Healing Coffins are coded as allies to the player, and Majasa goes over and kills them, and when they are killed they heal her. Which really isn’t very far from the lore reasoning. Getting the animations to line up was a bit of a task as well. Since we don’t ever actually interact with other things like chests opening or grabbing levers or anything, this was a little bit of new ground. The solution ended up being rather simple though, we just fake it! Majasa’s and the sarcophagus animations are very rapid and this helps hide the fact that her hands may not actually touch the lid, or may clip through. If we did a slower animation, it’d be a lot more obvious that she wasn’t touching it.
An early iteration of the Sarcophagus healing phase
On the topic of animations, we had several nightmares while implementing Majasa. She had several scale issues, where when she animated, her entire top half would sort of pulsate to a larger scale. This obviously isn’t what we want to ship with, but is kind of funny to watch. We attempted all sorts of exporting and importing settings and options and eventually landed on some combo that worked out and fixed the issue. I still don’t know why that issue was happening and I really hope it doesn’t come back in future enemies.
Another animation bug we encountered was the tail. It was super rigid and bent strangely, which is not really what a snake tail should look like. After many exports and retries, we eventually found that it was a skinning issue. In Last Epoch, we limit the bones that can affect any given vert in a model. If there are more bones affecting any one vertex then Unity will do its best to lower it and move the skinning into the appropriate places. Usually this works great. In this specific situation, however, it ended up producing very strange results with her tail. We ended up having to send the rig back to the rigger who re-skinned a large portion of it in order to get the tail to behave nicely.
Death animation and a VFX test
Sounds and Voice Over
with John Pata, Audio Lead
LOTS of blood. Looooooooots of blood in there. Sam’s awesome vfx in the death event really allowed me to go hard on the crunchy, gooey-ness of the moment. There is also quite a lot of movement in the animation so I designed some foley sound effects covering Majasa falling and wriggling around in the blood when she falls.
As for the vocals, credit goes to Tamara Linke, a wonderful voice actress who brought a perfect sense of divinity and danger to the performance. Once the groundwork was laid, I applied a generous serving of Goddess-like effects and blended her vocals with other recordings of human screeching and screaming. Tamara provided some great screams in the recording session, so I was able to use these in conjunction with some otherworldly vocal sounds I have in the arsenal to create some bone-chilling, animalistic shrieks.
An important part of every boss encounter in Last Epoch is music and Majasa boss fight is no different. Earlier this week our talented composer Wesley shared more details about creating music for this encounter. Check his blog post not only Majasa fight music, but also about the Scalebane Hideout track.
Hopefully you got a bit of a taste of what it took to develop Majasa and the level of effort and care we put into all of our boss fights. I hope you enjoyed the fight as much as we enjoyed creating it!