Up to Main Index                              Up to Journal for June, 2021

                      JOURNAL FOR FRIDAY 18TH JUNE, 2021

SUBJECT: WolfMini goes multi-player
   DATE: Fri 18 Jun 20:27:12 BST 2021

Once again I’ve been busy working away on WolfMini and… hrm, I’ll just let the
latest commit speak for itself:

  cmd,proc: Go multiplayer...

  Currently the game is single player without even a hint of goroutines.
  However, the interesting "stuff" happens when we have multiple players
  and things going on in the background. To do that we need a lot of
  planning, preparation, server code, client code, accounts, logins,
  networking, careful locking and synchronisation... or...

  This commit slaps in some networking code, a BWL (Big World Lock) and
  just goes multiplayer :P Yes, a hack job...

  There are no accounts and no logins - you get assigned a number and
  become playerN.

  As there is no inter-player messaging yet you won't see other players
  entering and leaving locations, or doing interesting things. However,
  LOOK will correctly show players in your current location.

  There is currently only one lock, the BWL (Big World Lock), you get to
  stop the world while your command is handled, which could prove very
  interesting but works for now. I wonder what performance with a few
  thousand bots would be like...

Yes, WolfMini is now multi-player… well sort of — still a lot of work to do,
but not bad for a 15-20 minute hack :)

In other commits, I finished off the new item matcher code for use in command
parsing. That took a lot longer than I thought it would. All of the currently
implemented commands have been updated for the matcher.

Next, I think I’ll add inter-player messaging so that you can see what other
players are doing and when they enter and leave locations. For this I’m
thinking of having player “mailboxes” where you post messages for the player
to receive asynchronously — a bit like the work I did recently for WolfMUD
proper so that command processing and networking were asynchronous and slow
clients didn’t slow down command processing for others.

I’ve had quite a few requests for the WolfMini code now and need to decide how
best to make it generally available. I’m thinking I could create an orphaned
Git “experimental” branch in the main WolfMUD repository. That way it’s kept
separate for now, but everyone can just clone the repository and checkout the
branch. It also means that if this is the way forward I can just merge the
experimental branch into the dev and main branches and let it take over. I can
also tweak my site scripts to add when the experimental branch changes to the
bottom of the downloads and Git repository page like I do for the dev branch.

Maybe that’s something to look at over the weekend…


  Up to Main Index                              Up to Journal for June, 2021