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