LAND - A Multi-User Dungeon (well almost)

new games to be launched and discussed here
fuzzel
Posts: 462
Joined: Sun Jan 02, 2005 1:16 pm
Location: Cullercoats, North Tyneside
Contact:

Re: LAND - A Multi-User Dungeon (well almost)

Post by fuzzel » Sun Nov 17, 2019 1:31 pm

tricky wrote:
I know you've done it now, but did you try BBC BASIC for your main OS?
A few years back I wrote the first level of Lords of Time Part 2 in Basic, and from recollection it had around 30 locations and probably a dozen objects. Even at that small scale the file was quite large but the worst part was the speed of printing the location as you moved around. I'm thinking Philosopher's Quest here. I then abandoned the project, deciding to pluck up the courage at a later date to do an assembly language adventure instead. I'm glad I did!
tricky wrote:
I wonder if anyone has or would add serial emulation to one of the emulators (jsbeeb maybe - web permitting) to allow beeb connections between emulated beebs?
This sounds fascinating and I've only given it a cursory thought so far. My realistic idea of a MUD was really to incorporate computer generated mobiles, some creatures like goblins and elves, but also pretend adventurers, for example, Arnie the Berserker and Hecate the Witch, but I'd really like to experiment with programming a true MUD. Am I correct in thinking that I could use Beebem's Econet facility to connect several versions of Beebem running on my PC? I envisage one version would be the Master, on which the game itself would be running, and have several slave versions which would sent their inputs to the Master which would perform the action and send a message back to the slave screen, the important point being that only one version of the game would be running (on the Master).

User avatar
tricky
Posts: 3815
Joined: Tue Jun 21, 2011 8:25 am
Contact:

Re: LAND - A Multi-User Dungeon (well almost)

Post by tricky » Sun Nov 17, 2019 1:36 pm

I meant the "compressor".
Don't know about Econet, but I seem to remember a network option proposal.
If you have real time wandering monsters, then you aren't that far off multi-player, but it might add a big overhead to puzzle solving.

fuzzel
Posts: 462
Joined: Sun Jan 02, 2005 1:16 pm
Location: Cullercoats, North Tyneside
Contact:

Re: LAND - A Multi-User Dungeon (well almost)

Post by fuzzel » Sun Nov 17, 2019 1:41 pm

There are loads of brochures / manuals on Chris's Acorns website which I've downloaded. I'll read through them and see if I can get a connection working between two emulated beebs. I will of course have to handle data transfer using assembly language so will have a read through the advanced user guide. I presume Acorn User and Micro User would have had articles on using Econet so I'll trawl through those as well.

fuzzel
Posts: 462
Joined: Sun Jan 02, 2005 1:16 pm
Location: Cullercoats, North Tyneside
Contact:

Re: LAND - A Multi-User Dungeon (well almost)

Post by fuzzel » Sun Nov 17, 2019 8:04 pm

Looking into it, I think Econet is probably most useful in the context of a LAN and the sharing of peripherals eg disc drives and printers.
Beebem's RS423 Comm function sounds more appropriate. I've just used it to play a MUD through Commstar and it works ok.
The question is, how do I use it to connect to another emulator, either on the same PC or on another PC on my home network ?
What I'd like to do, if anyone can help, is to send a test set of data, even just a couple of bytes to another PC in my home running Beebem.

WrightStuff
Posts: 19
Joined: Fri Mar 16, 2012 1:54 pm
Contact:

Re: LAND - A Multi-User Dungeon (well almost)

Post by WrightStuff » Sun Nov 17, 2019 10:03 pm

fuzzel wrote:
Sun Nov 17, 2019 1:31 pm

Am I correct in thinking that I could use Beebem's Econet facility to connect several versions of Beebem running on my PC? I envisage one version would be the Master, on which the game itself would be running, and have several slave versions which would sent their inputs to the Master which would perform the action and send a message back to the slave screen, the important point being that only one version of the game would be running (on the Master).
Yes you can do that.
All you need is the Econet Advanced User Guide, all the OS calls to send/receive messages and even example programs are in there.
The Econet emulation in Beebem works perfectly well until you start chucking round lots of messages at the same time. Then it seems to get clogged up and weird errors like 'line jammed' start occurring.
I think in later (4.x?) versions of Beebem you can configure RS423 output to a named ip/port, so you should be able to get 2 Beebem instances talking to each other. An RS423 implementation is going to be simpler to implement but then you are limited to a maximum of 2 human players ?

WrightStuff
Posts: 19
Joined: Fri Mar 16, 2012 1:54 pm
Contact:

Re: LAND - A Multi-User Dungeon (well almost)

Post by WrightStuff » Tue Nov 19, 2019 10:41 pm

fuzzel wrote:
Sun Nov 17, 2019 8:04 pm
Looking into it, I think Econet is probably most useful in the context of a LAN and the sharing of peripherals eg disc drives and printers.
Beebem's RS423 Comm function sounds more appropriate. I've just used it to play a MUD through Commstar and it works ok.
The question is, how do I use it to connect to another emulator, either on the same PC or on another PC on my home network ?
What I'd like to do, if anyone can help, is to send a test set of data, even just a couple of bytes to another PC in my home running Beebem.
Ok, this is how you do it over RS423 (assumes 2 Beebem instances running on the same physical machine) :
  • Unzip to a pc folder
  • Run ncat.exe from a cmd prompt : 'ncat -v --broker 25232'
  • ncat should report 'ncat: Listening on 0.0.0.0:25232'
NOTE: you may have to whitelist this application with your antivirus/firewall to prevent it being identified as malicious and quarantined/blocked.

Then load up 2 instances of Beebem, and do this on each :
  • Options -> Freeze when inactive : off (unchecked)
  • Comms -> RS423 Destination -> IP:localhost:25232
  • Comms -> RS423 On/Off : on (checked)
On each Beebem instance load up or type in JGH's simple serial chat prog :

Code: Select all

10 ON ERROR OSCLI "FX2":OSCLI "FX3":REPORT:PRINT:END
20 *FX229,1
30 *FX2,2
40 REPEAT
50 IF ADVAL(-1):OSCLI "FX3,3":VDU GET:*FX3
60 IF ADVAL(-2):OSCLI "FX2,1":VDU GET:*FX2,2
70 UNTIL FALSE
Then just chat....a keypress in one Beebem instance will appear in the other, and vice-versa.

fuzzel
Posts: 462
Joined: Sun Jan 02, 2005 1:16 pm
Location: Cullercoats, North Tyneside
Contact:

Re: LAND - A Multi-User Dungeon (well almost)

Post by fuzzel » Wed Nov 20, 2019 1:38 pm

Many thanks for this, WrightStuff, I've found a few articles in the Micro User regarding getting two BBCs to talk to each other but obviously that involved two physical beebs with a cable, not appropriate to those running emulators. I should now be able to start work on a simple program to demonstrate it works. Am I right in thinking this method will only work for two emulated beebs ? If so, I guess the Econet route would be an option.
For information, the articles referred to above are from the September and October 1983 issues written by Paul Beverly.

WrightStuff
Posts: 19
Joined: Fri Mar 16, 2012 1:54 pm
Contact:

Re: LAND - A Multi-User Dungeon (well almost)

Post by WrightStuff » Wed Nov 20, 2019 3:57 pm

Using ncat in broker mode you are not restricted to 2 emulated Beebs. You can have as many as you like. An emulated RS423 broadcast network of sorts.
The important thing to note is that any data sent to the broker is sent out to everybody else who is connected, except the author.
So with more than 2 users connected you would have to do some filtering in the client program to prevent a client acting on data not intended for them because everybody (apart from the author) receives all data. A check on the first byte of a new msg maybe ??

fuzzel
Posts: 462
Joined: Sun Jan 02, 2005 1:16 pm
Location: Cullercoats, North Tyneside
Contact:

Re: LAND - A Multi-User Dungeon (well almost)

Post by fuzzel » Sat Nov 30, 2019 2:18 pm

I've had to reprogram the parser analysis again, this time because I'm trying to emulate MUD where you can have several of the same object eg brands, umbrellas and boats to cater for several players. The problem manifested itself thus. If you type TAKE BRAND then the program would look through the list of objects until it found a match i.e. brand 1. However, that particluar brand could have been somewhere else. I then got the program to keep looking until it found the correct one in the location eg brand 5. When it found that it would take it. However, when it came to drop the brand eg brand 1 it would look until it found one in the location which was obviously no use. To solve the problem I've had to devise verb types as follows:
Type 1 eg GET - noun can be in location or worn
Type 2 eg PULL - noun can be in location only
Type 3 eg EAT - noun can be in possession or location
Type 4 eg DROP - noun can be in possession or worn
Type 5 eg WAVE - noun can be in possession only
Type 6 eg REMOVE - noun can be worn only
Type 7 eg NORTH - no noun required
Type 8 eg EXAMINE - noun can be in location, in possession or worn
All 96 verbs now have a type and the appropriate subroutine will deal with the object accordingly using its own rules.
This seems to have solved the problem. Having to incorporate several verb categories isn't something you'd consider for a second when playing someone else's game. Has anyone else writing a text adventure encountered a similar problem?

fuzzel
Posts: 462
Joined: Sun Jan 02, 2005 1:16 pm
Location: Cullercoats, North Tyneside
Contact:

Re: LAND - A Multi-User Dungeon (well almost)

Post by fuzzel » Sun Dec 01, 2019 2:54 pm

I've now included a value for all treasures and updated the SCORE command to accommodate. In the game you drop your treasures in a sanctuary location, in this case the lake. I've also added a VALUE command so you can see what each object is worth before you dispose of it. This will have one use in particular in the game..
Land Score.jpg


fuzzel
Posts: 462
Joined: Sun Jan 02, 2005 1:16 pm
Location: Cullercoats, North Tyneside
Contact:

Re: LAND - A Multi-User Dungeon (well almost)

Post by fuzzel » Sun Dec 01, 2019 7:35 pm

Thanks tricky. I'm greatly enjoying writing it, particularly the improvements I'm doing with still more on the way. I'm being extremely faithful to the original in terms of location text, objects and puzzles and with the Beeb's sideways ram I'm confident I'll have more than enough memory to cope. The speed's impressive too, it being written in assembly language. Here's another change I made last week. I'd originally decided to print short object descriptions in the location and also the inventory with a more detailed description if you type EXAMINE. However, to be faithful to the original I've switched to long object descriptions for the locations. See examples below:

Short description:
land loc short obj desc.jpg
Long description:
land loc long obj desc.jpg
Regarding, Arnie's shotgun, I'll explain a bit closer to the release date what that's all about!

fuzzel
Posts: 462
Joined: Sun Jan 02, 2005 1:16 pm
Location: Cullercoats, North Tyneside
Contact:

Re: LAND - A Multi-User Dungeon (well almost)

Post by fuzzel » Sat Dec 07, 2019 5:48 pm

I've spent the last couple of days rewriting my wordwrap routine, it was bugging me that occasionally a space in position 40 on the line would cause the wordwrap routine to print a blank line. Rather than find my error I drew out a new flowchart from scratch and reprogrammed it, first in assembly language and then quickly a BASIC version because I knew there'd be bugs and it's so much easier to bug test in BASIC. The new wordwrap had the added benefit of being able to handle the location text which previously I wrote as four separate data statements because BASIC can only cope with 240 characters per line. I had to wordwrap each block of text and if this resulted in one word on a new line or a short line, I had to adjust that block and the next block. My new version prints all the locations, one following the next and also seemlessly adds on the objects. So the presentation now looks a lot more professional. I've also incorporated the wordwrap into inventory printing so this also looks a bit tidier. Here's a comparison for one location, old v new. I'll do a big test tomorrow to make sure it works ok then I can get back onto puzzle code writing.
Old version:
Warm Room Old.jpg
New version:
Warm Room New.jpg

User avatar
jgharston
Posts: 3755
Joined: Thu Sep 24, 2009 11:22 am
Location: Whitby/Sheffield
Contact:

Re: LAND - A Multi-User Dungeon (well almost)

Post by jgharston » Sat Dec 07, 2019 10:19 pm

WrightStuff wrote:
Sun Nov 17, 2019 10:03 pm
All you need is the Econet Advanced User Guide, all the OS calls to send/receive messages and even example programs are in there.
The Econet network transmit and receive calls are neatly packaged up in the Net library and a demo of them in BeebFrame.

Code: Select all

$ bbcbasic
PDP11 BBC BASIC IV Version 0.25
(C) Copyright J.G.Harston 1989,2005-2015
>_

User avatar
leenew
Posts: 3993
Joined: Wed Jul 04, 2012 3:27 pm
Location: Doncaster, Yorkshire
Contact:

Re: LAND - A Multi-User Dungeon (well almost)

Post by leenew » Sun Dec 08, 2019 10:18 am

Just popped in to say hello and to say I am really enjoying watching the development of this game.
Well done mate =D>

Lee.

User avatar
streaks
Posts: 268
Joined: Thu Oct 13, 2005 2:08 pm
Contact:

Re: LAND - A Multi-User Dungeon (well almost)

Post by streaks » Mon Dec 09, 2019 10:48 pm

"You own nothing. You are wearing nothing. What now?"

Good question. What the hell did I do last night?
streaksy (at) gmail (dot) com

fuzzel
Posts: 462
Joined: Sun Jan 02, 2005 1:16 pm
Location: Cullercoats, North Tyneside
Contact:

Re: LAND - A Multi-User Dungeon (well almost)

Post by fuzzel » Wed Dec 11, 2019 5:50 pm

streaks wrote:"You own nothing. You are wearing nothing. What now?"

Good question. What the hell did I do last night?
Hi streaks, I'm sure you'll find out soon enough on social media. :D
A very appropriate moniker for your post you have too !

Post Reply