ChrisRx/dungeonfs
ChrisRx/dungeonfs has 1,094 GitHub stars and 26 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-09 10:23 UTC. Last push 2025-10-29.
A FUSE filesystem and dungeon crawling adventure game engine
Measured star growth
- in 24h
- 0
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Originaldungeonfs
DungeonFS is a FUSE filesystem and dungeon crawling adventure game engine. This is a work-in-progress, however, there is a general list of planned features worth checking out, as well as, a little bit of the motivation behind why I started this project.
Install
go get github.com/ChrisRx/dungeonfs/...
Note: The demo level is included in the <project root>/examples/simplelevel folder, which should be downloaded with the above command. In the future, I will have this included with the static binary so the demo level is accessible without need go installed on the system.
This has also shown not to work on Go version 1.3 with failures building the golang.org/x/sys/unix package. I will update this further when I figure out the actual minimum version supported by dungeonfs.
Usage
The command-line mount command is used to mount the FUSE filesystem. It can be used to mount as a background process with the following:
bin/dungeonfs mount <mountpoint> -d -a <asset folder>
Since this is running in the background it must be unmounted using the unmount command:
bin/dungeonfs unmount <mountpoint>
Roadmap
As mentioned above, this a work-in-progress and many features are either either missing or incomplete. These are all features that I feel will probably be very important to having a good core game engine (at least that I have thought of so far). If you have other ideas on what would make the engine better to use from a designer perspective, please don't hesitate to start an issue.
- NPC/combat system
- file size will represent NPC/enemy health
- talking with NPCs starts a talk repl to make that easier
- Implicit 2d directions for navigation
- implicit but can be set
- opens up the ability to have a viewable map that marks the player position via
cat .inventory/map - will disambiguate between folder name and traversal (e.g. folder is 'north' but room name is unique to the room)
- Level editor using termbox
- A helper script that can be loaded with
sourceat the beginning of the dungeon to make helpful aliases- ensure PS1 is set to only show the current folder
- specific settings to sorting, hidden, etc for commands like
ls - set environment variables that will be helpful like an
$EXIT(although exit could also be a function possibly)
- Scripting language features
- some Go stdlib exposed
- fmt, strings, sync, time, etc
- async functions (i.e.
go func() { ... }) - some game-specific locks to ensure consistency of the game environment between concurrent scripts (currently called properties)
- builtins that help with calculating a property only N times
- e.g. i only want the room to have the
hiddenattribute property run until it is changed tofalse, then no longer run the property
- e.g. i only want the room to have the
- currently
nodeis the selector for the current node within a property, but this could change if need be - add selectors the for the names of over nodes for easy access to other node attributes
- some Go stdlib exposed
Ideas
These are just some things I wanted to collect into a list even though I'm not sure if they will all be possible (or how they will work quite yet). Really just didn't want to lose track of them so that they can be explored.
- Sound effects possible via aplay
- Using
chownandmvin creative ways to buy/sell or steal - Multi-player (issue #2)
Motivation
I've always thought FUSE filesystems were neat and when I came upon the https://github.com/bazil/fuse package I wanted to make a trivial example to show what kind of crazy stuff could be abstracted into a filesystem. Initially, the idea was just to make a simple dungeon with directories as rooms, but that ended up spiraling into also wanting to learn more about game programming (having never done much game programming). Imade this as a learning project for myself, but as it became less about making a single example and more aspiring to be a game engine, I wanted to share it with anyone that might find it interesting to use and/or to develop the engine. This project has been so fun and rewarding to work on, and my hope now is to make the game engine more complete so that others can try to use it to make their own novelty filesystem games.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
561,398 starspublic-apis/public-apis
A collective list of free APIs
497,679 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
447,495 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,261 stars