github.com/ChrisRx/dungeonfs/pkg/game/assets

A FUSE filesystem and dungeon crawling adventure game engine


Keywords
fuse, fuse-filesystem, game, linux
License
BSD-2-Clause
Install
go get github.com/ChrisRx/dungeonfs/pkg/game/assets

Documentation

dungeonfs

A FUSE filesystem and dungeon crawling adventure game engine.

demo

Install

make deps
make

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

Since this is running in the background it must be unmounted using the unmount command:

bin/dungeonfs unmount <mountpoint>

Ideas

  • Sound effects possible via aplay
  • NPCs files
  • Using chown and mv in creative ways to buy/sell or steal
  • NPC/enemy health and other attributes can be determined via file attributes like filesize
  • Disambiguate between folder name and traverse (e.g. folder is 'north' but room name is unique to the room)
  • Add .inventory/map that can allow the player to view the map.
    • Directions not made explicit can be enabled by converting the name to a number and then mod that number by the number of directions desired for the map (e.g. 4 for basic cardinal directions north,south,east,west)
  • Level editor using something like termbox. Could also be used to make animations that run when doing certain actions (e.g. looting a chest).

TODO

  • Expose go stdlib to scripting language: fmt, strings, sync, time, etc
  • Add some builtins for scripting language:
    • A simple global lock that must be acquired by the fs methods
  • Shell script that can be sourced that provides the recommended settings for commands like ls and global variables like $EXIT (or possible a function) that helps to exit the file system. This would have to be run with source to work.