AP spec for board games and card games

I was thinking about whether it would be possible to recreate board games and card games using ActivityPub. It seems to me the majority of games can be reduced to actors, events, objects and collections in a fairly trivial way. The only kind of game that might not be suitable for this would be speed games that depend on a player’s reaction times.

Is anyone interested in trying to hash out a proof-of-concept/draft for this?

About boardgames :
I am working on such a thing for Maps and Tileservers …
While this could be potentially used to send a “boardgame board” (e.g. random mixed tiles if you can create your start board),
There is a thing which is hard to do with games in the current AP state, trust of state.
For example : Someone got a 6. How can we make sure that the dice is real random and not loaded, how can we make sure that the tiles above are random without anyone treating …

Yeah I had thought about that, I don’t think there’s any way around this except to mutually choose a random number generator service all players trust.
I play a Scrabble clone online with friends and we have no way to verify the randomness of the tile distributions, we just have to trust the server hosting the game.
in fact for some players they might prefer to play on a server where the rng is weighed in favour of less experienced or less skilled players, a la Mario kart item boxes.

I came back to thinking about this last night. If you create an actor that generates random numbers and publishes them publicly then it should be possible to run a statistical analysis on that output it to check it’s a random distribution before choosing to use it in your game. For scenarios where the value is private to one player, the values could be tracked with an id, and revealed at the end of the game to verify them.

Might be worth looking at Keybase’s solution for randomness: https://book.keybase.io/docs/chat/coin-flip

Not sure how relevant it is to AP, but it sounds like they’ve somewhat solved consensus

1 Like