Skip to content

About

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

Topics

Resources

Stars

123 stars

Watchers

17 watching

Forks

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

Resources

Stars

123 stars

Watchers

17 watching

Forks

Releases

Packages

Used by

Contributors

Languages