
Dungeonfs: A FUSE filesystem and dungeon crawling adventure game engine - davecardwell
https://github.com/ChrisRx/dungeonfs
======
johnfn
When 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. :)

~~~
jstanley
> 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).

~~~
x1798DE
> 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.

~~~
chapium
Symlinks at commandline work in vista or later. It is a different program
however.

~~~
dpcx
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.

~~~
kbenson
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...

------
Jemaclus
I'm building a MUD in Go right now, so this is pretty timely. Really creative
take on the genre!

~~~
peckrob
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.

~~~
Jemaclus
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.

~~~
doubleplusgood
I think gopher-lua on github could be useful to you

~~~
Jemaclus
I'll check it out, thanks!

------
Daviey
Reminds me of a cross between Zork Shell ( _not_ zsh):
[https://groups.google.com/forum/#!topic/alt.folklore.compute...](https://groups.google.com/forum/#!topic/alt.folklore.computers/OHW6LOCLzos)

And a game called "Virus!" on the Amiga in the early 1990's, which I haven't
been able to track down.

~~~
LeoPanthera
Here is Virus for the Amiga.
[https://david.gloveraoki.net/f/Virus.adf.gz](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?

~~~
lathiat
for old school games and programs specifically I would upload them to
archive.org - please do that :-)

~~~
LeoPanthera
It's already in multiple Amiga software archives, it's not particularly rare.

------
imode
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.

------
stuaxo
I love the idea of soundfx by aplay, this would be such a layering violation
in any other fs, its delicious.

------
LeonB
I made a folder based hangman game back in 2012.
[http://secretgeek.net/folderGame](http://secretgeek.net/folderGame)

------
monk_e_boy
What twisted mind thought of this?!

~~~
Zancarius
If you want twisted, I can't help but think of Doom as a Process Management
Tool (2001) [1].

[1]
[https://www.cs.unm.edu/~dlchao/flake/doom/chi/chi.html](https://www.cs.unm.edu/~dlchao/flake/doom/chi/chi.html)

~~~
seanp2k2
Don't forget [https://schemaverse.com](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! """

------
KC8ZKF
Has anybody made adventure in git?

------
kdazzle
This is awesome - the file/folder metaphor for data has always been pretty
boring

------
ksherlock
dunnet (emacs) exposed the world via a filesystem, too.

------
nabla9

        find . -name "sword"

~~~
Tepix
By the time the command is done the hero died of thirst.

------
xg15
So what happens if I run grep -R?

~~~
cjhanks
You die, instantly.

------
appden
Pure genius.

------
fiatjaf
Pure genius.

