Skip to content

Volte6/GoMud

Repository files navigation

GoMud

image

GoMud is an in-development open source MUD (Multi-user Dungeon) game world and library.

It ships with a default world to play in, but can be overwritten or modified to build your own world using built-in tools.

User Support

If you have comments, questions, suggestions:

Github Discussions - Don't be shy. Your questions or requests might help others too.

Discord Server - Get more interactive help in the GoMud Discord server.

Guides - Community created guides to help get started.

Screenshots

Click below to see in-game screenshots of just a handful of features:

Feature Screenshots

ANSI Colors

Colorization is handled through extensive use of my github.com/Volte6/ansitags library.

Small Feature Demos

Connecting

TELNET : connect to localhost on port 33333 with a telnet client

WEB CLIENT: http://localhost/webclient

Default Username: admin

Default Password: password

Env Vars

When running several environment variables can be set to alter behaviors of the mud:

  • CONFIG_PATH=/path/to/alternative/config.yaml - This can provide a path to a copy of the config.yaml containing only values you wish to override. This way you don't have to modify the original config.yaml
  • LOG_PATH=/path/to/log.txt - This will write all logs to a specified file. If unspecified, will write to stderr.
  • LOG_LEVEL={LOW/MEDIUM/HIGH} - This sets how verbose you want the logs to be. (Note: Log files rotate every 100MB)

Why Go?

Why not?

Go provides a lot of terrific benefits such as:

  • Compatible - High degree of compatibility across platforms or CPU Architectures. Go code quite painlessly compiles for Windows, Linux, ARM, etc. with minimal to no changes to the code.
  • Fast - Go is fast. From execution to builds. The current GoMud project builds on a Macbook in less than a couple of seconds.
  • Opinionated - Go style and patterns are well established and provide a reliable way to dive into a project and immediately feel familiar with the style.
  • Modern - Go is a relatively new/modern language without the burden of "every feature people thought would be useful in the last 30 or 40 years" added to it.
  • Upgradable - Go's promise of maintaining backward compatibility means upgrading versions over time remains a simple and painless process (If not downright invisible).
  • Statically Linked - If you have the binary, you have the working program. Externally linked dependencies (and whether you have them) are not an issue.
  • No Central Registries - Go is built to naturally incorporate library includes straight from their repos (such as git). This is neato.
  • Concurrent - Go has concurrency built in as a feature of the language, not a library you include.