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.

Rock Garden: This is a small grotto in the heart of the mountain. A few benches sit around the cave walls, facing the center: a stand of tall, pale boulders rising from a shallow pool. The stones are illuminated by a pale light overhead, like moonlight. In front of the boulders is a small control panel with three buttons: orange, green, and blue. A passage leads back outside.

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:

Location properties: desc, running, pull_it

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:

Seltani District (partially restored by the New Writers)

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