Warlock Woe

Project Summary

Warlock_Woe.mp4

Description

Play as an evil warlock in this rogue-like action game. Find your missing spell pages to upgrade your magic with additional effects, such as frozen, explosion, paralysis, etc. Escape the dungeon and bring your vengeful wraith upon your foes!

Game Engine: Unreal Engine.

Duration: 2 months.

I was the level designer and scripter for this project. What I did:

  1. Designed and blocked out levels,

  2. Wrote dialogues,

  3. Edited cutscenes,

  4. Scripted level mechanics, player abilities, player controls, and enemy AIs.

  5. And implemented SFX and VFX.

Screenshots

Project Development

Warlock Woe was my first group prototype project. Due to my lack of group project experience, I chose to make small-scale levels and focused more on combats and combat encounters. Each level introduced a new environment and a new spell. I used cutscenes and dialogues to teach players what the spell does and how it interacts with other systems.

After the first playtest, it became apparent that the games needed an additional dose of excitement. By analyzing ARPG like Diablo, we decided to add environmental destructions to empower players and make the gameplay more fun.

Creating Environmental Destruction

I didn't know how to properly set up Apex Destruction (a plugin in UE4 that simulates object destruction). Any physical collision could cause an object to break into pieces.

I only wanted spells to cause destruction. So I added a collision box to protect breakable actors from player physics. Every spell actor has a physical collision sphere. When a spell collided with a breakable actor, it removed the collision box on that actor first (without destroying the spell actor itself). The spell actor would continue advancing until it made contact with the mesh of the destructible actor, causing it to collapse.

Each fragment of a destroyed object has physics. Having too many of them on screen can slow down the game's performance. So I made them disappear two seconds after they were destroyed.

Back then, I didn't have the habit of creating prefabs and parenting. Instead of making a parent class that could be inherited by all destructible actors in the game, I made an individual actor class for each individual destructible actor, which was very inefficient.

Environmental Interaction

Seeing environmental destruction in action had prompted new ideas about how different elemental spells could interact with the environment.

There are 5 different spells:

  1. Magic missile (the default spell),

  2. Firebolt,

  3. Ice shard,

  4. Lightning strike,

  5. Magic Bomb.

Firebolt can detonate explosive barrels and cause explosions that destroy nearby objects. Enemies on fire take damage over time.

Ice shards can freeze enemies in place. I thought about using ice shards to freeze water surfaces, causing enemies to slip when they were walking on icy surfaces. Due to lack of time, I scratched that idea.

Lightning strikes can electrify water surfaces, causing anyone standing on them to be electrified (paralyzed, unable to move).

Magic Bomb does AOE damage. Like an explosive barrel, it can destroy the nearby environment.

Electrify the puddle, case enemies to be electrified. A paralyzed enemy drops his torch, which lights up an explosive barrel nearby, causing an explosion that breaks the wall.

Using Magic Bomb to break the bridge

Things I learned

Warlock Woe was the project that made me start thinking about object-oriented design and data structures. Any scripting projects I did before were small, and the codes were messy. But after working on larger group projects, I started to think about parenting and interface, the relationship between different systems, and how they interact. Designing and planning systems ahead of development saved me a lot of time and make my code more organized; using this approach allowed me to prototype more complex game mechanics and combat systems (like the one in Desync).

Credits

Animator, Combat Designer, & Project Lead,

Jeffery Byczko

Level Designer & Scripter

Tianzhi Shen