Alright, getting things ready for an interactive fiction club! If folks are interested, I think we can start December off with a classic infocom game, Planetfall. I've got a discord up & running, which folks can join, here discord.gg/cf69sWjEE5

It's not mandatory, but if you are interested, you can also just join the discussion here on Mastadon with the hashtag #ifclub The club will rotate each month between a classic text adventure snd a more modern interactive fiction
#infocom #infocomodon

@intficpics I've just made a bot which allows multiplayer on z-machine games on mastodon (and honk).
If you follow the bot here @sandestin you will receive a welcome message.
Reply to the welcome message to play the game.
(See screenshot attached)

@nandalism @intficpics @sandestin

Can you branch off by replying for a second time to a previous response of the bot?

(I had a bot that allowed for that in the short time Wave was a thing and it IMO was much nicer than standard UNDO constructs.)

@robryk Hi! It's a nice idea but it seems technically very difficult. I'd need to keep multiple game instances running, one per conversation/thread.

In fact I'd probably have to checkpoint every action since it could later be a branch point... at any time in the future.

That's way too much complexity for me, sorry.

You can save/restore tho (see /help).

The availability of undo depends on the actual game being played. I guess some of the newer ones have the feature but zork and planetfall don't?

This is intended for group play rather than having a separate game instance for each player.
It's more intended that people gather as a group to play a single game instance together.

@nandalism Huh, so you don't checkpoint at every post? That's surprising; I would expect it to be way easier to do so (otherwise the synchronisation of the current state of the game between what's published on fedi and the internal state is much harder).

> It's more intended that people gather as a group to play a single game instance together.

+1. Are you aware of Club Floyd? (They do that over a text MUD.)

Is the source for the bot available somewhere?

@robryk Yes. This concept is entirely inspired by Club Floyd.

The source is not available for the moment. However, it is based heavily on Honk (for the activitypub part) and uses Dumb Frotz for the Z-machine part.

@nandalism Also, do you have any ideas on how to integrate the commentary track?

@robryk I'm not sure I really understood that.

I must admit that how/when mastodon/honk decide to publish/show messages and where is a bit of a mystery to me. Though I am trying to learn more about it.

I really want to avoid spamming people who subscribe to sandestin but at the same time keep them up to date on the actions of other players.

I've tried various combinations of to/cc and /followers but want to avoid activitystreams#Public since that seems very noisy.

There should also be a way to communicate among players without hitting sandestin. I thought that would be possible by posting to the thread/conversation but now I'm no longer sure.

Do you have any suggestions?

@nandalism @robryk I don't know how honk works but mastodon has post visibility options like public, unlisted, friends only and mentioned users only. I think one of those last two would be appropriate for this bot.

@objectinspace @nandalism

That would work for non-public games only. There'd be no way to link anyone else to a post from such a game.

@robryk @nandalism If it @s everyone who posts to a game it would work in mentions-only, but then you'd have to be able to tell it when you're no longer interested. So probably friends only makes the most sense. Maybe a hashtag at the end with the current game so people can mute posts from games they aren't playing?

@objectinspace @nandalism

Mastodon has a feature of muting a thread (for some obscure reason only a thread that you've already participated in).

Note that @ing is a Mastodonism. It's only (mostly?) Mastodon that decides on whom to cc on a post nearly solely based on mentions in the post. It's perfectly fine to cc someone on an ActivityPub object they are not mentioned in at all.

Having a separate Actor (IOW user) for each game would probably solve most of the issues you think of.

@robryk @objectinspace I have since added a tag [hashtag] sandestin to each game message. Maybe that helps?

I tried to follow that hashtag from mastodon but didn't see any messages. Maybe it only works for posts originating in the same mastodon instance?

Can you make use of the new hashtag? For muting or filtering?

@objectinspace if you want to try sending some replies here with those "friends only and mentioned users only" settings? I can examine the underlying activitypub message and try to learn from it. I don't even see those options on my mastodon client.

I have the problem of mapping "mastodon client terminology" to the actual, underlying activitypub message format which I need to send.

Sandestin's pretty spammy on your home feed at the moment. The only advice I've seen to filtering Home is to create a hashtag and follow it, but that doesn't work for me.

@nandalism @robryk I'll do that, sure. Not sure why post visibility isn't on your account but yeah I will reply with different visibilities and see if it changes anything on your end. Might not actually. You should be able to follow hashtags across instances so not sure why it didn't work. I'll see if the hashtag works on my end. TBH though if the bot is using the same tag on each post I don't think it'll be all that useful unless other people use it, which is a lift.

@objectinspace Thanks I see your 2 test messages [private and unlisted]. I will have a look at their activitypub content in a while.

It seems what you call "as:Public" I call
"cc": "https://www.w3.org/ns/activitystreams#Public". So now I understand. I avoid using that completely and send to each follower. I avoid as:Public since otherwise every players game replies get sent to all their followers. Terrible! At least this was my understanding and I will examine your 2 test messages to check.

The reason for the same hashtag each reply is that I am hoping players can filter on the hashtag to create a separate feed for the game, and "delete" the messages from their home feed.

@nandalism Is that how hashtags work? I don't actually use them so I don't know. LOL. That would be perfect though, right now I open a separate page to follow the bot, which is okay, but having it not appear in home would be better for sure!

@objectinspace

Is that how hashtags work?

Sadly, I feel that I don't know how anything works any more :)

It is how I wished/imagined hashtags worked. Otherwise what are they for? Who knows!?

I received your 3 test messages. Thanks. Then I realized I am not logging JSON/ActivityPub on my server (only sandestin has that level of logging at the moment). So I didn't get see how they looked at the activitypub level. Sorry about that.

@objectinspace I have to rebuild my server to add the logging first. So I'm not ready at the moment.

Maybe you can answer this question. When I send a command like "open pod door" do you see 2 messages? One short one, from me, with just the command and one longer one from sandestin with game response?

Or do you just see one message from sandestin? (this is how I want it to be)

@objectinspace @robryk
Breakfast Report:

I now understand the reason why sandestin's messages don't turn up in Lists (probably hashtags same).

The activity pub message from a Honk (which works/appears in mastodon List).
Note the "to" as:Public. This is the important difference. (Also note the lack of /followers in the "cc")

"cc":[]string{"https://mastodon.gamedev.place/users/andalism"}, "to":"https://www.w3.org/ns/activitystreams#Public", directMessage - missing

For comparison a sandestin message currently looks like this (and it fails to appear in List)
(as:Public is nowhere)

"to":"[a single follower]" "cc":["https://honk.deckc.hair/u/nandalism", ... all the followers except to] directMessage - missing

@objectinspace @robryk
Action:
I could now change sandestin to set "to"=as:Public (maybe "cc" as:Public, but I don't have evidence it works yet)
Put all followers in "cc" or possibly still include one of them in "to" along with as:Public.
I fear spamminess will go up...but I will try it briefly.
@objectinspace @robryk
I now send messages like this:
CC = as:Public + all followers
TO = empty
Summary: It didn't work.
I only get items in List:sandestin if the sender is the mastodon user but not my Honk user (honk sees both).

# details "actor":"https://sandestin.deckc.hair/u/sandestin", "cc":[]string{"https://www.w3.org/ns/activitystreams#Public", "https://mastodon.gamedev.place/users/andalism", "https://honk.deckc.hair/u/nandalism", ...} "to":"",

@objectinspace @robryk
Finally I tried TO=as:Public CC=followers. As before posts fail to show in the List:sandestin.
I realize that List is the proper way to separate streams but I cannot make it work.

"actor":"https://sandestin.deckc.hair/u/sandestin" "to":"https://www.w3.org/ns/activitystreams#Public" "cc":[]string{"https://mstdn.social/users/arnicas", "https://honk.deckc.hair/u/nandalism", ... "https://mastodon.gamedev.place/users/andalism", ... }

Follow

@nandalism @objectinspace

Note that sending anything "to" as:Public makes it not unlisted.

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.