• hankskyjames777@kbin.runOP
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    4 days ago

    alright as a standard for some turn based or slow trading game neither very efficient nor suited for realtime

    only in itself, it can be “temporarily solved” using an extension (like what Forgejo has for relations to Git, e.g. commits) for realtime, it could be something like how godot implements P2P multiplayer (over ICE/TURN/STUN) for federation between servers

    • h3ndrik@feddit.de
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      2 days ago

      I’m not sure if ActivityPub allows for an extension like that. And I mean if you open up a separate direct channel via TURN… It’ll be incompatible with something like Mastodon anyways, so I then don’t see a good reason for why to bother with the additional overhead of AP in the first place. I mean you could then just send the status updates in some efficient binary representation as data packets directly do the other players. So why use ActivityPub that needs to encode that in some JSON, send it to your home instance, which handles it, puts it in the outbox, sends HTTP POST requests to the inboxes of your teammates where it then needs to be retrieved by them… In my eyes it’s just a very complicated and inefficient way of transferring the data and I really don’t see any benefits at all.

      So instead of extending AP and wrapping the game state updates into AP messages, I’d just send them out directly and skip AP altogether. That probably reduces the program code needed to be written from like 20 pages to 2 and makes the data arrive nearly instantly.

      I suppose I could imagine ActivityPub being part of other things in a game, though. Just not the core mechanics… For example it could do the account system. Or achievements or some collectibles which can then be commented and liked by other players.