Skip to content

welterde/mudkip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

================================================================================
 MUDKIP
================================================================================

A Go based MUD server.

This is work in progress. Expect commits that will significantly change the
overal structure of the project and possibly break stuff.

The server is a basic, custom written HTTP server. The game can therefor be
accessed, modified and played through any regular webbrowser. Most of the game
API is exposed through a JSON based Api. This allows one to write a custom
client if need be.

The server is capable of hosting multiple game worlds simultaneously. Users can
either play in an existing world, or create/manage their own.

The mudkip server can listen on a secure socket using TLS/SSL. This means we
have to specify a Key file and certificate file in the server config if secure
is set to true. For testing purposes, we can generate a self-signed key file
and certificate. Check out the following website for a rundown on how this
works: http://www.akadia.com/services/ssh_test_certificate.html. Note that when
you visit your server using a self-signed certificate, your browser may yield 
a security error. In Chromium this will be something along the lines of 
"The site's security certificate is not trusted!". Just hit "Proceed anyway" to
continue testing the server. Do not do this unless you are absolutely sure you
are connecting to your own server. When starting the server in secure mode, you
access it thruogh a webbrowser, using 'https' as the protocol. For example, when
listening on address 127.0.0.1 and port 8081:

 - Non-secure url: http://127.0.0.1:8081
 - Secure url: https://127.0.0.1:8081

Cookies are used for account management. It should be noted that cookies have
the 'secure' flag set only when you run the server in secure mode. This means
that cookies generated by a secure server, will not be sent by the client when
you later decide to run the server in non-secure mode. The user will have to
log in again. Cookie content is always encrypted, regardless of whether we run
the server over SSL or not.

================================================================================
 DEPENDENCIES
================================================================================

There are a few external packages this project relies on. The following are
required. There may be additional requirements, depending on which datastore
you choose to use. Refer to mudkip/data/<datastorename>/README for specifics.

- go-pkg-optarg from http://github.com/jteeuwen/go-pkg-optarg
- go-pkg-ini from http://github.com/jteeuwen/go-pkg-ini

================================================================================
 USAGE
================================================================================

To start with, make sure you have the latest Go build environment installed and
running. See http://golang.org/doc/install.html for a guide.

If you already have Go, make sure you have the latest release build:

 $ cd $GOROOT/src
 $ ./clean.bash
 $ cd ..
 $ hg pull
 $ hg update release
 $ cd src
 $ ./all.bash

To get this project up and running, follow the steps below.
 
 $ cd /path/to/codedir
 $ git clone http://github.com/jteeuwen/mudkip.git
 $ cd mudkip

Optionally, modify the main makefile to set the appropriate DATASTORE value.
This value indicates which database driver to compile into the server. We opt to
make this choice at compile time to reduce the server binary size. There is no
need to have the unused drivers in there. All the drivers compile to a package
named mudkip/store.a. This is also why we can build only one of them.

 $ make

================================================================================
 LICENSE
================================================================================

All code is subject to a 1-clause BSD license. See the LICENSE file for its
contents. This excludes mudkip/data/sqlite/sqlite.go which was written by Russ
Cox and falls under the Go Authors License.

About

A go based MUD client/server setup. For experimental use only.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published