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… -- Diddymus Up to Main Index Up to Journal for June, 2021