/GoMud

Public repository for GoMud, a Go based Mud server.

Primary LanguageGoGNU General Public License v3.0GPL-3.0

GoMud

image

This is an early version of GoMud, having only been in development a couple of months.

Screenshots for some of the features can be found here.

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

Can be run locally as a standard go program or via docker container. The default port is 33333.

There is some stubbed out folders/files/code bits for a web service and web client, but nothing substantial or even moderately functional yet. Later this should use websockets to connect, and be able to server game-aware pages up.

NOTE: Certain admin in-game commands can be destructive. For example, the build command is notoriously finicky if you don't understand what you are doing. Although there is some documentation, it doesn't mean stuff won't get missed, plus it's possible to accidentally mess up typing something and then can be tricky to fix if you don't first understand the underlying mechanisms. Now that there is a user prompt system working this can probably be improved considerably in the near future, and building or modifying a room can be a series of prompts.

The network layer will eventually be overhauled and possibly include support for the alternative screen buffer mode at some point.

Scripting

Information on scripting in GoMud can be found in the scripting README.

Small Feature Demos

Quick Start

A youtube playlist to getting started has been set up here:

Getting Started Videos

You can compile and run it locally with:

go run .

Or you can just build the binary if you prefer:

go build -o GoMudServer

./GoMudServer

Or if you have docker installed:

docker-compose -f provisioning/docker-compose.yml up --build --remove-orphans server

From there you should see some logging, and once ready, connect to localhost on port 33333 with a telnet client and use the default admin login:

Username: admin

Password: password

Makefile usage

There are a number of make targets that might be useful for building/running the MUD.

You can type make help to see a couple make targets worth knowing about.


Go Specific Makefile targets

These require Go to be installed locally

Run go vendor/tidy/verify:

make mod

Run in a container (port 33333):

make run

Connect to running container via a container client:

make client

Build the go-mud-server binary:

make build


To Restart Docker Daemon

From powershell w/ admin priv:

restart-service *docker*


Dockerfile specific Makefile targets

These require Docker to be installed locally

Build/Run in Docker container:

Will run on port 33333 in the container and publicly exposes port 33333 ( per provisioning/dockerdocker-compose.yml ):

make run

Get exposed port of running container:

make port


Connecting to server

Connection can be made with any terminal program (telnet, nc, etc)

telnet localhost 33333


NOTE: Windows default telnet client is no longer compatible with typical ANSI Escape codes.


Connect using custom client

This will build a lightweight linux container and use it to telnet to the server. This is useful especially on windows where ANSI color escape sequences are borked.

make client

Or using docker (localhost connection)

docker run --rm -u root -it busybox:latest telnet host.docker.internal 33333

Or using docker (external connection)

docker run --rm -u root -it busybox:latest telnet {hostname/ip} 33333

Some Notes