top of page

LOST SYNDROME

Lost Syndrome is a First-Person Action-Adventure game I developed with the help of 3 other developers for my midterm project during my time at university. The development process lasted 3 months; from the beginning of December 2020 to the end of February 2021.

Summary

Lost Syndrome is a place of legend. It is said to contain countless valuable relics and artifacts and just as many traps. The player enters the Lost Syndrome seeking to find something valuable (and live to tell the tale). Survive deadly traps, battle unique enemies, retrieve powerful artifacts, and the player would have their name etched in history with the few people who managed to escape Lost Syndrome.

PLAY THE GAME

*** If you want to play the game for yourself, consider the link(s) below. ***

WebGL (browser) Version: https://simmer.io/@HopefulFoxes/lost-syndrome
Game Installer: https://mctigerr17.itch.io/lost-syndrome

MY ROLE | What I Worked On

AI

- Enemy patrolling funtionality

- Enemy attacking functionality

Back-End

- Game-Manager

Gameplay

- Weapon functionality; crossbow and magic staff
- Player abilities; Fireball, Lightning

- Item pickups; artifacts, health, mana, and antidote

User Interface

- Heads Up Display (HUD), for communicating information to the player

AI

As an AI Programmer, I programmed the attacking behaviors of the enemies. I was also in charge of programming the patrolling behavior for the enemies as well.

Enemy Attacking

This game has two enemy types melee and ranged. We have 3 melee enemies that use a similar attacking behavior. If the player is seen, the enemies will get close to the player and attack dealing damage. For the ranged enemy, I programmed the attacking behavior to be a bit different than the melee enemies. When the player is "detected", the ranged enemy will get within a certain distance of the player, when it gets within that distance it will start firing projectiles at the player. I created the projectiles using Unity built-in objects and Particle System

Enemy Patrolling

This was my first time working with AI on a game, so the enemy patrolling functionality wasn't too complicated. I achieved this by creating different patrol points on the map. Each enemy on the level will have access to the 3 patrol points closest to that enemy's starting position, which it will store in a list. When it's time to patrol, the enemy will randomly choose one of its 3 patrol points and move to that location. When that patrol point is reached, the enemy will stay there for a short period of time and randomly choose another patrol point. 

GAMEPLAY

Most of my contribution to this project was on gameplay. As a gameplay programmer, I programmed the player weapon/attacking system (crossbow and magic staff). I was also in complete charge of player abilities and pick-up items. This included creating the assets and programming their functionality.

Crossbow

The crossbow is one of the 2 weapons I implemented in the game. The crossbow is the primary weapon for the player which allows the player to fire arrows at enemies. Whenever the player clicks the left mouse button the crossbow will fire an arrow. The crossbow moves backward (showing recoil) and an arrow trail is visible from the tip of the crossbow.

This was my first time working with raycasting and combining it with arrow movement and trail made it the most challenging aspect of this system. A raycast is fired forward from the crosshair (middle of the screen). If the raycast collides with an enemy the enemy will take damage. Every enemy has a small weak point that is visible somewhere on their body. If this weak point is hit, increased damage will be dealt, killing the enemy instantly.

Magic Staff

The Magic Staff along with its subsystems (mana and abilities) was my favorite system to implement in the game. I created the mana system, the magic staff's functionality, along with the player's abilities and functionality. I also created the animations and synced up the sound for this weapon.


The magic staff is the player's secondary weapon. It is used to fire special abilities (fireball and lightning) at enemies. The staff uses the mana system as ammunition. After every use, the player's mana(back-end) and mana-bar (front-end) will decrease. The player will not be able to use the staff's abilities if they don't have enough mana. Player mana can be restored via the mana pick-up items placed throughout the level.

Staff.PNG
Fireball Ability

The Fireball ability can be used via the magic staff if the player has enough mana. I programmed the fireball's functionality and I created the associated fireball asset using the Unity Particle system.

When used, the fireball is instantiated from the tip of the staff and moves forward. If the fireball collides with any enemies it will deal increased damage, killing the enemies instantly. The fireball gets destroyed when it collides with an enemy, the flood, or a wall.

Lightning Ability

The second player ability I created was the Lightning ability. I programmed the lightning's functionality and I created the corresponding lightning asset using the Unity Particle system. The lightning ability behaves much like the fireball ability except it does 30% less damage. Another difference is that lightning can travel through enemies. This can result in the player defeating multiple enemies -- (if the enemies' health is low enough) -- with only one use of this ability.

Lightning.PNG
Dashing Ability

The third and final player ability I did was the player's dashing ability. With a 5-second cooldown, this one is a passive ability, meaning it does not require any mana. Using the dash ability quickly propels the player forward. This can be used to escape enemies or dodge enemy projectiles.

This system was one of the ones which I thought would take a short time but ended up taking much longer than I anticipated. The reason for this was because the player would always teleport to the new location instead of smoothly lerping forward. I fixed this issue using Unity's built-in CharacterController "Move" function.

Item Pick-ups

​

 

 

 

 

 

 

 

 

 

 

 

Having item pickups was crucial for the game because we needed a way to reward players and help them out. I was responsible for creating the assets and implementing their system functionality as well. These included the health, mana, antidote, and ancient artifact pickups.

 

Health.PNG
Mana.PNG
Antidote.PNG

The health pickup restores player health. If the player is low on health they will be relieved to find one of these laying around on the map. Implementing this was pretty straightforward -- access the player's current health and add to it. each health pickup restores the player's health by 20.

The mana pickup behaves much like the health pickup but it restores player mana. If the player is low on mana, this item will restore some of their mana allowing them to use the special abilities. The enemies hate this one. Each mana pickup restores the player's mana by 10.

The antidote pickup is used to cure players of poison. There is a poison cloud trap in the game. If a player interacts with this trap they will be poisoned; continuously taking small amounts of damage until death. The antidote item will stop this effect and also grant the player some health.

Artifacts

The ancient artifacts are one of the core aspects of the game. In order to beat the game, the player must collect all 3 artifacts and go through the portals. The artifacts were one the first things I started working on. I created the artifacts assets using the Unity Pro Builder modeling tool. I spent a lot of time making these models and I am very proud of how they turned out. After the artifacts were finished it was time to start programming their functionality. This includes how to pick them up and how the game keeps track of which ones have been collected by the player. This is done via the game manager (another system I implemented). I also created the UI elements (images and animations) for the artifacts. The 

SoulArtifact.PNG

Soul Artifact

SpaceArtifacts.PNG

Space Artifact

TimeArtifact.PNG

Time Artifact

UI (User Inferface)

As a UI developer, I was responsible for the HUD and all of its corresponding elements. Icons, animations, status effects, images, and minimap were all things that I put in place.

HUD

The Heads Up Display (HUD) is the primary way of relaying information to the player. Information like health, mana, artifacts collected, weapons equipped, and where the player is aiming, are all displayed on the HUD. Whether the player is taking normal or poison damage is also relayed to the player via the HUD system -- blood splatters will have a dark green effect when the player is poisoned. In addition, the HUD also contains a minimap, which gives the player an aerial view of their surroundings. I was in charge of creating all of the HUD elements and connecting them to their corresponding back-end systems. Making sure everything on the HUD works and updates as expected was my main focus.  

HUD_Labeled.png

HUD Elements labeled

BACK-END

On the back-end side of the game, I only worked on the game manager, which was used to manage the player's progress towards completing the game.

Game-Manager

This system was used to keep track of things happening in the game. This is a singleton system; there is only one instance of it and it is carried over from scene to scene without being reloaded or destroyed. The Game-Manager keeps track of things such as player health, player mana, and how many artifacts the player has collected. This was probably the hardest system to get up and running because I had never made one prior to this. I didn't even know what a singleton

GameManager1.PNG
GameManager2.PNG
bottom of page