engine

% Engine TODOs

Reviewed 2021-03-03 by japhb

These todo items are for the core engine itself -- pretty much all of the code that is not specific to a particular UI type, game type, or game.

  • WIP: Permanent storage

  • WIP: Server-generated config options

  • WIP: Async and out-of-order responses

    • Stronger validity checking on message exchanges and reply pairing

    • Injectible errors and latency

      • Note: may be able to do this by layering session Supplies

  • Time

    • Time limits: game, character, turn, etc.

    • Pausable internal game clock

      • Support for "chess pause": current player puts move in escrow

      • Generalize to games in which participants simultaneous plan their move then all reveal their play at once

  • Multiple players

    • User count limits, per game and per server

    • Min players, start players, max players, joinable, invitable

    • Game doesn't start until minimum number of players have joined

    • Character removal

      • Removing from turn order

      • What happens when mid-hand/round?

      • Abandon game when last person leaves

      • Handling player forfeit

    • Update participants when action completes

      • All participants immediately for perfect information, turn-based games

      • Nearby participants at next tick for action-based, limited knowledge games

    • Should be possible for a single player to be connected as multiple characters/avatars in the same game (and also for game admins to disallow this when they want player/character identity to hold)

      • Should this be by persona instead of by player?

        • Pro: Prevents info leakage of the personas owned by a player

        • Con: Allows a player to easily create many sock puppets (without at least having to create separate users/accounts for them)

  • Sessions and connections

    • Persistent sessions and reconnection

    • Frontend --> backend connection multiplexing

    • Max connections/sessions

    • Load shedding

  • General invite tokens

    • Fixed lifetime, single use

    • Invite to join: server, account?, team, game

    • Invite to be marked as "friends"?

    • 2FA for tokens? (e.g. the token code + an SMS code)

  • Spectators

    • Separate spectator game(s) for a given real game to scale crowds?

    • Separate control of invites for players, spectator games, and plain spectators

  • Game result tracking

    • High scores

    • Accomplishments/Achievements/Awards/Rewards

    • Player rankings

    • Tournament tracking

  • Messaging

    • Persona messaging

    • Offline messaging

    • Server notices

  • Service instance federation?

  • Service management

    • logging

    • monitoring

    • slow rollouts

    • rollbacks

    • live backups

    • fleet management

    • universe management

    • etc.

  • Repeatable playbacks

  • Authn/login provides medium-life token that survives FE server failure

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.