Badly Lit Spirits



The full game is still a while away but I have two demo levels featuring five bosses to fight and all major mechanics implemented.


Each boss has a completely unique moveset and unique mechanics. They cover a wide variety of concepts and playstyles:

  • The Hibernal Titan, a giant made of ice and frozen rock. Swords simply bounce off him; you need a club or other strike weapon to stand a chance.
  • Melaine and Ciaran, a duo boss. The high priestess Melaine throws ice missiles at you from above while the skeletal minotaur Ciaran breathes fire and swings steel from the ground. She is untouchable until you kill him; when you do kill him, she will teleport to the floor and attempt to resurrect him. This is your chance to finish them both off once and for all.
  • King Ander Goulrich VI, a king turned necromancer in thrall to the Angel of Death. Weak up close but lethal from afar, he wields a deadly arsenal of blinding lights designed to keep you at a distance.
  • Morana, Angel of Death, the Reaper made flesh. She can summon the specters of defeated bosses to aid her in battle, making her a highly adaptable foe.
  • Dina the Adjudicator, the curse-struck prisoner turned avatar of vengeance. My homage to Malenia from Elden Ring, she wields her Withering Blight as a whirlwind of blades on foot and a fierce bird of prey in the sky.

One fun feature of Soulslikes is the ability to break furniture by swinging a weapon at it or simply rolling into it. Rather than making separate models for the broken versions of each type of furniture, I opted to generate them programmatically by using mesh subdivision. Basically, each broken model is divided into triangles, then each triangle gets a fourth point added to make a pyramid-shape shard. Finally, each shard is outfitted with a rigidbody to handle the physics of the shatter, and a timer is set to fade out the new shard’s material and destroy it once it fades out completely.

When you attack and you are standing close enough to most humanoid enemies, a dot product is checked to see if you are standing directly behind that enemy, and if so, a special backstab animation is played. You and the enemy both have an animation, and they play in sync.

Enemy attacks have a parry window; if you are close enough and in the middle of parrying with your shield during this window, the attack is parried, and the enemy is staggered into a special parried state. From here, they can be riposted, which works exactly like a backstab, but takes place from the front instead of the back.

You can customize your character’s skin color, hair color, hairstyle, etc. Characters can be equipped with various weapons and armor, and equipment not only affects character stats but is also reflected on the character model. There are 11 starting classes which each start with different stats and gear.

Weapons can be upgraded directly or infused with various gemstones that add status effects or make them scale better with certain stats.

Weapons of the same type (shortswords, longswords, katanas, clubs, etc.) share an animation set, but all weapons also have a slot for a weapon skill or art unique to that specific weapon. Shown here is Arielle’s Grace, an art found on the unique katana Setting Sun. It teleports you a short distance and the animation gets faster the lower health you are.

Inverse kinematics are utilized to keep your hands on the rungs of the ladder as you move up and down it.

Elevators can act as disguised loading screens between different scenes.

Defeating enemies grants Will, which acts as both experience and currency. Dying results in the loss of all your Will, but you can pick it back up by returning to the spot of your death. Provided you don’t die again, of course.

You can light bonfires to save your progress, and rest at them to restore resources at the cost of respawning all non-boss enemies in the area.

(Note that for ease of rapid prototyping the voice acting is AI-generated for now; I do eventually plan to replace it with human performances when time and budget permits.)

I include here several samples of Badly Lit Spirits‘ user interface, all created using Unity’s UGUI system. Everything is designed to work equally well with either a controller or a keyboard and mouse.