GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - bbuck/dragon-mud: A text-based game engine written in Go and scripted with Lua.

BranchesTags
Open more actions menu

Latest commit

 

History

300 Commits
300 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
ansi
ansi
 
 
auth
auth
 
 
builtin
builtin
 
 
cmds/dragon
cmds/dragon
 
 
command
command
 
 
config
config
 
 
docs
docs
 
 
event
event
 
 
game
game
 
 
gametest
gametest
 
 
install
install
 
 
message
message
 
 
plugin
plugin
 
 
random
random
 
 
scaffold
scaffold
 
 
schema
schema
 
 
scripting
scripting
 
 
session
session
 
 
store
store
 
 
termlog
termlog
 
 
transport
transport
 
 
view
view
 
 
watch
watch
 
 
world
world
 
 
.gitignore
.gitignore
 
 
README.md
README.md
 
 
dragon
dragon
 
 
dragon.exe
dragon.exe
 
 
go.mod
go.mod
 
 
go.sum
go.sum
 
 
hello.lua
hello.lua
 
 

Repository files navigation

DragonMUD

DragonMUD is an engine for text-based multiplayer games, written in Go and extended with Lua.

  • One binary, no setup. Storage is SQLite; there are no external services.
  • Modern and classic clients. Players can use a web client with a text feed, tooltips, health bars and action bars, or any telnet MUD client. Both play the same game.
  • Plugins in Lua. Game rules come from plugins. Each plugin declares where its event handlers run, and the game author can rewire them, so unrelated plugins layer predictably.

DragonMUD is being rebuilt from scratch. It's early: there's one room and a handful of commands, but you can already create a game and play it from a browser and a telnet client at the same time.

Try it

go install ./cmds/dragon
dragon new mygame -name "The Dragon's Rest"
cd mygame
dragon serve

Then open http://localhost:8080, or telnet localhost 4000. Edit game/commands.lua to add commands; changes load as soon as you save.

Documentation

  • Vision: who it's for and what "the directory is the game" means.
  • Design: the core (game loop, objects, events, messages, transports, scripting).
  • Plugins: packages, extension, distribution, the web client API.
  • Roadmap: milestones, docs still to write, and what's been salvaged from the original engine.

Development

go build ./...
go test ./...
go run ./cmds/dragon serve -dir path/to/game

Requires Go 1.26 or newer.

About

A text-based game engine written in Go and scripted with Lua.

Topics

game-enginegolangluamudmud-enginemud-serverplugin-systemtelnet

Resources

Readme
Activity

Stars

123 stars

Watchers

17 watching

Forks

17 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.