Skip to content

Multiplayer UX: replace transport-first invites with one people-first Play Together flow #131

Description

@EriArk

Parent: #127

Problem

The current in-game Home flow asks Invite friend → Nearby / Online friend → choose person/group. That exposes transport/context before the user has chosen who they want to play with.

For TrainerOS, Nearby/Online are usually implementation circumstances, not the activity the user is choosing.

Goal

Make the primary action Play together / Invite players, then show relevant people and groups in one picker.

Invite players

NEARBY
  Sveta                 Nearby
  Alex                  Nearby

FRIENDS
  Mike                  Online
  Kate                  Online

GROUPS
  Retro Night           6 members
  Sunday Games          4 members

If the same person is available through more than one route, present one person. TrainerOS chooses/prepares the supported route automatically where possible.

Nearby / Online may remain compact status or troubleshooting detail. Do not force the player to understand LAN, relay, traversal, Bluetooth or runtime transport.

Reverse join

The same vocabulary applies from Social: friend's activity → Join / Ask to join; accepted request → existing party; free-entry group policy → deliberate Join without another organizer prompt.

Transport exceptions

Only ask for a route when there is a genuine user-visible tradeoff that TrainerOS cannot resolve safely. Such a choice should be contextual and explained, not the default first screen.

Acceptance

  • In-game Home no longer starts with a transport taxonomy.
  • Inviting a known friend is one direct person-first journey.
  • Duplicate nearby/online identities do not appear as two unrelated people.
  • The same Invite/Join wording is used in Social and Home where semantics match.
  • Existing compatibility, nearby/online and no-manual-network-setup guarantees remain intact.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions