Welcome to the adventurous world of Lost Souls! In this JavaScript game, you embark on a heroic journey to cleanse a dark cave of menacing monsters, safeguarding nearby villagers. Armed only with a trusty sword, navigate perilous terrain, vanquish foes, and confront the ultimate challenge: the ๐ฅ Fire Demon, in an epic showdown for the realm's tranquility. Lost Souls beckons players to step into the shoes of the hero villagers desperately need.
Note
Lost Souls was developed as a JavaScript game for a final project. It combines immersive gameplay with captivating artwork and audio, providing players with an engaging experience.
- Player Art by Szadi art
- Cave Enemies by LuizMelo
- Final Boss by chierit
- Final Boss Spawn Beam by ansimuz
- Village, Cave & Final Boss Arena by Szadi art
- Village Background by Szadi art
- Final Boss Arena Background by Szadi art
Play as the valiant protagonist on a mission to rid the cave of monsters and protect the villagers. Defeat enemies, navigate challenging landscapes, and prepare for the ultimate battle against the fearsome Fire Demon.
Interested in the game but don't really want to download it? This is a demo video for you then :)
lostsouls_demo.mp4
FIRST OPTION
- The link in the about (image below) OR click this link

SECOND OPTION
- Download the repository by whatever means you'd like
- Open the
~/Lost-Souls/Lost-Soulsdirectory - Now, simply run the project locally (I suggest using the
Live Serverextension onVisual Studio Codebut however you want to run it works fine!)
This project was made for my 5th semester Computer Science Game Programming course's final project which got a 94.4% :)
The whole thing was done over the course of 2 weeks, but the actual coding and building was more accurately a week. I had a great time working on this and think it turned out pretty good!
The game isn't perfect. My friend (NoahGJAC) and I spent a long time trying to work through these bugs but we ultimately had to sacrifice them so that we could focus on getting everything we wanted out.
- Movement
[STILL IN-GAME]- Your character's movement feels slippery, almost like you're ice skating. This could be fixed by setting the movement to 0 when you change directions or stop moving
- Collision detection
[STILL IN-GAME]- Our teacher mentioned to the class that collision detection is a challenging issue that game devs often struggle with and I can tell why. I honestly spent hours trying to figure out what part of the player hitbox I wasn't checking to no avail :( so if you really try to break it, you can walk through some walls and even sometimes get stuck.
- Map rendering
[RESOLVED]- Prior to the project, I had never even thought about how to render or even create a map. To build the map I used tiles from Szadi art which look great! The only issue is I didn't realize that rotating a tile in Tiled's map editor would cause so many problems. Because the tile was not recognized as a sprite in the tilesheet, it essentially corrupted all rotated tiles. The issue here is that I rotated a lot of tiles to build the maps. To fix this, I had to go through each map and modify the .json's to then create a map that made sense. So the end result are essentially maps designed in .json.
- Hit detection
[STILL IN-GAME]- When you hit an enemy that is mid attack, they enter their hurt state but once that ends, they go back to their attacking state. This is a problem because if you dodge an attack and slide behind an enemy to attack them, if their attack is still in progress, they'll immediately turn to face you and their attack will go through instantly which can result in your death.
Important
Okay! You made it this far, if you're really that interested, below are all the pre-building blueprinting & planning documentations that we had to write up for our project proposal. While not everything we planned on doing caame out in the end reesult, having it all written and drawn out before starting was a huge help for development!
- The player appears on screen.
- The player can move.
- The player can swing their sword.
- The player has animations.
- The player has a valid hitbox.
- The player has a set amount of health.
- The village appears on screen.
- The village tiles are collideable.
- The village has a parallax background.
- The village has a heal station.
- The village's heal station heals the player.
- The village has a path to the cave.
- The cave appears on screen.
- The cave tiles are collideable.
- The cave has a parallax background.
- The cave has entities.
- The cave has platforms.
- The cave entities have health.
- The cave entities have sprites.
- The cave entities can move.
- The cave entities can attack.
- The cave entities can die.
- The cave entities have animations.
- The cave boss can spawn.
- The cave boss has more health than other cave entities.
- The cave boss deals more damage than other cave entities.
- The cave boss has unique animations.
- The cave boss can die.
- The player can return to the village.
Below are the play states for the game Lost Soul
Below are the states for the main character of Lost Soul
Below are the states for the enemy entities in Lost Soul
Title screen displays a Play & Credits option.
On "Play" selection, the player stands up and appears in the village (shown below).
On "Credits" selection the credits for Code & Assets will be displayed.
The village is a safe-zone for the player. Music will be playing and the player can wander around without worry of enemies.
There will be a building where the player can go to heal after clearing the cave level.
The player will have to fight off all of the enemies. Once the enemies are all dead, a new enemy will appear, initiating the Boss fight.
The boss is a lot more powerful than a normal enemy, he also has more health.