Dungeon Explorer - Demo 4 banner

Dungeon Explorer - Demo 4

59 devlogs
153h 8m 8s

Dungeon Explorer is my work-in-progress dungeon exploration game. Think of Dungeons & Dragons as an Online RPG.

Since I'm slightly new to game development, it took me some time. These demos are my experiments where I learn something new that I …

Dungeon Explorer is my work-in-progress dungeon exploration game. Think of Dungeons & Dragons as an Online RPG.

Since I’m slightly new to game development, it took me some time. These demos are my experiments where I learn something new that I will be able to use in the final game.

Demo Repository

Loading README...

MUS

Shipped this project!

Hours: 14.32
Cookies: 🍪 343
Multiplier: 23.91 cookies/hr

I built a single player game with a proper campaign!! I repeat, the project is not the website. Go to the homepage and click “Play” to open the game!! The website is the docs so that you can see the technicality. The hardest part of the game was the very fragile entity component system which required me to do several redos over time as requirements kept changing. This game is without a doubt my biggest master piece till date with a whopping 153h spent overall!! Overall the game is complete, I will add Touch Controls and complete the SFX and Docs after Flavortown. This is tallyho and may my ship have a wonderful voyyage.

MUS

Made a documentation website using Quartz and Obsidian so that you guys can stop giving me 5-6/9 in technicality. I updated my deployment workflow so that this too will build and upload with the click of a button!!!

Attachment
0
MUS

Some people……unfortunately……always skip the dialogues. So I added an objective tree. This shows all current and past objectives.

Attachment
0
MUS

Done with the finishing touches and THE STORYLINE IS OFFICIALLY COMPLETE!!!!

The game however is not. I still need to do the following:

  • Complete the audio SFX
  • Add Touch Screen
  • Write Documentation
Attachment
0
MUS

First of all. I classified my regular mobs into two groups: Enemies and Monsters
Enemies are mobs that are people and are found outside the dungeon. Monsters can only be found inside the dungeon. Bosses are technically advanced monsters. However no changes were made to the ESC since the behavior of both groups is exactly the same.

Secondly, I added 4 new characters. The mercenaries:

  • Pyromancer
  • Gladiator
  • Elven Archer
  • Witch

These 4 along with the corrupt knight are the only enemies. The rest are monsters.

Now that I have prepared the characters, I can go towards finishing Level 6.

Attachment
0
MUS

Created a new map “Mercenary Guild” and initialized a new level “Ambush”. This is the final one. After this, the story line will be complete. However there are still other QoL things left such as completing the sfx and adding the touch screen.

Attachment
0
MUS

Shipped this project!

Hours: 19.12
Cookies: 🍪 569
Multiplier: 29.76 cookies/hr

You are a knight on a quest to find a miracle potion at the depths of the dungeon to heal your ill king. However, there is more to the story than what meets the eye. What schemes are going on behind your back??

This game was very difficult to make especially since I’ve been making it scalable from the get-go. The core of the game is an intricate web of OOP with Inheritance and Polymorphism. The main goal is to create the perfect ECS (Entity Component System) which defines how my characters behave. If it’s really really good, I’ll release it as an add-on/library for godot.

MUS

Created a new playable character. The ninja. She’s a kunoichi. She’s got a chain whip which is stronger than the sword and she can throw daggers which are weaker than arrows but alot faster!!

Attachment
0
MUS

6 hours spent to make the final boss fight…….
Behold the Firebreathing Dragon!!!!!

0
MUS

Prepared the stage for the final boss fight!!

  • No more darkness
  • Bigger Camera view

because the final boss is huge!!!!

0
MUS

Added Lesser Demons and a Minotaur. Just one more boss before I finish level 6.
I also added a tutorial dialogue on level 2!! Now it’ll be easier for people to understand it!!

Attachment
0
MUS

Improved audio handling and added slash sfx to swords and spears
fixed a lot of minor bugs which made the game feel harder than it should be
improved the environment handling of mobs, they can see walls farther and players behind within a certain range.
Shortened the castle outdoors map cuz it was too long
created the dark lady and finished the audience level
also updated the dialogues appropriately

Attachment
0
MUS

Created a working interface for Audio with separate Master, Music and SFX busses

Also created the deepest chamber map where you will have an audience with the dark lady.
Deepest Chamber level will be finished soon probably……since it’s just a cutscene.

Attachment
Attachment
0
MUS

Shipped this project!

Hours: 23.57
Cookies: 🍪 653
Multiplier: 27.71 cookies/hr

You are a knight on a quest to find a miracle potion at the depths of the dungeon to heal your ill king. However, there is more to the story than what meets the eye. What schemes are going on behind your back??

This game was very difficult to make especially since I’ve been making it scalable from the get-go. The core of the game is an intricate web of OOP with Inheritance and Polymorphism. The main goal is to create the perfect ECS (Entity Component System) which defines how my characters behave. If it’s really really good, I’ll release it as an add-on/library for godot.

MUS

Updated my controls page to include the new controls

Attachment
0
Carlson

Tagged your project as well cooked!

🔥 Carlson marked your project as well cooked! As a prize for your nicely cooked project, look out for a bonus prize in the mail :)

MUS

Added some temp dialogues so that I can ship. This will help keep the storyline understandable despite the missing levels.

Attachment
0
MUS

Playing around with Army Controls. Behold, my state-of-the-art well trained army standing in formation

Attachment
0
MUS

Re-did the ESC to make the variables better and the code more optimized and flexible.

Created 2 bugs in the progress:

  • Fricked the Wall-Avoiding Logic of mobs
  • Buddy Bug (image shown below)

Buddy Bug is when 2 players are spawned due to some logic error. This could be a rare bug but it still happened once. I’m gonna ignore this for now unless it turns out to be frequent.

Attachment
0
MUS

Created Armies!!!

Just added an Ally Knight to fight against Corrupt Knights.

You can control them like a proper army!!

0
MUS

fixed a few hiccups.

created the ending dialogue.

Here’s my favorite part:

Attachment
0
MUS

Added the Elf King for a cut scene at the end of the game

Attachment
0
MUS

Added Elf Queen and completed the starting level (Elf Queen’s Request) with it’s dialogue

Attachment
0
MUS
  • Isolated Controls and Entity Stats pages
  • Reused these 2 in the home screen and the newly made Pause Menu
  • Redid the spawn logic and shifted it to global (deleted the Player Spawner Node)
  • Chained the levels
  • Added a few SFX and updated the logic to accommodate them

Here’s a list of SFX added so far

Attachment
0
MUS

Shipped this project!

Hours: 96.12
Cookies: 🍪 2372
Multiplier: 24.68 cookies/hr

I’m trying to build a proper and good single player game with a storyline. The focus of this demo is on game architecture, UI and the ECS (Entity Component System). without a doubt the most important part of the code which I will definitely reuse in the final version as well as other RPGs.

This project was very important in teaching me not only game development, but also how to effectively work with OOPs as the code is heavily dependant on Inheritance and Polymorphism to ensure reusable code and hence making redundance negligible.

MUS

After discovering the ability to control sprite offsets in the animation player, I manually aligned all of my mobs. Also finally fixed the bad values that were left over from reversing the scaling of boss mobs.

To avoid my bosses getting spammed during hurt animation, I created the boss class which has a certain probability to not play the hurt animation. I also updated my README.

Attachment
0
MUS

A lot of stuff happened so let’s start with the mild one.

  • Imported Dialogue Assets for the Knight
  • Added Castle Hall map.
  • Really really improved the entity stats page

That’s about 2-3 hours of work I think.

What really took my time was because I opened up the very heart of my game (the ECS - Entity Component System) and began surgery. I bascially redid it from the ground up to make it more organized and with the new ally class, which is an improvement to the previous Character Class. These entities can not only be controlled for cutscenes, they can also fight alongside you with a bit of clever code. This is why I will remove the obsolete dodge option in favor of the control option.

The image shows from mermaid the brand new ECS. Blue nodes represent the entity and yellow nodes represent the nodes responsible for the thought process allowing me to manually override them whenever in case I need to.

Attachment
0
MUS

Completed the UI changes, and added focus to the Character Cards to improve user interaction. Also realigned the stairs manually. That’s about an hour’s work which didn’t get counted because Hackatime doesn’t work with Piskell, my preferred tool.

Anyhow here’s a before(left) and after(right) of the stairs

Attachment
0
MUS

Updating my UI. Here’s the new Entity Stats page available at home and in menus.

0
MUS

Fix: Aligned Samurai and gave him a shadow
Fix: Stopped the glitch causing mobs to stare at a wall and go crazy

Attachment
0
MUS

Created the Damager class and nested Melee Controller and Projectile Launcher classes under it. Now I can have them both do certain tasks with less code clutter. The actual purpose was to introduce the multiplier and find a way so that I can change the multipliers of both melee and projectile attacks easily. Now with the Damager class, I can achieve that and also add more attack types without a headache.

Finally, Boost has a purpose. Sorry to everyone who was spamming it without knowing it doesn’t do anything.

Also overall the boost has the following effects: 1.5x Damage and Attack Speed

but for Wizard: 1.5x Primary Attack Speed, 2x Boost Duration and -5s of Boost pre Magic Bomb.

All this affects what goes on the back, so visually there are no changes for me to show in the image.

So ig here’s the doc of the new class……

Attachment
Attachment
Attachment
0
MUS

Finally completed the Castle Outdoors map and initialized the Pass_Through_Castle_Outdoors level which is basically you just walking by it for the sake of story.

Due to a lack of art, I had to merge the fire and cart art myself. Also needed to create closed terrace sprite. What took the longest time was the z_indexing. This map has smart z_indexing so that it looks realistic when you climb the balcony or the terrace

Attachment
0
MUS

Preparing the escape_the_dungeon level. I needed to show that it’s more difficult, and help the ghost flames pop out more. So I added a vignette to increase the darkness, even on the minimap!!!

The minimap part was kinda annoying cuz of cloning at runtime to avoid creating a separate file for it.

Attachment
1

Comments

RespectableDot
RespectableDot about 1 month ago

bro this is actually starting to look very good, keep going

MUS

Almost all this work was due to the need to improve shadows.

  • Manually aligned the knight animations frame-by-frame so that the shadow is never outside the body
  • Removed the complex chain of flip() and instead just reversing scale
  • Redid mob logic because reversing scales completely broke it
  • Normalized Mob Scales (I scaled up a few bosses when I made them and just found out their raycasts were going haywire)
  • Added a quadruped handler which makes sure that all four legs of four-legged entities are on the ground even on slopes.

Below is an example of the QuadrupedHandler.

Green is the hellhound which is using a quadruped handler and red is the knight which isn’t (cuz he only has 2 legs and should be upright)

Attachment
0
MUS

Worked out a few of the kinks in lighting. Now I have shadows. Remember when I said shadows will take longer? That was about frame-accurate shadows. I decided that just adding the torso with a little smoothing should be good enough. btw….ghost flame.

In the story, you will anger the dark lady of the dungeons and that’s when the ghost flame and bunch of demons spawn in. (no more respawn btw).

Attachment
0
MUS

Working around a bit more with lighting, I’ve also figured out how to add shadows. For now I won’t give shadows to my characters or my mobs since it involves a bit of manual working and there still a lot left for the story including a new map, the village.

Attachment
0
MUS

Created Torches (as Light Source 2D) and placed them around the dungeon map to make it look cooler.

It can also turn blue into “ghost flames”.

I had to manually stitch the spritesheet needed for this animation. (“Stitch” not “Make”)

looks really cool imo

Attachment
0
MUS

Added this new section to the royal castle. Now I will add a blockage a little back which will force the player to climb the balcony to reach this place.

Attachment
0
MUS

Created the tilemap, complete with necessary physics and logic, for my royal castle outdoor-ish area/part. I also had to do a lot of tileset stitching which basically means opening up the tileset images I got from the internet and manually modifying it to fit my needs. So that’s another 2-3 hours which are, but ofc, not tracked……..

Attachment
0
MUS

I just created a character class which will allow me to control NPCs. I’ve also finalized the story that I will be using which means that there will be more maps now including:

  • Village
  • Royal Castle

I’m estimating that the game will be an overall 30-40mins play with no auto or manual save.

Attachment
0
MUS

Created a GitHub Action Workflow which will deploy my game to the web. Before I had to manually export and then git add/stash/push/checkout and the entire headache with keeping my gitignored files safe during the entire thing which was a huge headache……

Now I can do it with the push of a single button

Attachment
0
MUS

Isolated the map from the level. This will allow me to reuse maps over different levels. Also, I completed most of the enter_the_dungeon level. I just need to add a few slick commentaries about coming back from the dead to make it feel more immersive.

Here’s a image which clearly shows that the Dungeon is separated from the Enter_the_Dungeon Level.

Attachment
0
MUS

Completed the main map and added the vicious demon general which will make players cry.

I also had a new idea which…..how about changing characters mid-game??

:ABSOLUTE-CINEMA:

Think about it, just like GTA 6. I can make so many modifications……..

ofc…I don’t think making a player AI will be that hard…..I just need to copy the mob code and make it attack mobs instead of players…….and instead of patrol, it will follow the player…..

Attachment
1

Comments

MUS
MUS about 2 months ago

btw I forgot to mention here that I also created a goblin and a goblin champion

MUS

Updated the map and created Cerberus and Hellhounds

Also realized I’ve been spelling cereberus wrong…..it’s actually Cerberus……Fahhh

Anyways, in case you guys don’t know, Cerberus is the 3 headed guard dog of the underworld from Greek Mythology.

Attachment
0
MUS

Minor updates + New Wave Class and started working on the main map.

Since I was recently given a CraftPix Premium subscription, I will be adding some new mobs!!!

  • Goblins
  • Goblin Champion
  • Hellhounds
  • Cereberus
  • Minotaur
Attachment
1

Comments

MUS
MUS about 2 months ago

replaced minotaur with demon general

MUS

Synchronising got impossible to handle cleanly and it was too cluttered for me to be able to do anything. So I’m demoting this to demo 4. I’ll retry after learning @tool and making some of my components into a plugin so I don’t have to look at them again (also help others make games faster)

So sorry……but there will be no multiplayer anytime soon :/

Attachment
0
MUS

I spent the last 2 hours and 30 mins just to create automated character cards which are visually appealing. I needed to create a schema which can fill in data automatically so I don’t have to create a raster for each new character which is why it took so long figuring out which control should be aligned how………….

Attachment
0
MUS

Made changes to Dialogues so that I can make them work on multiplayer. It was difficult but the solution is to store dialogues in a file and then pass around the filepath as a string. Here’s an image of how I can finally create an entire dialogue sequence by drag-and-drop in the editor using this approach and it will be seen on any device I want it to be seen on………

Attachment
0
MUS

Mostly working on multiplayer….I redid the multiplayer node as well as a few others to convert them in a way that I can easily use them in my multiplayer without breaking the single player mode such as my automatic door and the player spawner. I also improved my dialogue box and am looking to create automatic cards for my characters so that I can show their stats in game……

btw here’s a pic of me explaining git to participants of Campfire Lahore :P

Attachment
Attachment
0
MUS

Significant changes made to the game

  • Proper UI and Main Menu
  • Added a way to see control layout
  • Added transitions between main menu and play mode
  • synced mobs
  • Made a new and better hud with a minimap
Attachment
0
MUS

Just a bit of cleanup with the multiplayer…….aligning and syncing all the necessary properties of the players……next I will be finally trying to sync in the mob spawner……..

I need a way to make sure it doesn’t affect my single player mode

Attachment
0
MUS

Finally………….after stripping down the environment…..these 2 hours plus the last devlog’s 4……….I managed to atleast make the characters synced………….

Attachment
0
MUS

Created a home screen….tried to add multiplayer….failed horribly…..rolling back keeping just the home screen….behold

Attachment
0
MUS

No new content……I was just fixing bugs with the projectiles……so here’s a screenshot of the brand new samurai. Next up is the ninja. He can hide in plain sight………wow

Attachment
0
MUS

I JUST CREATED THE SAMURAI!!!! YASSSSSS!!!!!!

Attachment
0
MUS

Did a lot of stuff this time:

  • Created the first boss: Skeleton Champion
  • Further improved player selection, now I have a single JSON-ish catalog thingy store all data
  • Fixed the dying_attack_bug (mobs making one last attack before dying)
  • Fixed the mutilation_bug(mobs hurting your corpse which triggers a loop and stops respawn)
  • Made the Area_Damage_Projectile for the wizard’s magic bomb
Attachment
0
MUS

Fixed some more, filled in more docs and finally learned about built-in scripts. Why did I not know this before?? This made my repo really less cluttered. Basically single-purpose scripts can be forced inside the scene file, instead of a separate scene and separate script. I also added the assets for my next 2 characters: dwarf and samurai as well as made a dynamic and automated character selector as shown in the image attatched….

Attachment
0
MUS

A little more catching up on the docs. I’ve also been looking out for obsidian-to-website converters so that I can host my docs as a website and make it easier for everyone to access. So far I’m considering quartz, but that’s only after the project is done. Due to university applications I’ve been on sort of a hiatus, but I will be back and in full power starting in March!!

Additionally, I’ve uploaded the testing arena to the web for others to try and give me a review…

Attachment
0
MUS

Still dealing with the docs thingy and overall reorganizing the nodes better. Other than that I’ve been adding/fixing a few other things on the go.

I’ve made sheild an external node which can have a shape instead of an innate boolean var. I’ve also fixed the issue with the player only being able to hit one mob at a time despite it obviously being designed to hit as many as there are together. Can’t believe I missed that bug over 2 demos lol, I’ve also made it so that every melee attack has it’s own damage value and there are more raycasts but they are disabled to keep performance straight.

Attachment
0
MUS

Since this is going to be a big game, I’ve decided to use Obsidian to document it. In this devlog I’ve completed the documentation for the following:

  • Basics of Entity Component System
  • Entity (Base class for all entities)

Additionally, I’ve been fixing and improving the code files I imported in the prev devlog.

I won’t be making any git commits just yet, cuz there’s a lot going on rn.

Attachment
0
MUS

Imported files from previous demo/variation and created traps that kill the player: Spike Traps and Breakable Floors.

Attachment
0