DUSK FALLS (WIP)

Project Summary
Dusk Falls is a single-player hack and slash game where you, the adventurer must defend a small village against hordes of enemies while unravelling the mystery behind them. This project was created by two other game design students and myself, all who wanted to showcase our talents through collaborating on a game. I was responsible for all the programming for the game, as well as designing its numerous systems. My main goal was to challenge myself to create compelling AI enemy systems that would be engaging to interact with. This project is still a work-in-progress, and we continue to work on the game presently. The following showcase demonstrates my progress within the past 3 months.
Gameplay Demonstration
Player Controller
Our game is aimed to be a 1 hour experience, and so I wanted to create a player controls that were simple to pickup but still allowed for some mastery. I was heavily influenced by older 2D Legend of Zelda games, which featured simple yet engaging controls. This is due to a wide variety in enemy types, providing different situations for players to utilize the same controls, rather than using a variety of controls on the same enemy. 
I started off experimenting with different combat controls, specifically combos, attack speeds, and attack ranges. I also continuously improved the visual feedback provided by VFX and UI systems to ensure combat felt polished and satisfying. Below are the development stages of the player combat.
I also wanted to ensure that moving around the village was also engaging, as players would be spending lots of time running from one area to the next. To do this I focused on giving the player the ability to dash and sprint while also having them avoid hazards to make provide a challenge. These combined allowed for the space between highly contested areas to remain engaging for players. 
Utilizing GOAP (Goal Oriented Action Planning)
The AI systems for this game were pivotal to the intended experience and needed to be designed to keep players engaged. In the early stages of development, I had started designing the AI with FSMs (finite state machines). However I quickly realized that my goal of creating several types of AI would not be very efficient if I continued using FSMs. Instead I needed a modular AI system that I could rapidly implement on top of to make various enemy types quickly. 
This lead me to goal oriented action planning (GOAP). I decided to build my own GOAP system from the ground up catering to the needs of this game. The result is a AI system tool that allowed me to efficiently and quickly implement all the AI enemies and allies shown. 
Ally AI Showcase
The design of these allies are based off the narrative characteristics they have in the game. Their purpose during combat is to help the player defend against enemies, and make it much easier to cover more ground. I needed to ensure that the ways they defended represented who they were, and I gave them actions that would mimic human movement, such as spacing and retreating. Shown in the bottom right is Lucille, the town monarch who is very high class. She will keep her distance and throw cocktails at enemies, slowing and damaging them overtime while restoring stamina to the player.
Cass the Blacksmith - Melee Fighter
Cass the Blacksmith - Melee Fighter
Cody the Bug Collector - Summoner
Cody the Bug Collector - Summoner
Squall the Veteran - Ranged Marksmen
Squall the Veteran - Ranged Marksmen
Lucille the Monarch - AOE Caster
Lucille the Monarch - AOE Caster
Enemy AI Showcase
My goal for the enemies was to create a variety of unique interactions that kept players engaged and constantly on their toes.  After designing 5 main types of enemies and testing with players, I felt this goal was very well met. Compared to the allies, these enemies don't feature much reasoning, as they are designed to be somewhat mindless creatures. The challenge with this was creating a fair amount of difficulty without just adding in large amounts of enemies. As shown below, enemies attack in unique ways and react to players differently. Some attack with their body while others utilizing projectiles or AOEs. This is meant to test the player's knowledge of enemy types and how they should approach defeating them. This creates meaningful replay ability through a mix of randomness, knowledge, and mastery.
Grunt - Basic Enemy
Grunt - Basic Enemy
Rat - Quick Enemy
Rat - Quick Enemy
Rat King - Spawner Enemy
Rat King - Spawner Enemy
Mage - Ranged Enemy
Mage - Ranged Enemy
Golem - Tank Enemy
Golem - Tank Enemy
Enemies Targeting Buildings
Enemies Targeting Buildings
Timelapse of AI Movement
Below is a 3x speed timelapse of enemy AI behavior and pathing. Most enemy types spawn from the cave entrances placed around the cliff perimeter, and path towards the nearest building still standing. Other enemy types spawn from smaller tunnels, and wonder around the map waiting to spot the player or a villager. The player's goal is to survive the hoards of enemies until sunrise, attempting to prevent the destruction of village buildings.

Other Projects

Back to Top