ChrisRx / dungeonfs

A FUSE filesystem and dungeon crawling adventure game engine
BSD 2-Clause "Simplified" License
1.03k stars 29 forks source link
fuse fuse-filesystem game linux

dungeonfs

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.

demo

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.

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.

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.