Documentation + User Guide


I would recommend reading the word document I uploaded. Some of the formatting for the assets list was acting strange so I'm not sure if I fixed it all.

Additional features:

  • Sound effects and background music
  • Character Art
  • Tilemap Art
  • Title Art
  • UI Art
  • End of game screen
  • Restart game button
  • Settings screen
  • This might be a stretch to be honest. I’ve only got a settings screen,
  • Artificial Intelligence
  • Path finding
  • Multiple Levels (?)

The final version of the game is fairly close to the concept document. Although that might be because I didn’t go all that in depth on the actual game features and mechanics.

The game has 11 different enemies who are implemented completely. Some enemies could do with a bit of polish, the archer enemy will just keep trying to run away from the player even if it hits a wall without firing back.

The game has 3 mini boss wizards who attack the player in a different way. There is also a main boss who can only be fought after defeating the 3 mini bosses. After defeating enemies the player will gain exp and eventually level up. Levelling up increases their health, mana and the amount of mana that is refreshed every second (unless upgraded). There are 27 different spells in the game with some being (hopefully) direct upgrades to the previous version. Implementing the 27 different spells was what took the majority of the development time. There are 5 different items, a small health and mana potion, a large health and mana potion and a potion that decreases the time taken for you to regain mana. There are “hidden” passages that can only be opened by lighting the torch near the passage.

A feature that I didn’t implement was taking reduced damage from enemies and I had planned on using spawners for the enemies but just never got around to it. I didn’t implement the reduced damage simply because I couldn’t figure out how I wanted it to work and spending so much time on such a simple concept wasn’t the greatest use of my already limited time. I wanted the reduced damage to have a threshold were it would simply ignore damage if it was too weak, subtract a flat number from the damage if it was within a different range, subtract a percentage of the incoming damage if it was within a larger range and finally just do all damage if too there was too much incoming damage. I suppose I could have just gone with a percentage, or similar, but it seems I was willing to die on this particular hill for whatever reason. I implemented a period of invincibility when you dash instead. The game project suffered from a bit of feature creep, I also think I made the project to large for myself. I think the only reason I managed to “finish” the game to the state that it is in now is because my other subjects were not demanding at all for time requirements so I could spend a decent chunk of time on this project. Some of the features that I hadn’t planned on adding were the passages, adding a save system you kill any of the bosses which I found harder then it probably should have been when and having the 11 other enemies. I had initially planned on only having maybe 3-4 with no mini bosses. There wasn’t really a number of spells I wanted to originally have; my concept document states I was just going to add any spell that I wanted to.

All in all, I am quite happy with the way the game turned out. If I were to revisit this project at a later date, I would definitely google the correct way to do things as I just played around in the editor until I got the result I was after which has made some systems quite strange to an experienced unity developer, I’m sure. An example of this is the 30 different polygon colliders found in the main boss because I couldn’t figure out how to change that type of collider in the Animation frame, so I just enable and disable the other colliders for that frame which probably makes you ill just thinking about.

Tester feedback is in a different devlog: Week 12—Testing - Magical Dungeon Hunter by charliecooper03 (itch.io)
Thought I had a second place where I talked about the testing, but I guess I didn’t.

 

Asset List:

Objects:

  • Chest from tutorials

Scripts:

Font

Audio:

Art:

Everything below was created by me.

DISCLAIMER: The scope of the game continued to grow as the weeks went on so a lot of code that is basically the same and should really be methods instead of entire new scripts didn’t happen because I was lazy and copy pasting the scripts was easier then reworking some of the major systems I implemented near the beginning of the project.

I also got lazy naming the prefabs because it was a “personal” project and I didn’t know people were going to see what my beautiful naming scheme was.

 

Scripts:

  • SpellSlots:
    • Holds the three spells in the spell hotbar slots.
    • Should’ve incorporated into playerstats
  • EightWayMovement:
    • The script that lets the player move in 8 directions.
    • Includes the sprinting functionality.
  • PlayerStats:
    • All the stats the player has.
    • Health, mana, learntspells, inventory, mana refresh rate, increased mana per tick, shield health, spell slot and level.
  • PlayerInteract:
    • The script called when the player clicks in the world to give the correct outcome.
  • GameDataReader:
    • The script that stores all the players data from spellslots and playerstats to be saved .
  • GetPlayerStats:
    • A simple script that grabs the playerstats so children gameobjects can easily also access playerstats without needing the parameter themselves.
  • SetHealthUI
    • Sets the health UI element to fill the percentage of the players health left.
    • E.g., 15/20 health would show the health bar at 75% full.
  • SetHealthText
    • Sets the health text.
    • The actual amount of health the player has.
  • SetManaUI
    • Sets the mana UI element to fill the percentage of the players mana left.
    • E.g., 15/20 mana would show the mana bar at 75% full.
  • SetManaText
    • Sets the mana text.
    • The actual amount of mana the player has.
  • SetSprintUI
    • Sets the sprint UI element to fill the percentage of the players stamina left.
    • As the player continues to sprint the bar will decrease and gradually increase as time increases.
  • InventoryNeeds
    • Holder for frequently accessed fields for children of gameobject
  • SpellInventory
    • Script to display a spell in the hotbar
  • PotionHotbar
    • Script to display the active item in the hotbar
  • ChangeSpellsInventory
    • Script that shows the entire inventory when E is pressed.
    • Name doesn’t correctly describe behaviour as items are also shown.
  • EnableIfEntityDead
    • A script that will enable a gameobject when an entity is killed
  • DisableGameLoading
    • A script that will tell the game to start the game from the beginning
  • SceneSwitcher
    • A script that changes what scene is active
  • TeleportSpell
    • The script that controls the behaviour for the teleport spell.
    • Will only teleport a specified distance and can do damage on entry and exit.
    • Inherites from the Spell script.
  • FireballSpell
    • The script that controls the behaviour for the fireball spell.
    • Will shoot a fireball in the direction aimed. Does a specified amount of damage with max collisions.
    • Inherites from the Spell script.
  • SpectralSpell
    • The script that controls the behaviour for the spectral spell.
    • Will shoot a spectral “entity” in the direction aimed. Does not collide with walls and homes to the closest enemy. Does a specified amount of damage with a life time.
    • Inherites from the Spell script.
  • MagicSwordsSpell
    • The script that controls the behaviour for the magic sword spell.
    • Will generate magic sword(s) that follows the player. When swords are within some distance of an enemy they will detach from the player and attack the enemy. Does a specified amount of damage with a lifetime.
    • Inherites from the Spell script.
  • ManaShield
    • The script that controls the behaviour for the mana shield spell.
    • Will add durability to the players’ mana shield.
    • Inherites from the Spell script.
  • PhysicalShieldSpell
    • The script that controls the behaviour for the physical shield spell.
    • Will summon a rock wall with durability to absorb enemy attacks.
    • Inherites from the Spell script.
  • StunSpell
    • The script that controls the behaviour for the stun spell.
    • Will stun all enemies within a radius of where the spell is aimed.
    • Inherites from the Spell script.
  • BlackholeSpell
    • The script that controls the behaviour for the blackhole spell.
    • Summons a blackhole that will pull all enemies within a radius into itself. Does a specified amount of damage and has a lifetime.
    • Inherites from the Spell script.
  • TornadoSpell
    • The script that controls the behaviour for the tornado spell.
    • Summons a tornado that will pull all enemies within a radius into itself. Does a specified amount of damage and has a lifetime. Will be shot in the direction it was aimed.
    • Inherites from the Spell script.
  • HealSpell
    • The script that controls the behaviour for the heal spell.
    • Heals the player for a specified amount.
    • Inherites from the Spell script.
  • LightningSpell
    • The script that controls the behaviour for the lightning spell.
    • Summons an arc of lightning in the direction aimed. Does a specified amount of damage.
    • Inherites from the Spell script.
  • LightningBoltSpell
    • The script that controls the behaviour for the lightning bolt spell.
    • Summons an arc of lightning where aimed. Does a specified amount of damage.
    • Inherites from the Spell script.
  • ImplosionSpell
    • The script that controls the behaviour for the implosion spell.
    • Summons a huge implosion where aimed. Does a specified amount of damage and pulls all enemies into the centre.
    • Inherites from the Spell script.
  • AoeDamageSpell
    • The script that controls the behaviour for the aoe damage spell.
    • Summons a normal fireball in the direction aimed. Does a specified amount of damage and explodes on contact with an enemy.
    • Inherites from the Spell script.
  • SeekingDamageSpell
    • The script that controls the behaviour for the seeking damage spell.
    • Summons a fireball in the direction aimed. Does a specified amount of damage. Fireball tracks enemies.
    • Inherites from the Spell script.
  • RingOfFireSpell
    • The script that controls the behaviour for the seeking damage spell.
    • Summons a ring of fire in the direction aimed. Does a specified amount of damage and has a lifetime. Ring of fire follows the player.
    • Inherites from the Spell script.
  • NoSpell
    • The script that controls the behaviour for the no spell spell.
    • Does nothing and is used as a placeholder while the player has less than 3 spells.
    • Inherites from the Spell script.
  • Spell
    • The script that controls the behaviour for spells.
    • Stores the mana cost and cooldown.
    • Stores the spell icon and the description.
    • Stores the id of the spell.
  • HealthPotion
    • Restores a specified amount of health for the player.
    • Inherites from the GameItem script.
  • ManaPotion
    • Restores a specified amount of mana for the player.
    • Inherites from the GameItem script.
  • ManaRefreshRatePotion
    • Increases the rate at which the player restores mana e.g. x/1s to x/0.9s.
    • Inherites from the GameItem script.
  • GameItem
    • Stores the name and description of an item.
    • Stores the icon of the item.
    • Stores the tier and id of the item.
  • GameItemHolder
    • Stores a game item and the amount of that item.
  • GameItemIDHolder
    • Stores a game items’ id and the amount of that item.
  • HitByFireball
    • When hit with a fireball tagged entity will disable a object and all its children to create “secret” passage ways.
  • ObjectID
    • Holds an ID for a particular gameobject so it can be found when loading in the save data.
  • BossDoorUnlocked
    • When the mini bosses are defeated, the door will open up. When the main boss is defeated, the doors open up again after being closed based on some condition.
  • RoomEntered
    • Closes the doors when triggering a collider.
  • PlayAudioOnEntry
    • Starts a different sound track when triggering a collider
  • DisableEntities
    • When the collider is trigger disables the gameobjects provided to it.
  • FixRoomEntered
    • The boss can glitch the player outside the arena so this script checks if the player is outside the arena and opens the doors up again for another attempt at beating the boss.
  • SummonSkeletons
    • Summon skeletons at intervals
  • EnemyStats
    • The player stats equivalent for enemies.
    • Stores their health, exp gained on defeat and damage modifiers.
  • EnemyDamaged
    • Calculates if the enemy should be alive based on the enemy stats.
    • Can give rewards on defeat.
  • OnDeathSaveGame
    • Will save the game state if the entity is killed.
  • OnDeathDefaultMusic
    • Reverts back to the default music track if killed.
  • AutoHealEnemy
    • Heals the enemy if he isn’t attacked after a period of time.
  • BasicEnemyController
    • Enables and disables whether the enemy should be wandering or pursuing at the moment. Checks if enemy is stunned and freezes them.
    • Sends messages to the animator.
  • PlayAudioOnEntryStopOnExit
    • Enables a specified audio track when the collider is triggered. Disables when the collider detects the player left the trigger.
  • ActivateEntityOnEntry
    • Activates scripts on entry or disables on exit so enemies don’t continue with advanced behaviours when the player is too far away.
  • LightningBossAttacks
    • Controls the lightning bosses’ attack patterns.
    • Summons a lightning cage to surround the player that damages the player on contact.
    • Summons a wave of lightning that spreads from the player
  • UnflipFromParent
    • Unflips a gameobject if a enemy is flipped based on the direction it is facing.
  • BossController
    • Broadcasts appropriate attack and movement messages to the animator.
  • BossAnimationController
    • Disables and enables the correct collider for the boss to use during his animation cycle.
    • Couldn’t figure out how to change polygon colliders so the boss has 30 different ones for different animations 😊
  • BossStats
    • Stats about the boss. Same as enemystats but includes support for his multiple fazes.
  • BossDamaged
    • Same as enemydamaged but doesn’t automatically kill the boss and allows the second faze to start.
  • BossAttacks
    • Controls the attack patterns for the boss. Only changes his movement speed because I ran out of ideas and time for implementing the final boss.
  • FloatToPlayer
    • Script that moves itself to follow the object it is connected to but not a child of.
  • FireBossDamager
    • Inappropriately named because I worked on the fire boss first. Whoops.
    • Allows projectiles that aren’t the players to damage the player.
  • FireBossAttacks
    • Controls the attack patterns for the fire boss.
    • Shoots fireballs in a radius. Get too close and more are fired.
    • Shoots homing fireballs in a radius. Get too close and more are fired.
    • If the player gets too close to the boss he launches explosive fireballs at the player.
  • DieWithOwner
    • Non child gameobjects die to what they are connect to.
    • They aren’t children because of collider conflicts between parent and children.
  • DestroyAfterTime
    • Destory the gameobject after a period of time.
  • HitEnemy
    • Hits an enemy and deals damage. Has a cooldown
  • DestroyOnCollision
    • Destroy the gameobject when it collides.
  • Summoner
    • Helper script to the summon skeletons script. Links all summoned entities to their “creator”.
  • SkeletonController
    • Inappropriately named because I worked on the skeleton enemy first. Whoops.
    • Tells the animator when attacking.
  • HitUniqueEnemies
    • Works like HitEnemy but for an area.
  • FlipCharacter
    • Flips the character depending on their target velocity.
  • CollidePlayer
    • Destroy the gameobject after a period of time after colliding with the player
  • FireBossDamagerInRadius
    • Inappropriately named because I worked on the fire boss first. Whoops.
    • Same as fire boss damager script but in a radius.
  • DestroyOnPlayerCollision
    • Destroy the gameobject after colliding with the player.
  • CreateExplosionOnPlayerCollision
    • Creates an explosion when colliding with a player
  • DestroyAndExplodeAfterTimeOrDistancePlayer
    • Creates an explosion after time or distance that damages the player
  • DestroyOnDistanceOrTime
    • Destroy a gameobject after a period of time or distance.
  • CreateExplosionOnCollision
    • Generate an explosion when colliding.
  • DestroyAndExplodeAfterTimeOrDistance
    • Generate an explosion after time or distance.
  • DamageInRadius
    • Damage all enemies in a radius ONCE.
  • GoblinKingEnemyController
    • Same as BasicEnemyController script but has support for fleeing as well.
  • GoblinKingController
    • Sends message to animator to attack the player if all his followers are dead.
  • Followers
    • A list of all the game objects followers
  • ShieldHealth
    • The amount of health an object has before being destroyed.
  • FollowPlayer
    • Follows the gameobject it is connected to and forces movement towards an enemy when it is within range.
  • ArcherEnemyController
    • Like BasicEnemyController script but only has support for fleeing and wandering.
  • ArcherController
    • Makes the archer aim at who he is shooting at.
  • ShootEndAnimation
    • Event to be triggered in the animator to shoot a projectile on a certain frame.
  • CollideWithWalls
    • Stops all velocity for the gameobject on collision with a wall.

Prefabs:

  • MagicGreatSword:
    • Summons a magic sword that follows the player and attacks any enemies that come within a determined range.
    • Components:
    • DestroyAfterTime
    • HitEnemy
    • DestroyOnCollision
    • FloatToPlayer
  • MagicSword
    • Summons a magic sword that follows the player and attacks any enemies that come within a determined range.
    • Components:
    • DestroyAfterTime
    • HitEnemy
    • DestroyOnCollision
    • FloatToPlayer
  • BaseEnemy
    • The basic slime enemy
    • Components:
    • Pursuit
    • Wandering
    • EnemyStats
    • EnemyDamaged
    • BasicEnemyController
  • BaseEnemy 1
    • The skeleton enemy.
    • Components:
    • Pursuit
    • Wandering
    • EnemyStats
    • EnemyDamaged
    • Summoner
    • FlipCharacter
    • BasicEnemyController
    • UnflipFromParent
    • SkeletonController
  • BaseEnemy 2
    • The goblin enemy.
    • Components:
    • Pursuit
    • Wandering
    • EnemyStats
    • EnemyDamaged
    • FlipCharacter
    • BasicEnemyController
    • UnflipFromParent
    • SkeletonController
  • BlackHole
    • A blackhole that damages enemies
    • Components:
    • DestroyAfterTime
    • HitUniqueEnemies
  • BlackHoleEffect
    • The crowd control aspect of the blackhole. Sucks enemies in towards the centre.
    • Components:
    • DestroyAfterTime
    • HitUniqueEnemies
    • FloatTowardsPlayer
  • BossEnemy
    • The final boss enemy. Heavy so sucking spells don’t work on him.
    • Components:
    • Pursuit
    • Wandering
    • OnDeathSaveGame
    • OnDeathDefaultMusic
    • BossAnimationController
    • BossStats
    • BossDamaged
    • BossAttacks
    • FlipCharacter
    • BasicEnemyController
    • UnflipFromParent
    • BossController
  • Dragon_sprite_sheet_noback_0
    • The suicidal, explosive dragon enemy.
    • Components:
    • Pursuit
    • Wandering
    • EnemyStats
    • EnemyDamaged
    • FlipCharacter
    • CollidePlayer
    • DragonEnemyController
    • UnflipFromParent
  • EnemyExplosion
    • The explosive component of an explosive fireball.
    • Works against the player instead of enemies.
    • Components:
    • DestroyAfterTime
    • FireBossDamagerInRadius
    • EnemyStats
  • EnemyExplosiveFireball
    • The fireball component of an explosive fireball.
    • Works against the player instead of enemies.
    • Components:
    • DestroyOnPlayerCollision
    • FireBossDamager
    • EnemyStats
    • DAEATODPlayer
    • CreateExplosionOnPlayerCollision
  • EnemyFireball
    • A fireball.
    • Works against the player instead of enemies.
    • Components:
    • DestroyOnTimeOrDistance
    • DestroyOnPlayerCollision
    • FireBossDamager
    • EnemyStats
  • EnemyLightningBolt1
    • A solid lightning bolt to trap the player.
    • Works against the player instead of enemies.
    • Components:
    • DestroyAfterTime
    • FireBossDamager
    • EnemyStats
  • EnemyLightningCircleBolt2
    • A normal lightning bolt.
    • Works against the player instead of enemies.
    • Components:
    • DestroyAfterTime
    • FireBossDamager
    • EnemyStats
  • ExplosiveFireball
    • The fireball component of an explosive fireball.
    • Components:
    • HitEnemy
    • DestroyOnCollision
    • CreateExplosionOnCollision
    • DestroyAndExplodeAfterTimeOrDistance
  • Fire-bomb_0
    • The explosive element of the implosion spell.
    • Components:
    • DestroyAfterTime
    • DamageInRadius
  • Fire-bomb_8
    • The explosive element of an explosive fireball.
    • Components:
    • DestroyAfterTime
    • DamageInRadius
  • Fireball
    • A fireball.
    • Components:
    • DestroyOnDistanceOrTime
    • HitEnemy
    • DestroyOnCollision
  • Goblin King Sprite Sheet_4
    • The goblin king enemy.
    • Flees from the player unless all his goblin minions are dead.
    • Components:
    • Pursuit
    • Wandering
    • EnemyStats
    • EnemyDamaged
    • FlipCharacter
    • Followers
    • Flee
    • GoblinKingEnemyController
    • UnflipFromParent
    • GoblinKingController
  • InstanceSuckEffect
    • The sucking element of the implosion spell.
    • Components:
    • DestroyAfterTime
    • HitUniqueEnemy
  • InventoryIcon1
    • The inventory slot for the hotbar
    • Components:
    • SpellInventory or PotionHotbar
  • Lightning_0
    • The lightning that goes in the direction it is aimed
    • Components:
    • DestroyAfterTime
    • FloatToPlayer
    • DamageInRadius
  • LightningBolt
    • The lightning bolt that goes where it is placed.
    • Components:
    • DestroyAfterTime
    • DamageInRadius
  • Mage_guardian-blue_0
    • The lightning boss enemy. Heavy so sucking spells don’t work well on him.
    • Components:
    • EnemyDamaged
    • EnemyStats
    • OnDeathSaveGame
    • OnDeathDefaultMusic
    • LightningBossAttacks
    • Pursuit
    • ActivateEntityOnEntry
    • PlayAudioOnEntryStopOnExit
  • Mage_guardian-magenta_0
    • The necromancer boss enemy. Heavy so sucking spells don’t work well on him. Heals if not attacked for a bit.
    • Components:
    • EnemyDamaged
    • EnemyStats
    • OnDeathSaveGame
    • OnDeathDefaultMusic
    • SummonSkeletons
    • AutoHealEnemy
    • Pursuit
    • ActivateEntityOnEntry
    • PlayAudioOnEntryStopOnExit
  • Mage_guardian-red_0
    • The fire boss enemy. Heavy so sucking spells don’t work well on him.
    • Components:
    • EnemyDamaged
    • EnemyStats
    • OnDeathSaveGame
    • OnDeathDefaultMusic
    • FireBossAttacks
    • Pursuit
    • ActivateEntityOnEntry
    • PlayAudioOnEntryStopOnExit
    • RingOfFire:
      • FloatToPlayer
      • EnemyStats
      • FireBossDamager
  • NightBorne_9
    • The black knight enemy.
    • Components:
    • Pursuit
    • Wandering
    • EnemyStats
    • EnemyDamaged
    • FlipCharacter
    • BasicEnemyController
    • UnflipFromParent
    • SkeletonController
  • PortalGate
    • The teleport image element of the teleport spell.
    • Components:
    • DestroyAfterTime
    • DamageInRadius
  • Projectile
    • The arrow shot by the archer enemy.
    • Components:
    • DestroyOnDistanceOrTime
    • EnemyStats
    • DestroyOnPlayerCollision
  • Ring of fire_0
    • The ring of fire that follows the player when the rof spell is cast.
    • Components:
    • DestroyAfterTime
    • FloatToPlayer
    • HitUniqueEnemy
  • RockTile
    • The solid wall component of the physical shield spell.
    • Components:
    • DestroyAfterTime
    • ShieldHealth
  • SearchRadius
    • The searching component of spells that track.
    • Components:
    • DestroyAfterTime
    • FollowPlayer
  • Spectral
    • The damaging entity of the spectral spell.
    • Components:
    • DestroyAfterTime
    • HitEnemy
  • Spritesheet_0
    • The archer enemy.
    • Runs away from the player when he is within a certain radius.
    • Components:
    • Flee
    • Wandering
    • EnemyStats
    • EnemyDamaged
    • FlipCharacter
    • ArcherEnemyController
    • UnflipFromParent
    • ArcherController
    • ShootEndAnimation
  • Stun
    • Sets all enemies with-in a range to be stunned.
    • Components:
    • DestroyAfterTime
    • StunEnemies
  • Torch
    • The torch that when lit will open up hidden passages.
    • Components:
    • HitByFireball
    • ObjectID
  • Tornado
    • The tornado entity of the tornado spell.
    • Components:
    • DestroyAfterTime
    • HitUniqueEnemy
    • ColliderWithWalls
  • Chest
    • A lootable chest for the player
    • Components:
    • TreasureOpen
    • ObjectID

Scenes:

  • Credits
    • The scene giving credit where credit is due.
  • MagicalDungeonHunter
    • The entire game scene featuring all the enemies, chests and world.
  • Settings
    • The scene where you change the settings.
    • There are no settings 😊
  • StartGame
    • The first scene that is shown when you load up the game.
    • Used to go to the other 3 scenes.
  • BossAreaWarning
    • The post process that plays when entering an area near a boss.
    • Sets screen to a red tint and applies chromatic aberration.
  • Camera
    • The default post process profile for the camera.
    • Just exists as the default.

 

Profile:

  • BossAreaWarning
    • The post process that plays when entering an area near a boss.
    • Sets screen to a red tint and applies chromatic aberration.
  • Camera
    • The default post process profile for the camera.
    • Just exists as the default.



User Guide:

The aim of Magical Dungeon Hunter is to defeat the three wizards and the final boss. Throughout the dungeon you will encounter loot and spells to make your mission easier. By defeating monsters, you will become stronger.

When you first load up the game you will encounter three buttons. The start game button is what you want to press. However, loading the game up for another time and defeating any of the bosses a fourth button will appear with the text “Continue Game”. The continue game button will run from a checkpoint created from successfully defeating one of the bosses. You can continue the game from the defeat of the boss with all your player data saved or you can start again if you wish.


When you initially start the game, you will be surrounded by a couple slimes that you’ll have to defeat. You will be shown your health and mana stats in the top left corner; there is a stamina bar at the bottom middle of the screen that decreases when you sprint. You will also be shown four slots for your hotbar. The left most bar is used for your items and the other three hold spells.

The movement in game is quite simple. The game uses the default WASD movement system. Pressing Left-Shift will allow the player to move faster for a bit while providing invincibility. Shooting a spell is as easy as aiming and clicking. Using a potion works by left clicking.
Torches are located randomly around the dungeon and can be light up with a fire type spell to open a secret passage.


The hotbar has the key shown in the top right corner of that slot to show you how to activate the slot.
For example, pressing “Q” will change your active slot to the potions. Pressing “1”, “2” or “3” will activate whatever spell is occupied in that slot.
The item hotbar slot has different mechanics. Pressing Q again while the slot is active will cycle to the next potion of the same type, e.g., a small health potion will go to a large potion when pressing Q again. Clicking right click will rotate to the next item in your items inventory allowing you to transition to the mana potions or back to the health potions. Some items can’t be held in the hotbar.
The game has an extra inventory that can be displayed by pressing “E” when the inventory is open you are UNABLE TO CAST SPELLS.
The top row of the inventory will show the current items you have and can be used while in the inventory. The other rows of the inventory show you what spells you have. You can have a single instance of a spell in your hotbar at one time. To change what spell you are using press the key for your hotbar that you want to change and click on a new spell in the inventory.
https://i.gyazo.com/369737700f6765963e1a321899f6e2fc.mp4

Pressing “C” enables cheat mode where you have access to all the 27 spells in the game and you have infinite mana and health.

Should you die, the below screen will appear letting you restart the game or if you made enough progress continue from the last boss you defeated.

There is a decent sized map for you to explore with loot tucked away in every room. A view of the map is available below with the three mini bosses’ locations shown and the main bosses location shown. The main boss can’t be fought until the three mini bosses are defeated, then the wooden door shown at “Entry” will open.



There are a total of 11 different enemies with, mostly, different mechanics. The guide will explore the base 7 enemies with the 4 bosses’ abilities being held secret.

The first enemy you will encounter is the basic slime. The slime will go towards you and attack you.

The second enemy is a, fast moving, flying dragon that explodes on contact. Watch out, there is one right outside the starting area.

The third enemy is the skeleton who has the same behaviour as the slime.

The fourth enemy is the goblin who has the same behaviour as the slime and skeleton.
There is a non-aggressive goblin to be found. Kill him if you want :(

The fifth enemy is the first of the elite enemies, the goblin king. The goblin king doesn’t see fit to bother himself with attackers and will flee from attackers leaving his minions to fight for him. However, defeat all the goblins he rules over and he will attack you by trying to crush you with his weight and jumping on you.

The sixth enemy is the second elite enemy, the black knight. He dashes towards the player to deal a lethal and wide range strike.

The seven enemy is the third and last elite enemy, the archer. The archer flees from the player when he is too close and fires at the player when he is at a safe distance. He is found within corridors where he can make the most of his ranged advantage.

The three mini bosses are called the necromancer, the fire overlord and the lightning magus. The final boss is up to you to figure out.

Files

index.zip Play in browser
Oct 16, 2022

Leave a comment

Log in with itch.io to leave a comment.