Up to Main Index                                          Up to PROTOTYPE2

                               GETTING STARTED

                           [Updated for PROTOTYPE2]

This guide details different ways of getting, setting up, installing,
compiling and running WolfMUD.

The basic methods are:


  1. Download binary + data resources and run it
  2. Using 'go get'
  3. Download sources and compile
  4. 'git clone' the sources and compile


For each method I will give a quick recipe for Linux and Windows environments.


NOTE TO ARM USERS
-----------------

There are now two ARM binary downloads. The ARMv5 Softfloat should be suitable
for all ARM processors although it will be slower than a build specific to the
ARM processor in use as it does floating point computations in software. The
ARMv6 Hardfloat should be suitable for ARM processors with hardware floating
point including the Raspberry Pi. For more information see:

  https://github.com/golang/go/wiki/GoArm


METHOD 1: DOWNLOAD BINARY + DATA RESOURCES
------------------------------------------

If you are keen and eager to see WolfMUD in action you can download one of the
server binary archives and one of the data archives. Make sure you get the
right binary download. The file naming is:


  wolfmud-os-arch-type.ext

  wolfmud - All downloads start with this prefix
       os - Operating system: Windows or Linux
     arch - Architecture: i386 - 32bit, amd64 - 64bit, ARM
     type - Type of stuff in the download
      ext - Extension: zip - zip file, tgz - gzipped tarball


So wolfmud-linux-amd64-server.tgz is WolfMUD for Linux 64bit and is the server
as a gzipped tarball. Once you have downloaded the right archives you just
need to unpack them.


  FOR LINUX
  ~~~~~~~~~
  Create a directory to keep everything in e.g. WolfMUD. Save the archives
  into this directory and unpack them. For example:


    cd ~
    mkdir WolfMUD
    cd WolfMUD
    tar -zxvf <downloaded-file-name>.tgz
    tar -zxvf wolfmud-data.tgz
    ./server


  FOR WINDOWS
  ~~~~~~~~~~~
  Create a folder to keep everything in e.g. C:\WolfMUD. Save the archives
  into this folder and unpack them into this folder e.g. Right click and
  'extract all'. Then double click server.exe to start the server.


Now go to the 'What you should see section'.


METHOD 2: GO GET
----------------

These instructions should work for a fresh install or if you are updating.

This assumes you have Go and Git already installed and are raring to go. What
follows is what I do. You may already be confident with Go and Git and have
your own ideas for setting things up differently ;)


  FOR LINUX
  ~~~~~~~~~

  Open a terminal and type:


    cd ~
    mkdir WolfMUD
    cd WolfMUD
    GOPATH=~/WolfMUD go get -u code.wolfmud.org/WolfMUD.git/...
    cd bin
    ./server


  FOR WINDOWS
  ~~~~~~~~~~~

  Open a Command Prompt - found under Programs → Accessories or you can select
  Start → Run... then type 'cmd' - without the quotes - in the input box and
  hit enter. This should open a terminal window into which you should type:


    cd C:\
    mkdir WolfMUD
    cd WolfMUD
    set GOPATH=C:\WolfMUD
    go get -u code.wolfmud.org/WolfMUD.git/...
    cd bin
    server.exe


NOTE: Depending on your internet connection etc there may be a long pause
after pressing enter on the line with 'go get' on it!

Now go to the 'What you should see section'.

If you look at the content of the WolfMUD directory now it should contain
three directories: bin, pkg, src. This is standard for a Go project. Under the
directory ~/WolfMUD/src/code.wolfmud.org/WolfMUD.git is the Git repository
where you can do all your normal Git stuff.


METHOD 3: DOWNLOAD SOURCES & COMPILE
------------------------------------

If you have go installed but don't use or don't want to use Git this method is
for you.


  FOR LINUX
  ~~~~~~~~~

  Download the sources to e.g. ~/wolfmud-source.tgz then open a terminal and
  type:


    cd ~
    mkdir -p ~/WolfMUD/src
    cd ~/WolfMUD/src
    tar -zxvf ~/wolfmud-source.tgz
    cd ..
    GOPATH=~/WolfMUD go install ./...
    cd bin
    ./server


  FOR WINDOWS
  ~~~~~~~~~~~

  Create a folder called WolfMUD in C: then in the WolfMUD folder create a
  folder called src. Then unzip the content of wolfmud-source.zip into the src
  folder.

  Open a Command Prompt - found under Programs → Accessories or select Run...
  then type run in the input box and hit enter. This should open a terminal
  window into which you should type:


    cd C:\WolfMUD
    set GOPATH=C:\WolfMUD
    go install ./...
    cd bin
    server.exe


Now go to the 'What you should see section'.


METHOD 4: Git CLONE & COMPILE
-----------------------------

Maybe 'go get' does not work for you for some reason or you just don't want to
use it. This is how to use a 'normal' Git clone.


  FOR LINUX
  ~~~~~~~~~

  Open a terminal and type:


    cd ~
    mkdir -p ~/WolfMUD/src/code.wolfmud.org/WolfMUD.git
    cd ~/WolfMUD/src/code.wolfmud.org
    git clone https://code.wolfmud.org/WolfMUD WolfMUD.git
    cd ~/WolfMUD
    GOPATH=~/WolfMUD go install ./...
    cd bin
    ./server


  FOR WINDOWS
  ~~~~~~~~~~~

  Open a Command Prompt - found under Programs → Accessories or select Run...
  then type run in the input box and hit enter. This should open a terminal
  window into which you should type:


    cd C:\
    mkdir C:\WolfMUD\src\code.wolfmud.org\WolfMUD.git
    cd C:\WolfMUD\src\code.wolfmud.org
    git clone https://code.wolfmud.org/WolfMUD WolfMUD.git
    cd C:\WolfMUD
    set GOPATH=C:\WolfMUD
    go install ./...
    cd bin
    server.exe


Now go to the 'What you should see section'.


WHAT YOU SHOULD SEE
-------------------

For all the different methods available you will get an executable server.
When you run the server you should see something like:


  2013/06/10 21:09 server.go:21: Starting WolfMUD server...
  2013/06/10 21:09 config.go:96: Checking for config.wrj in: /WolfMUD/bin
  2013/06/10 21:09 config.go:96: Checking for config.wrj in: /WolfMUD/bin/data
  2013/06/10 21:09 config.go:96: Checking for config.wrj in: /WolfMUD/bin/data
  2013/06/10 21:09 config.go:96: Checking for config.wrj in: /WolfMUD/bin/../…
  2013/06/10 21:09 config.go:104: Using: /WolfMUD/bin/../src/code.wolfmud.org/…
  2013/06/10 21:09 config.go:116: listen.address: 127.0.0.1
  2013/06/10 21:09 config.go:117: listen.port: 4001
  2013/06/10 21:09 config.go:118: mem.profile.rate: 0
  2013/06/10 21:09 config.go:119: stats.rate: 10s
  2013/06/10 21:09 config.go:120: data.dir: /WolfMUD/src/code.wolfmud.org/…
  2013/06/10 21:09 stats.go:98: A[620kb +620kb] HO[243 +243] GO[4 +4] PL 0/0
  2013/06/10 21:09 stats.go:67: Stats collection started, frequency: 10s
  2013/06/10 21:09 loader.go:52: Loading data file: zinara.wrj
  2013/06/10 21:09 loader.go:77: Loaded: Fireplace (Start)
  2013/06/10 21:09 loader.go:77: Loaded: Common Room (Basic)
  2013/06/10 21:09 loader.go:77: Loaded: Tavern entrance (Basic)
  2013/06/10 21:09 loader.go:77: Loaded: Tavern Bar (Basic)
  :
  :
  :
  2013/06/10 21:09 loader.go:77: Loaded: Rogue's Den Entrance (Basic)
  2013/06/10 21:09 loader.go:77: Loaded: Rogue's Den (Basic)
  2013/06/10 21:09 loader.go:77: Loaded: A curious brass lattice (Item)
  2013/06/10 21:09 loader.go:77: Loaded: A small green ball (Item)
  2013/06/10 21:09 loader.go:77: Loaded: A small red ball (Item)
  2013/06/10 21:09 loader.go:77: Loaded: An iron bound chest (Item)
  2013/06/10 21:09 decoder.go:19: Property "ref" not found. Defaulting to…
  2013/06/10 21:09 loader.go:77: Loaded: A runestone (Item)
  2013/06/10 21:09 item.go:44: Added A curious brass lattice to L1
  2013/06/10 21:09 item.go:44: Added A small green ball to L1
  2013/06/10 21:09 item.go:44: Added A small red ball to L1
  2013/06/10 21:09 item.go:44: Added An iron bound chest to L1
  2013/06/10 21:09 decoder.go:19: Property "ref" not found. Defaulting to…
  2013/06/10 21:09 item.go:44: Added A runestone to L13
  2013/06/10 21:09 item.go:44: Added A runestone to L23
  2013/06/10 21:09 item.go:44: Added A runestone to L8
  2013/06/10 21:09 item.go:44: Added A runestone to L29
  2013/06/10 21:09 item.go:44: Added A runestone to L37
  2013/06/10 21:09 world.go:43: Accepting connections on: 127.0.0.1:4001


Note that some of the lines above end in '…' where I have truncated them for
this guide. The statistics will update periodically while the server is
running and as you connect and disconnect from the server you will see other
messages being logged as well:


  2013/06/10 21:11 world.go:43: Accepting connections on: 127.0.0.1:4001
  2013/06/10 21:11 world.go:50: Connection from 127.0.0.1:33782.
  2013/06/10 21:11 client.go:106: Client created: Player 1
  2013/06/10 21:11 stats.go:98: A[703kb +124kb] HO[626 +386] GO[7 +3] PL 1/1
  2013/06/10 21:11 stats.go:98: A[709kb   +5kb] HO[627   +1] GO[7 +0] PL 1/1
  2013/06/10 21:11 stats.go:98: A[709kb   +0b ] HO[627   +0] GO[7 +0] PL 1/1
  2013/06/10 21:11 player.go:315: Player 1 is quitting
  2013/06/10 21:11 client.go:241: receiver ending for Player 1
  2013/06/10 21:11 client.go:121: Spawn ending for Player 1
  2013/06/10 21:11 stats.go:98: A[708kb -720b ] HO[614  -13] GO[6 -1] PL 0/1
  2013/06/10 21:11 stats.go:98: A[708kb   +0b ] HO[614   +0] GO[6 +0] PL 0/1


Now you can use a Telnet client to connect to the server with IP address
127.0.0.1 on port 4001:


  telnet 127.0.0.1 4001


You should see something similar the following appear, but in colour:


  Trying 127.0.0.1...
  Connected to 127.0.0.1.
  Escape character is '^]'.


  WolfMUD Copyright 2012 Andrew 'Diddymus' Rolfe

      World
      Of
      Living
      Fantasy

  South Bridge
  You are standing on the west side of an incomplete bridge. By the looks of
  it the city wants to expand onto the far banks of the river. Up river to the
  north you can see another bridge in a similar state of construction.

  You can see exits: West
  >


Now you can walk around using the commands N,S,E,W,U,D or NORTH, SOUTH, EAST,
WEST, UP and DOWN depending on the exits available. If you find an object you
can use GET,DROP,EXAM or EXAMINE and WEIGH. You can see what you are carrying
by using INV or INVENTORY. You can also SNEEZE - which tests the messaging
system. You should be told you sneezed, other players at your location should
see you sneeze, everybody else should hear a loud sneeze. You can also QUIT to
end your session. Currently there are no logins or accounts, when you connect
you are PlayerX where X is a number that increments with each login.

Don't forget it's multiuser so log in with multiple Telnet sessions and play
around. WHO will tell you who else is logged in.

Have fun!
--
Diddymus


  Up to Main Index                                          Up to PROTOTYPE2