Thinking about Seltani again
Friday, July 7, 2023
Comments: 12 (latest 1 day later)
Tagged: seltani, myst online, tworld, mysterium, twine, muds, interactive fiction, if, multiplayer if
"...After all this time..."
Hanging out at Mysterium (via Discord) reminded me about Seltani. And how I've done practically nothing with it since 2015.
Some of you just said "Oh, that old thing" but I have new followers too. So I will give a tiny short overview of what Seltani is.
So what is Seltani?
About ten years ago, Myst Online was playable -- Cyan had brought the servers back up -- but it was static. Age-building was a niche-of-a-niche activity among fans. The tools were clunky and the fan Ages weren't released on the official server anyhow.
Look, I said to myself, 3D modelling is hard. Text is easy. Twine is a super-approachable model for writing interactive text; anybody can start writing a Twine piece in five minutes.
What if there were an online Myst environment which worked like multiplayer Twine? Or, to come at it from the other direction: what if there were a MUD which played like hypertext instead of Zork?
So I built that. I themed it as Myst -- the underground D'ni city which is the core setting of Myst Online. But rather than trying to recreate the 3D environment of the original game, I just described it as text. Explorable, interactive text environments. And then I started writing Ages.
I launched Seltani ("the New Writers") in June of 2013. Ten years ago! I presented it to the fans at Mysterium 2013 in Rochester. Here's the talk I gave. The talk goes into a lot more detail, but here's Seltani's building interface:
The building system is a lot like writing little wiki pages. You can start with a simple room description, then add some exits, then add some actions. The scripting language is (simplified) Python. Pretty soon you have a whole interactive puzzle, or whatever you want.
So how'd it go?
Quite a few Myst fans got into Seltani! People started trying it out as soon as I finished my Mysterium talk. For a couple of months, my text version of the Cavern was pretty lively.
After that, though, it tailed off. It was really easy to build stuff in Seltani, but there was no social component other than "go to the hub neighborhood and chat". People had no motivation (social or mechanical) to visit each other's creations. Once everybody got over the buzz, it felt pointless, so people drifted away.
I ran a Seltani jam in late 2013 and then more or less mothballed the project. The server runs itself; people visit occasionally; it's not a going concern.
(I did show it off at Indiecade 2015. Again, people thought it was cool but didn't stick around. More recently, Emily Short ran another Seltani jam in 2021.)
So why are you bringing it up?
-
I just spent the weekend hanging out with the old Myst crowd! Brings back the feels.
-
I think that the Seltani model is really good. I mean, it worked. People were able to make it fly. I hate to see it languish.
-
I've built 24 Ages in Seltani -- most in the first three months of the project. Myst Online had about that many Ages when it shut down in 2008, and that was way more than one person and three months of work. Yes, mine are textual, but does that make them less worth exploring?
-
Not to hammer a point, but I'm still job-hunting. It would be silly not to look back at my past projects and think about future potential. And Seltani has potential!
The problem is, Seltani needs a bunch of work. More work than I can justify plowing in, even while unemployed. (I need to get in gear with Rust or Golang, not polish ancient Python.)
So what does Seltani need?
First, the ancient Python is ancient. The server is still running Python 3.4. (The rest of the world is on 3.9 to 3.11.) I've got equally obsolete versions of MongoDB and so on. It's so old that all the async Python functions are generators instead of using, you know, the async
keyword. So that needs some love and hammering.
Second: Social features. I always intended users to be able to set up "neighborhoods" or "guilds" or some kind of invite-based social group. And then groups could build their own private shared Ages, and go on group puzzle-solving missions, and all that good stuff. Group chat channels. Shared book collections. I specced some of this stuff out, but I never got around to building it.
Second-and-a-halfth: Moderation features. You want social, sooner or later you need moderation.
Third: An on-screen map. Text is great, I love text, but it turns out that hypertext just isn't very good for navigating a physical environment. Look at this room description:
The shoreline path is choked by rubble, and you can proceed no further. The adjacent stone wall has crumbled, leaving unclimbable heaps of stone strewn down to the waterline.
However, you can see an alley beyond the gap in the wall. Electric lights are strung down its length. To the left, the alley opens out into a plaza. To the right, you can make out a chamber with books laid open. You can also return along the shore to the dock.
This is just hard to visualize. If you go right to the chamber, is it obvious how to back up and try the plaza on the left? Not really.
(Compass directions would aid the Zork fans but annoy everyone else, which is to say nearly everybody.)
But say you had this map on screen:
Highlight your current location and the adjacent locations. Click to move. (It's just more hyperlinks.) Now you can get around!
Of course, this means that making maps becomes part of the Age-writing process. It should be as easy as writing the room descriptions. We'd need some kind of map-layout editor. Mind you, it doesn't have to be as fancy as my District map. Box-and-line maps would be fine for the general case.
The final critical item is scalability. I said the engine was async Python, but, secretly, cough cough, all player commands are handled by one single-threaded queue. That avoids the problem of concurrent logic. It was the easiest way to get a prototype up and running. I've never had more than a couple dozen active players logged in, so it's fine right now.
But if the population increased, eventually players would be flinging commands faster than the queue could handle them. Then it's lag city -- for everybody. I don't know what the critical limit would be, but there certainly is one.
A smarter design would have one queue per Age. Then crowding in one Age wouldn't (much) impact the rest of the server. Beyond that, I could think about load-balancing multiple server instances. There's complications to all of this but it's doable.
So what would justify this work?
If someone would pay for my time, I would love to spend three or six months tackling all that stuff. But my time is expensive, and there isn't really a developer fund out there for "create the next great MUD".
(Some of the money would go to hire an artist. Maps for the central areas. Illustrations for critical scenes, like Kerath's Arch. I can fake up a postcard map but it's not my core skill.)
To answer the obvious question: yes, I've pinged Cyan about this. They didn't express interest. Not surprising: they're a small studio. At the time, they were heads-down on Myst (2020). Now they're heads-down on Riven (202?). And they've got both MOUL and a Discord for the fans. A new Myst-themed social forum is a neat idea but it's not part of their roadmap.
(If you work for Cyan and you think I'm wrong about this, now's the time to let me know...)
The second obvious question is: what about crowdfunding? Sorry; it's not sporting to run a Kickstarter on somebody else's IP without their explicit permission. The Unwritten RPG has Cyan's buy-in; I don't.
In theory I could come up with my own creative multiverse. Seltani's Python engine is brand-neutral. The source talks about "worlds" and "portals", not "Ages" and "Linking Books". I could crowdfund a Seltani Prime which had nothing to do with Myst. But is that really going to work? Without the hook of the Myst universe, I'm just pushing another fantasy world with a bunch of made-up names.
Anyhow, it's just a bad time for crowdfunding. Layoffs, bad economy, social networks melting down. How would I get the word out?
So that's pretty much where this post lands. Is there someone out there who really wants a social, multi-player, hypertext-based, user-extendible MUD with an easy-to-learn interface? Your game or your story world needs a social space, but Discord is too flat? Your users want to interact by creating rather than just chatting?
And, more importantly, is there money for it?
It feels like a long shot. ("In this economy?") But I'd feel silly if I didn't ask.
Comments from Mastodon
@zarfeblong@mastodon.gamedev.place I had never heard of Seltani until I read this. Like you, I had been thinking of getting a Myst-themed textual MUD going for several years, but haven't had enough energy/willpower to get it done. The most exciting thing to come out of it was a custom D'Ni Datetime module for Python that mimicked the "datetime" module of the Python standard library. I could convert between Earth and Cavern time pretty accurately.
Regardless, I still am interested in this sort of thing and wouldn't mind throwing a few bucks at it via a Patreon-type funding should it ever emerge. :)
@zarfeblong there is a third possible approach (and I understand that it has massive drawbacks): asking for help to work on it (I don’t know if Seltani is open source)
@julienkirch The engine is open source (https://github.com/erkyrath/tworld).
However, managing a group of developers takes as much time as doing it all myself, which leaves me with the same problem. I can’t justify that much time for a project that doesn’t contribute to the mortgage.
@zarfeblong A couple years ago I implemented a fully-functional "multiplayer" (deliberately, two-player) version of my hypertext library Windrift, including the canonical demo story. [1]
My hypothesis is that two-player hypertext is more tractable to author than MUD-in-a-browser or even n-player hypertext. Or at least it is for now when there are no established principles or best practices.
I stopped work on it after some external playtests because I just hadn't nailed the ergonomics. I was also a little stuck on how much infrastructure I could reasonably expect an author to set up, because I didn't want to be in the hosting business.
Anyway, I still think there's space to be explored in multiplayer IF and on the hypertext side it's something I'd like to come back to personally. I hope you're able to make a go of extending Seltani in some way!
[1] https://github.com/lizadaly/windrift/blob/multiplayer/stories/cloaks-of-darkness/chapters/foyer.tsx
@liza MUD-in-a-browser is fairly manageable for authors because the basic question is “what do I see?” You write a room description and then, if you want the situation to change, you add conditions to the description.
This is good for Myst-like explorable environments. It’s bad for narrative sequences of events. The latter is where we’re still looking for answers.
@zarfeblong: I have a long story of my own here. Unfortunately, apparently Mastodon isn't the place for long-form comments. Twitter continues to curse us from beyond the grave. ("I'm not dead yet!" "Shut up!").
I chucked my story onto Blogger https://bart-massey.blogspot.com/2023/07/an-ancient-tinymud.html — read it there if so moved. Probably a better place for it anyhow.
@po8 I was on original TinyMUD at CMU. I built a couple of puzzles and then saw everybody’s energy turn to hanging out and chatting. So yeah.
The thing is, on the actual Myst Online, it’s the opposite. It’s almost uninhabited, except that when a new Age drops everybody logs in! Well, like a hundred fans anyway. Big party, everybody explores, then everybody leaves again.
I feel like there must be a balance point.
@zarfeblong I've dropped some "two cents" in a private discord message. Hope it helps!
@zarfeblong I think a standalone Seltani would be really cool but I also understand not wanting to go through crowdfunding, etc. Just saying I'd back it if it happened