I've always been into MUDs since the mid-90s and every now and then I get this idea to write one from scratch (again) and I get pretty far and then I lose interest.
The new one is browser based.
The mud engine runs in a web worker and takes advantage of some of the modern web tricks to do stuff. For instance, data files (think: area files that don't change often) can be stored remotely and then cached with a service worker. This allows the MUD to run offline. But that's only fun if you're playing solo.
IO between the UI and worker is handled by message passing.
Multiplayer is handled by the MUD opening an outbound connection (probably websocket) to a connection collector host. Other players would then connect to that host and have their IO routed appropriately. The host can even be smarter: it could be a specialized Discord client, allowing users to play from there. Firebase may also be involved. I don't know.
The important bit is that this is still basically message passing, so the engine won't need to know the difference between the local user and a remote user.
The MUD database would be an IndexedDB. Probably. I haven't thought as much about that yet.
I am sure all of this is theoretically possible, at least.
YES! Another MUD programmer! I started writing one in Meteor about eleven years ago. I don't even know if Meteor's still a thing anymore... I've had a few projects in Rust that were mixtures of roguelike and MUD models, conceptually. I usually got aggravated with the models I created, though.
I really like your multiplayer idea. That sounds really clean and flexible.
After some research, mostly in /r/GermanCitizenship, I recently applied for and received my German passport, based on my mother being German at the time I was born.
There are a lot of subreddits with a lot of useful information. Search for "citizenship by descent" (not just on reddit and not just about Germany) and you'll be overflowing with stuff.
One of the "perks" of my Walmart+ membership is scan-as-you-go. I think I've used it twice. Both times, I only had a few things and the store was packed solid with spring breakers. It was a decent experience but I still like the normal self-checkout the best.
I had the same problem with these questions. Then one day a recruiter said to me, "kageneko, your engineering skills are on top, but your question answering is really bad. I think it would help if you wrote down some questions and answers beforehand."
So, I did. I tried to remember every question every recruiter had asked me (and started taking notes from then on). I wrote down 1-2 paragraph answers for each question. I found that just the act of writing down these answers and reviewing them later helped even when the interviewer would ask questions that were not on my practice sheet. It would nudge my memory and keep things fresh and a lot of things could be used for related topics.
Screen readers often read things in particular ways that non-screen readers would interpret differently. One example that I've run into is using all caps to label something, like "ACCOUNT NAME". Screen readers will typically read out each letter individually instead of as a word. There could be other things, like describing field colors or something that are not as useful when audio only.
Professor Bartle is quite approachable. Somewhere in my archive is the original code for his MUD1 that he forwarded to me.
Update: I'll have to ask if I can link the zip, but here is the opening text:
;Copyright (C) 1983 by
;Richard Bartle & Roy Trubshaw,
;Essex University, Colchester. CO4 3SQ.
;
; This software is furnished on the understanding that
;it may be used and or copied only with the inclusion of this
;notice. No title or ownership of this software is hereby
;transferred. The information in this software is subject to
;change without notice. No responsibility is assumed for the
;use or reliability of this software.
name valley
persona mud
@txtcbt
@txtlev
@txthrs
*rooms 96
I heard the acronym was "multi undergraduate destroyer" although I'm thankful I dodged that bullet only to get taken out by working too much at my "part time" job :-/
Coding a MUD is what switched me from Health Science to Computer Science in 1996. Though, in hindsight, I wish I'd gotten a double major in both subjects.
For drawing, diagramming, and writing things out, I often use an iPad Pro and Apple Pencil, with the Paper app [0]. I find that writing with a pencil-type thing works better for me than typing.
I also do Rubber Duck brainstorming. This is often for asynchronous collaboration with other people. I'll start up an audio recording and kinda do a stream-of-consciousness thing. If necessary, I'll go through later and edit it or take more notes from what I just said. If I'm using Paper, I'll often do a screen recording at the same time, so I can talk while I'm drawing/diagramming.
If I _have_ to use other tools, I prefer Markdown over pretty much anything. I really like StackEdit [1] because it's browser based, easy to use, and easy to sync with git repos. I take session notes for my D&D group and they automatically get turned into GitHub Pages.
I've bought a few non-smart TVs from Wal-mart: Sceptre brand. They were cheap and functional. I use them with Fire TV sticks, XBox, and this NUC that I've got sitting around.
The new one is browser based.
The mud engine runs in a web worker and takes advantage of some of the modern web tricks to do stuff. For instance, data files (think: area files that don't change often) can be stored remotely and then cached with a service worker. This allows the MUD to run offline. But that's only fun if you're playing solo.
IO between the UI and worker is handled by message passing.
Multiplayer is handled by the MUD opening an outbound connection (probably websocket) to a connection collector host. Other players would then connect to that host and have their IO routed appropriately. The host can even be smarter: it could be a specialized Discord client, allowing users to play from there. Firebase may also be involved. I don't know.
The important bit is that this is still basically message passing, so the engine won't need to know the difference between the local user and a remote user.
The MUD database would be an IndexedDB. Probably. I haven't thought as much about that yet.
I am sure all of this is theoretically possible, at least.