Code Monkey home page Code Monkey logo

gomud's Introduction

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

gomud's People

Contributors

volte6 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.