Project Origin
Lich Usurper was a project created over the Spring Semester of 2021 as the only assignment of our Project Development class. Our group consisted of 3 programmers and 2 artists. It was created with the theme "Death is not the End". To fulfil this theme both our player character and our enemies were themed and/or had mechanics related to coming back to life. The game is a roguelike game with a randomized dungeon and ended up having bullet hell elements.
​
My Role
As one of the 2 more experienced programmers in our group, I was put in charge of many major parts of the game. I was in charge of coding the enemies, player, item drops, economy, as well as assisting the other 2 programmers with anything they needed help with. There were 2 main things I was asked to help code to assist with the other aspects of the game. The first was to have the doors lock when the player entered the room and unlock when all of the enemies were killed. The second was the custom health bar.
Enemy Mechanics
There are 3 main enemy types in Lich Usurper. Zombies would follow the player to do 2 quick melee attacks at the player. Skull Spikes were immobile but would shoot red orbs at the player. Skeletons would throw 2 bones in quick succession and would run away if the player got close. Whenever an enemy was killed it would drop a blue gem that could be picked up. There were also 2 variations of traps. In the first dungeon wood spikes would pop out of the ground if something stepped on them. The second dungeon had suits of armor that swung their halberd down if something stepped in front of it.
Player Mechanics
The player is able to move around using WASD. They are able to perform 2 attacks. With a left mouse click they swing their sword for a heavy hitting short range attack. With a right mouse click they can shoot a blue orb for a light damaging ranged attack. To fit in with our given theme the player does not fully die when they run out of health. After hitting 0 health they resurrect into a spectral form. In this form you have a smaller health pool that cannot be increased and your body fades away as your heath decreases. Picking up a health potion restores their body but not their soul.
Boss Mechanics
Infernal Hound
This boss will move to a side of the room before lunging at the player for heavy damage. Going along with our theme the Infernal Hound will resurrect when killed. He takes on a red skeletal form and changes his tactics. Rather than go for lunges he will chase down the player and bite at them. After this boss is killed a portal opens in the room to take you to the next dungeon. You can continue to explore this dungeon for more upgrades if you choose to.
Boss Mechanics
The Lich
This boss would laugh when the player entered the room. His laugh summons portals that minions come through. The boss is immune to damage and switches between a melee and ranged stance on a timer while his minions are around. After the player kills the 4 spawned minions the boss falls to the ground and becomes vulnerable to damage for a set time. Afterwards he gets up and summon more minions.
Animation Webs
Our 2 artists did not know how to use Unity so they would drop all of the sprite sheets into the project folder and let the programmers do the animation. I took this upon myself since I had never had experience with it and was interested in learning. Our player was able to turn in 8 directions and could perform any of their actions in those directions. To ensure the character was facing the correct way at all times I had each action linked to its direction while movement and idle were linked to every other direction. All idle and moving animations were linked in 2 circles with every direction for each being able to transition to any other direction in its circle. This was recreated for the enemies using 4 directions instead of 8.
​
Animation Events were something I learned about halfway through the project when II was first given the sprites for the player. Using those I was able to control when damage was dealt or when projectiles were shot through the animations rather than through the timers in the code that we had been using originally. After learning about these all of our code was rewritten to incorporate the animation events to call generic functions at set keyframes for more consistent and fluid sounds, damage, and projectiles.
Remmy's Shop
Remmy's shop was a late addition to the game. We had discussed wanting an economy and a shop when we were coming up with the original idea for the game, but it did not come up again until we were cleaning up bugs to turn in the project. I added the gem drops on enemy deaths, the shop room, and the shop menu myself. We felt it was a needed addition and it really helps ease the difficulty of the game. The shop items consisted of 4 buffs. 1 of these buffs would also spawn in the middle of each room once the room was first cleared.