Dungeonfs: A FUSE filesystem and dungeon crawling adventure game engine
github.comWhen I was back in elementary school, a friend thought up this brilliant idea that we called "foldermazes", which were basically choose your own adventure games, but the way you chose your adventure was by selecting which folder to go down. I was and still am fascinated by just how brilliant of an idea it was!
Of course there were problems. One that I recall was that I didn't want to have to maintain k^n separate branches of story, so I'd prune off incorrect branches quickly by having your character die or something. :)
We hit the maximum depth for folders very quickly, so I came up with the idea of having a routing table at the base, which was just a single folder with folders labeled 1-10000 inside it. The idea was that you'd get to maximum depth, and then get a number to go into the routing table and continue the adventure. The hope was that there were so many folders within the routing table that it'd be impossible to guess a correct path by chance. (And of course, all the invalid folders had a message like "stop trying to cheat, you cheater! YOUR CHARACTER DIES INSTANTLY!" Remember... 5th grade. :))
I remember working frantically on a "foldermaze" at home for hours, then attempting to put it on a floppy disk. Turns out that is not the sort of operation Windows 95 was optimized for at all - it took hours. (The maze had tens of thousands of folders, most inside the routing table.) Then after a certain point it just failed with "disk full". This really stumped me as a 5th grader. How could the disk be full? Inspecting the properties of my foldermaze showed that it took up 0MB! Far less than the 1.44MB offered by the floppy...
Eventually I pieced together that folders must take up some marginal amount of space more than 0. The property inspector was lying to me! That was very surprising as a kid.
Anyways, this seems like what we did, but way more cool. :)
> One that I recall was that I didn't want to have to maintain k^n separate branches of story, so I'd prune off incorrect branches quickly
You could always merge storylines later on by symlinking them to the same place!
(Maybe not on Windows).
> You could always merge storylines later on by symlinking them to the same place!
> (Maybe not on Windows).
Windows has "shortcuts", which should work if there is some problem with symbolic links.
Symlinks at commandline work in vista or later. It is a different program however.
Symlinks were a thing in the NT days; you just had to use a downloadable tool from Microsoft. Googling doesn't seem to provide much information any longer, unfortunately.
I remember is was added, or at least announced, between late 1999 andr early 2001. Or maybe that was mounting a disk at a location instead of a letter. I just remember there was a fair amount of ridicule that it took so long for a simple feature that had existed for so long in Linux (and every UNIX) already, but both those fit the bill...
As silly as this idea sounds you could use this concept to create a commandline tutorial. The folders can contain clues.
I'm building a MUD in Go right now, so this is pretty timely. Really creative take on the genre!
I was literally JUST thinking about doing this today! Although I was thinking I would only do the actual core (connection handling, database, etc) in Go, and do much of the actual game programming in Lua so that players could extend the game.
That's a good idea! I'm not even remotely sure how to do that. I tackled this project as a way to really dig in and learn Go, and I'm still working my way through it. I'm slowly learning more idiomatic ways of writing Go, but I'm not even sure how I'd go about extending the game with Lua or anything else. Got any resources on that kind of thing, or could you give a high-level description of how that might work, so I can explore the possibility?
I definitely need some scripting ability. For example, it would be nice if I could script mobs to perform certain actions during quests, something that I'd have to hard-code in Go right now.
I think gopher-lua on github could be useful to you
I'll check it out, thanks!
Cool! What kind of MUD, if you don't me asking?
It's a Merc/Diku inspired version. The codebase is written in Go, and the data is stored in JSON files. I'll open source it, eventually. It's feature-complete, I just need to get some bare-bones data in there (like starting areas, items, mobs, etc). Maybe in another month or two. :)
You could allow (trusted) players to customize rooms and objects with an in-world accessible Lua layer similar to how LPMUDs used LPC. That would be pretty cool. MUDs taught me how to write creatively, but not how to code; in the future they could do both.
I was already a fairly creative writer when I got into MUDs, but my coding skills were weak and pretty disorganized. Programming a DIKU MUD back in the early 90s that people actually used and enjoyed required me to step up my focus and skills, which got me ready to enter the tech industry proper in the mid 90s.
In-world Lua is a great idea. All of the core MUD programming back then was, of course, written in C, but player (and admin) scripting was done with an embedded Perl interpreter.
Same! A MUD is one of the first things I learned to code with C when I was in college.
Sounds awesome! I do have some built in methods to instantiate mobs, objects, and rooms, then save them to disk, but they're pretty basic and don't allow more advanced things like scripting events or locking doors and things like that.
Well, I'm pretty stoked to hear that! What does 'feature complete' mean? Like, 'MVP' sort of thing? MUDs and friends tend to have a never-end, never 'complete' feature set. (:
Well, I mean that you can technically play the game. You can register, log in, walk around, pick up items, drop items, wear items, wield items, practice, train, fight, die, cast spells, use skills, do socials, check your stats, check your score, check your inventory, open/close/lock/pick doors, join groups, chat, send notes, etc, etc.
You're right that it's never really done, but my theoretical goal is basically a bare-bones MUD written in Go that anyone else could pick up and turn into a fully featured one. More practically, I'll probably just make a couple dozen areas and stick it on a server and see if anyone wants to play before I spend too much more time on it.
Reminds me of a cross between Zork Shell (not zsh): https://groups.google.com/forum/#!topic/alt.folklore.compute...
And a game called "Virus!" on the Amiga in the early 1990's, which I haven't been able to track down.
Here is Virus for the Amiga. https://david.gloveraoki.net/f/Virus.adf.gz
But it bears little resemblance to this game, so I wonder if you are thinking of something else.
PS. I self-hosted this file, but what's the go-to service for flinging arbitrary files across the internet these days?
for old school games and programs specifically I would upload them to archive.org - please do that :-)
It's already in multiple Amiga software archives, it's not particularly rare.
http://www.mobygames.com/game/windows/virus-the-game
Could be this one, though it is for Windows.
It basically turn a folder tree into a Decent clone. Complete with using media files stored in said folders within the game.
The 3D graphics in that game are well beyond what most classic Amigas were capable of.
My apologies. I just figured that between the context of the discussion and the name of the game, he may have gotten the platform wrong.
No need to apologize! You could easily have been right.
Wow, thanks!
I agree the gameplay is different, but the idea of working through your filesystem is what made me think of it.
I have used http://ge.tt
But it is not new or hip anymore
this is so awesome!
you could turn this into a MUD by just letting people in via SSH. if you supported auto-reloading your YAML files during play (or just keeping track of loaded files), you could support online creation!
I'm fascinated.
I love the idea of soundfx by aplay, this would be such a layering violation in any other fs, its delicious.
I made a folder based hangman game back in 2012. http://secretgeek.net/folderGame
What twisted mind thought of this?!
If you want twisted, I can't help but think of Doom as a Process Management Tool (2001) [1].
Don't forget https://schemaverse.com : """ The Schemaverse is a space-based strategy game implemented entirely within a PostgreSQL database. Compete against other players using raw SQL commands to command your fleet. Or, if your PL/pgSQL-foo is strong, wield it to write AI and have your fleet command itself! """
Has anybody made adventure in git?
This is awesome - the file/folder metaphor for data has always been pretty boring
dunnet (emacs) exposed the world via a filesystem, too.
find . -name "sword"By the time the command is done the hero died of thirst.
So what happens if I run grep -R?
You die, instantly.
Pure genius.
Pure genius.