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 @objectinspace

> I tried to follow that hashtag from mastodon but didn't see any messages

IIUC following hashtags only works for public, non-unlisted messages (it's essentially a filter over the federated timeline).

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

In Mastodon you can filter on any words in the message, incl. hashtags. By filtering I mean "cause messages that match not to appear in your home feed".

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

Note that Mastodon (happily) doesn't really require incoming messages to look like messages Mastodon could have generated. TTBOMK it's perfectly fine to e.g. send a non-public boost to a Mastodon instance and it will be handled correctly.

> 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.

First, you might wish to make messages unlisted. I believe unlisted is equivalent to "as:public is not in to or cc". Otherwise they will appear in e.g. federated timelines of other instances, which they might mind.

The second question is what would you actually want to happen? I expect players would want the messages to appear in their feeds. I also expect that usually you'd want games to be public and others to be able to view links to those messages and maybe get them in their feed, too. This really sounds like you want to have a notion of following a game.

On the ActivityPub level this suggests that you want to have a collection of all followers of the game (so that commentary and commands are also sent to them). This can most easily be done with an Actor you can follow. I expect that APub would support doing that without an actor in some way, but that it would be very confusing for existing implementations.

@robryk

First, you might wish to make messages unlisted. I believe unlisted is equivalent to "as:public is not in to or cc"

That sounds interesting but I'm afraid I didn't understand what you mean in the sense of concrete activitypub structures to add/change.

Focusing on a single actor for a moment. I have a single actor. I have only a single game. My problem is not that the followers cannot see the messages. I believe, they can. The problem is that it's currently too noisy in the Home feed. I'd like a way of filtering out from the home feed (you say filters can do that, good), but then also providing the game messages in another feed e.g. a list or a hashtag or something else I don't know about.

I think this can be something done in the mastodon client. Tidying the home feed and splitting off separate feeds seems to be a thing that should be possible. However, I have not found out how to do that.

If I can add some fields/tags to my messages to aid this I can. However, multiple actors doesn't seem to solve the current problem. I have only one game, so I need only one actor [sandestin], at the moment.

@nandalism

Feeds other than the Home feed are not a concept that's exposed via ActivityPub. An account (Actor) exposes a single endpoint to send them messages, just like there's just one way to send an e-mail to an address (nb. e-mail is a very good mental model for APub IMO).

Now, there are various kinds of fediverse instances or clients for various instance kinds that have the concept of multiple feeds. This works in two different ways:
- by showing you a subset of messages you receive via your inbox (e.g. Mastodon, or at least some versions thereof, allow you to decide which feeds a particular account's posts end up in),
- by picking some posts from the federated feed (i.e. all the posts the instance receives that you are allowed to see) and putting them there -- this is how following a hashtag works.

So, at least on some versions of Mastodon (I'm always unsure which things are a feature of vanilla Mastodon and which are of the fork my instance's running) you can make a separate feed and cause messages from a particular account to show up only there, with no need to mark them in any additional way.

@robryk

Feeds other than the Home feed are not a concept...

Good to know. I was hoping, as you said later, that the client would allow me to split the home feed based on rules into user-defined feeds.
Something like how some email clients allow rules for filtering inbox messages into separate folders.
The underlying activitypub system doesn't need to know anything about it. It's just a client-side, human convenience.

by picking some posts from the federated feed ... this is how following a hashtag works.

This is what I was hoping for but it doesn't seem to happen on my mastodon client (the web client as delivered by https://mastodon.gamedev.place/). What version? How can I tell? I don't see any details on https://mastodon.gamedev.place/about.
I follow the hashtag but nothing appears (actually one post appears, which was a reply on the initial thread/conversation where I announced sandestin). So it might be that only as:Public messages appear in hashtag feeds? I want to avoid as:Public since they cause all game replies to spam player followers.

I was working on getting Honk and Mastodon working with sandestin, but now you give me the scary news that there are various forks of Mastodon...

@nandalism

as:Public has little to do with spamming followers. You can (but Mastodon never does) send a post that's "to" or "cc" as:Public but is not "to" or "cc" honk.deckc.hair/u/nandalism/fo.

Also, for purposes of not spamming federated timelines of anyserver that federates with you, as:Public should not be in "to", but rather in "cc".

Re various forks of Mastodon: then there's Pleroma, Akkoma, ..... I personally would appreciate if people didn't try to "work with Mastodon" for the same reasons I don't want people to develop websites for Chrome specifically.

@robryk
Currently sandestin does not send as:Public in any part of its messages. So that means I should not be spamming federated timelines. This should be very unlisted and I think I can safely leave it that way?

The remaining 2 points of confusion:

why I cannot see sandestin's posts in [hashtag] sandestin, on mastodon client.
why I cannot see sandestin's posts in a List including [user] sandestin, on mastodon client.

Is it possible that I need as:Public in "cc" for hashtags and List to work? Or is that irrelevant?

Follow

@nandalism

as:Public _in cc_ is used to indicate that anyone is allowed to see this post. If you don't have it fedi instances will now allow anyone who's not listed in to or cc to see it (I might be slightly wrong here somewhere around the area of expanding followers).

as:Public _in to_ is used to indicate that the post belongs on federated timelines.

Re hashtag: Try sending an equivalent of an unlisted post and see if it appears there? I'm not sure how this is intended to work exactly.

Re list: that's surprising. Maybe you've set it so that list in your client doesn't display replies (see screenshot)?

@robryk
My Home/settings are as you show (boosts + replies)
I've added a screenshot of my list settings and there is one user [sandestin] added to the list.

My lack of as:Public anywhere may be the cause of the problems. I read somewhere that "to":".../followers" (the mastodon default reply-to message) will spam followers if the original message is as:Public, so I removed as:Public everywhere. I do have all followers in "cc"+"to".

As you suggest, I will try making a new list for nandalism and try various posts from there. I'm pretty sure sandestin's posts are unlisted since they have no as:public and also have "directMessage":true.

@nandalism Well, the bot is not replying to itself, so the settings you've pasted would exclude its replies.

E: Unless I totally misunderstand that UI.

@robryk Thanks for the suggestion on creating a new list with a normal (honk) user. As long as I follow that user, his messages appear in the list.
Muting the user deletes all the messages in the list and blocks further messages. (This explains some of the other behavior I was seeing.)
Unmuting shows any subsequent messages.
(Unmuting Sandestin does not help. I still see nothing in the List)

I'll add logging to my honk server and try to see the difference between these visible messages and the failing sandestin messages (at the activitypub/json level).

It's getting late in UTC-land so I'll continue thinking about this as I sleep and report my progress tomorrow.

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.