Unity, Aseprite

Limbo Game

Scroll

Limbo (working title) is my current passion project. Created entirely by myself, Limbo is a 2D platformer roguelike, focusing on interplay between 16 different spells.

This project has taught many lessons in game development that I plan to take with me to other projects. From best coding practices & UI, to physics & game balance, this page will give a quick overview of all major systems and how I made them. The game is far from complete - still lacking a lot of art and juice - but it is fully playable.

I’m extremely proud of how robust and scalable these systems are. As it is, the project is ready for full-scale implementation. The finished game should provide 20-30 hours of gameplay.

UML Class Diagrams depicting the systems for spells, enemies, and dungeon generation. Of course, there are more type of spells and enemies, but they work in much the same way as those shown.

The player starts the game in the Spawn room. It contains no enemies, but four wardrobes where the player can swap with spells they’ve unlocked. In the beginning, the player only has the Wind spells unlocked.

Defeating enemies awards the player with EXP. Upon leveling up, the player can choose to buff one of their spells (more damage or shorter cooldown) or buff the player stats (more health or more mana).

Treasure rooms drop special power-ups unique to each spell. For example, the BubbleBall glove spell splits into three damaging droplets upon hitting terrain. It’s power-up can increase it from three droplets to five. All power-ups and spell/player buffs reset on each play-through.

The boss drops a spell upon death. If they so choose, the player can swap it with one of their current spells. After exiting the dungeon, the player can unlock one(1) spell and heal to max HP at the seamstress.

Spells are divided into four different slots: Glove spells, Mantle spells, Boot spells, and Hat spells. From this, spells are divided into four elements - Wind, Lightning, Fire, and Water.

Every spell is unique, and each element excels in one aspect of gameplay; Fire spells focus on raw damage at the cost of high cooldowns. Water spells focus on AoE damage and crowd control, lacking single target DPS. Every element has its niche use, and drawbacks associated with it.

Standard fighting game mechanics are implemented: spells have their own windups, ending lag, interruptions, and stuns.

It was important to me that each element set worked well with each itself, but allowed room for experimentation. Basic combos should be intuitive, but ‘better’ or more unique combos are available through element mixing.

Two randomly generated dungeons and their connections. Green Square shows the start room, White shows combat rooms, Yellow is a treasure room, and Red is the Boss room.

The wind spell set is shown above. In order of usage: Mantle spell, Hat spell, Boots spell, then Glove spell. Again, there are three other spell sets all with their unique ways of getting through this test course.

It was important to me that every spell had some sort of platforming application in addition to its use as a damaging spell. I plan on reworking my current dungeon rooms, and using the principles of difficulty flow to make early dungeons easier to navigate and express than later dungeons.

A work-in-progress animation for an enemy attack

There’s a lot to be done, but I’m super proud of how far this project has come. My programmer art isn’t the best, but I’m in the process of remedying that with world building and story.

This project is a blast to work on, and I’m super excited to see where it goes!

Next
Next

Hands on Deck