Up to Main Index                              Up to Journal for July, 2021

                      JOURNAL FOR SUNDAY 4TH JULY, 2021
______________________________________________________________________________

SUBJECT: Experiment finally unleashed…
   DATE: Sun  4 Jul 19:45:27 BST 2021

I’ve finally pushed out my experiment to the main WolfMUD git repository, now
everyone and anyone can grab a copy and play along. By pure coincidence it’s
on a branch called ‘experiment’. As the branch is now public it means no more
rebasing and rewriting history to cover up my mistakes :P For some reason
people seem to think all the code appears fully formed and perfect in my
repositories. I think the fact that I’m now considering restarting WolfMUD for
the second time in the same repository[1] proves otherwise!

I can’t believe it’s only been six weeks since I started this experiment and
already a lot of the core functionality has been implemented.

I’ve spent the last few days making sure the experiment branch is in a state
I’m now happy to share. Using it is very easy:


  git clone https://code.wolfmud.org/WolfMUD
  cd WolfMUD
  git checkout -b experiment origin/experiment
  go build -o bin ./...
  cd bin
  ./server


For Windows users the last line will be “.\server.exe”. You can keep up to
date as things develop using:


  cd WolfMUD
  git fetch origin
  git merge origin/experiment
  go build -o bin ./...


Since my last update I’ve moved player’s into their own Thing.Who inventory
for locations — i.e. ‘Who’ is here. I’ve also added crowd control to the
matcher and LOOK command. Crowd control was a popular feature where you don’t
try listing large numbers of players at a location — you just say there is a
crowd here. This is also a good way to keep things nice and responsive for
players ;)

When handling commands, messages now use multiple message buffers. This is
much simpler than the current implementation but still handles messages to the
actor, participants, observers and multiple locations. It even separates out
the actor and any participants from the observers automatically. All of the
current commands have been updated to notify participants and observers of an
actor’s actions as appropriate.

Dynamic aliases and qualifiers have been added. This is a new feature that is
not currently in WolfMUD. The dynamic alias lets a player refer to themselves
when executing commands using the alias SELF. For example ‘EXAMINE SELF’. SELF
will always only refer to the actor issuing a command.

Dynamic qualifiers allow players to refer to items in their own inventory
using a qualifier of ‘MY’. For example ‘EXAMINE MY SWORD’, as opposed to the
sword of the dead city guard laying at the player’s feet… This should make
inventory management easier for players.

A new COMMANDS command lists all of the currently implemented commands:


  >commands
  Commands currently available:

    #DUMP       DROP        INVENTORY   NORTHWEST   SE          UP
    #GOTO       E           L           NW          SOUTH       W
    #TELEPORT   EAST        LOOK        OPEN        SOUTHEAST   WEST
    CLOSE       EXAM        N           PUT         SOUTHWEST
    COMMANDS    EXAMINE     NE          QUIT        SW
    D           GET         NORTH       READ        TAKE
    DOWN        INV         NORTHEAST   S           U

  >


There are still a lot of features missing compared to the current WolfMUD. The
output to players isn’t pretty. There are no player accounts. The zone files
to load are hard-coded. The world is still in a frozen state with nothing
happening around the player.

The next feature being implemented will be actions for mobiles. This will
require an event system and scripting to be implemented. After that resets and
respawns, which require a working event system to function.

As long time readers will know, resets and respawns were the bane of WolfMUD
for a very long time. It took multiple iterations of the design to get working
well. I’m glad I've got this journal and the Git repository so I can look back
over what occurred last time and quickly skip over all the mistakes this time!

I’m still not sure where this experiment is leading me. However, I think it
will be the adding of these specific features that will make or break the
experiment, and decide whether the experiment will become the next WolfMUD…

--
Diddymus

  [1] See commit 7102d7ece9a0113f back in 2015.


  Up to Main Index                              Up to Journal for July, 2021