Root-Dungeon banner

Root-Dungeon

12 devlogs
36h 2m 5s

Root Dungeon is a dungeon crawler game where your real file system is the game world. Explore folders on your Desktop, find enemy and item codes hidden inside .txt files, and use them in the game window to fight, collect, and, at the end, defeat…

Root Dungeon is a dungeon crawler game where your real file system is the game world. Explore folders on your Desktop, find enemy and item codes hidden inside .txt files, and use them in the game window to fight, collect, and, at the end, defeat Boss.

This project uses AI

[from README.md]
This project was developed with selective use of AI assistance. Most of the implementation was done independently, with AI mainly used for:

Boss Battle Projectile Logic (battle.py)

  • AI assistance was used to help implement the projectile-based dodge mechanic in the BossBattle class
  • Primary focus was on projectile spawning and movement patterns
  • This was the most complex part of the project.

Bug Fixing and Debugging

  • AI was consulted when facing difficult bugs, particularly in:
    • Battle state synchronization issues
    • Key naming mismatches and dungeon reset bugs
    • Other miscellaneous bugs

Documentation

  • This README was partially generated by AI and then modified to ensure accuracy.

Used ChatGPT, Gemini and Github Copilot (mainly for inline suggestions)

Demo Repository

Loading README...

artur33

Shipped this project!

Hours: 36.03
Cookies: 🍪 663
Multiplier: 18.41 cookies/hr

After ~2weeks of working, I’m shipping Root-Dungeon.
It’s a dungeon crawler where your real file system is the game world. Rooms are actual folders on your Desktop, enemies and items are .txt files you open and read, and you use the codes you find in them inside the game window to fight and progress.
Started as an experiment or idea and ended up with a game with combat (both timing based and projectile dodging), locked rooms, leveling and inventory system, combo tracking, achievements, save/load, sound effects, and a debug panel.
The hardest part was definitely the boss battle. The projectile dodge mechanic was the most complex thing I’ve built, and I used AI to help with that part specifically. The rest of the combat and dungeon logic I mostly figured out on my own, which I’m happy about.
I’m proud that the core idea actually works and feels fun: exploring real folders, opening files to find enemy codes, and then fighting them in the window is well, not unique, but there arent’t a lot of projects like this, I really like those kind of games that interact with the OS.
So at the end it went from a folder creation to something that actually feels like a game :)

artur33

Note: Last devlog for this project. I’m honestly really happy with how it turned out, it evolved from an experiment into something playable and interesting I think.

Added/Fixed:

  • Achievements system fully integrated with a separate achievement window (achievements.py)
  • Player death tracking implemented for achievement needs
  • Defeat during the boss battle, max your HP now
  • Used keys are now removed after unlocking rooms
  • Consumed potions are now removed after use
  • Locked room unlock window now displays available rooms
  • Player name prompt at game start
  • Formatting corrections
  • Balance tweaks
  • Proper path handling for sounds, saves, and icon when frozen
  • Wrote the README (with AI help)
  • Created the executable (with Pyinstaller ‘socialnet.spec’)
  • Added ‘requirements.txt’
  • Minor internal fixes and cleanup
  • Tested if everything works

Next:

  • SHIPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
Attachment
0
artur33

Added/Fixed:

  • JSON based save & load system implemented (save and restore data and game state, DON’T DELETE DUNGEON FOLDER AND OTHER STUFF IN THERE)
  • UI buttons added for saving and loading (and achievements -> still wip)
  • Boss attempts and defeats tracked across runs (for achievement, still wip)
  • Minor other changes

Next:

  • Add achievement system for replayability
  • Bug fixes and final stability pass
  • Shippppppppppppppppppp
0
artur33

Added/Fixed:

  • Runtime gameplay stats system (tracks run duration, damage dealt and damage taken, hit timing accuracy and breakdown, potions used, enemies defeated and max combo reached)
  • Boss battle improvements: Boss attack-bar UI added with timing based hit logic (same as for normal enemies)
  • Sound feedback system (hits, misses, attacks, level-up, victory and defeat sounds added) (sounds.py) [sounds in the ‘sounds’ folder]
  • End-of-run statistics displayed on victory (Game ending)
  • UI layout adjustments for battle and endgame stats

Next:

  • Add save and load (in a json file ig)
  • Add achievement system for replayability
  • Bug fixes and final stability pass
  • Shippppppppppppppp
0
artur33

Added/Fixed:

  • Boss integrated into dungeon generation
  • Boss battle system introduced with a projectile-based fight (heart-dodging movement and projectile attack patterns)(inside ‘battle.py’ as another class)
  • Victory (still WIP, I need to make an endgame statistic) and defeat handling for boss battle
  • Legendary Sword removed from direct item spawns (this was a bug)
  • Other minor fixes and changes

Note: Boss battle system is still incomplete — victory flow has bugs and the player attack turn is not implemented yet. This devlog marks progress after 4 hours… I am tiredddd.

Next:

  • Finish the boss battle system
  • Add end game statistic after defeating the boss
  • Maybe add sound effects
  • Bug fixes and final stability pass
  • Shippp :)
0
artur33

Added/Fixed:

  • Debug panel integrated (F1 keybinding to open debug panel)(debug.py):
  • God Mode toggle (infinite HP)
  • One-hit-kill toggle
  • Full Heal button
  • Add XP func
  • Give all keys button
  • Player last HP tracking added to detect external HP changes
  • Battle UI now forces refresh when HP changes outside normal turn flow (potions/debug)
  • Fixed key naming mismatch (renamed corridor key and aligned enemy drop)
  • Minor internal refactors related to debug hooks and battle state synchronization

Next:

  • Implement the final Boss Battle, an Undertale-style battle system for the Boss, now I will work on this, oh myyy…
Attachment
0
artur33

Added/Fixed:

  • Combo system implemented for battles: perfect hits increase damage and grant bonus XP (+ track of max combo)
  • Math puzzle based room unlocking integrated into progression (puzzles.py)
  • Potion usage fully implemented (inventory tracking and healing logic)
  • Legendary Sword system added (Legendary Vault unlock logic)
  • Miniboss marking and handling
  • Room-prefixed unique code generation (different from only numbers like before)
  • Reset func for full player + dungeon state reset
  • Folder lock checks now propagate up for directory paths (full ones)
  • Startup and cleanup flows improved to properly reset everything (before there were errors because of this)
  • Enemy data reorganized (for different Enemy, Miniboss and then Boss -> next devlog)
  • Minor internal refactors and stability fixes

Next:

  • Implement the final Boss Battle, I thought of making an Undertale-style battle system for the Boss, at least I will try to do it…
  • I also noticed that I need some kind of cheat panel (or debug) to speed up playtesting and bug finding (infinite health and “one hit kill” at least)
0
artur33

Added/Fixed:

  • Item spawning and loot system integrated in the dungeon rooms (items.py)
  • Code protected item files with validation before collection (same as for the enemies and room unlock)
  • Item effects system updating player stats and inventory
  • Expanded dungeon content with additional item and key drops tied to enemy encounters
  • Combat balance adjustment: defense now fully applied in damage calculations
  • UI updated to support item collection and potion interaction (still WIP)
  • Minor layout tweaks and internal refactors

Next:

  • Add combo system to battles
  • Implement potion usage functionality
  • Design and integrate puzzle mechanics
  • Fix problems and bugs
0
artur33

Added/Fixed:

  • Battle system improvements with proper victory callbacks and end states
  • Locked rooms logic: now requiring specific keys to access
  • Enemies are now locked to rooms and correctly removed after defeat
  • Player leveling
  • Inventory management expanded to get keys and drops
  • Clearer defeat and victory feedback in battles
  • Minor internal refactors related to battle flow and dungeon progression

Next:

  • Plan and implement additional items (healing items, weapons, buffs, etc.)
  • Expand dungeon with more rooms and enemies (new keys and game logic)
0
artur33

Added/Fixed:

  • Timing based attack system with visual attack bar
  • Dynamic HP bars for both player and enemies, based on max HP
  • Added a welcome (README) file at dungeon start to guide the player
  • Minor internal refactors related to battle and battle window UI

Next:

  • Enhance and complete the battle system (enemy file removal after defeat, clearer end states (player’s level progression))
  • Implement locked rooms and access logic
  • Design items, keys, and game logic
0
artur33

Added/Fixed:

  • Enemy spawning logic integrated into dungeon room creation (the start of the game) (enemies.py)
  • Each enemy is assigned a unique fight code
  • Fight system for now allows initiating battles via code, still WIP (battle.py)
  • Now using a dictionary to store game stats
  • Added basic quest tracking in the main UI
  • Minor UI tweaks and internal refactors

Next:

  • Continue with the battle system (will make a classic timing-based “click in time to deal more damage” thing, for now maybe, ehe)
  • Design items, keys, and game logic
Attachment
0
artur33

Added/Fixed:

  • Improved main window UI layout with clearer separation (using frames) between title, stats panel, and game log area
  • Added a scrollable game log to display game events and actions, later
  • Player stats now update and logic ( in player.py)
  • Dungeon cleanup/reset with confirmation dialog
  • Refactored dungeon creation logic into external module (dungeon.py)
  • New buttons: ‘Unlock Room’, ‘Fight Boss’ and ‘Cleanup’
  • General UI cleanup and small internal refactors

Next:

  • Add enemy spawning logic
  • Plan and implement fight mechanics, hm…
  • Design items, keys, and game logic
Attachment
0
artur33

Added/Fixed:

  • Initial Tkinter UI (main.py) with a main window and primary controls: ‘Start Game’, ‘Open Folder’ and ‘Fight’ (still placeholder WIP)
  • Dungeon folders creation logic
  • Created config.py (just for the path for now)

Note: I’m still thinking about the project structure so there could be changes and refactors

Next:

  • Complete the main game windows UI
  • Implement player stats (HP, level, inventory, etc)
  • Add enemy spawning logic
Attachment
0