Skip to content
This repository has been archived by the owner on Feb 10, 2023. It is now read-only.

Implement support for the osu! tournament client in multiplayer #14

Open
mellowagain opened this issue Oct 7, 2018 · 2 comments
Open
Assignees
Labels
feature: multiplayer type: suggestion Issues which suggest various features
Milestone

Comments

@mellowagain
Copy link
Owner

mellowagain commented Oct 7, 2018

osu! has a built-in tournament client which is used for broadcasting osu! tournaments. It allows viewing of every player in a multiplayer room at once.

image

To allow for tournaments to be broadcasted on Shiro-based servers, support for this client is required.

Specification

Detecting a tournament client is easy. On user login, the client build string will end with tourney when the osu! client is a tournament client, e.g b20160403.6tourney. The client build version parser will not throw a exception for the non-numeric string in the version string, I have already accounted for this case.

A tournament client will always login in with all clients using the same username and password combo. It'll also send a special chat join / leave packet indicating the joining of the #multiplayer channel, without joining the actual multiplayer room.

The tournament client should not be displayed in the global user presence list, however it should be displayed in the spectator list for the clients.

Requirements

  1. Multiplayer to be fully implemented (Allow multiplayer on Shiro #16)
  2. Permission system to be fully in place (Implement consistent permission system #10)
  3. Implementation of osu! tourney commands

Conflicts

There are some design decision that may conflict with the further implementation of this feature. It may require some massive code base changes:

  1. User sessions are singletons. Once a new client logs in with the same username and password combo, the old client's token will be invalidated and disconnected.
  2. A user can only spectate a single host. One user can not spectate multiple clients simultaneously.
@mellowagain mellowagain added type: suggestion Issues which suggest various features event: hacktoberfest GitHub and DigitalOcean are celebrating the Hacktoberfest, together with Shiro feature: multiplayer labels Oct 7, 2018
@mellowagain mellowagain added this to the October 2018 milestone Oct 7, 2018
@mellowagain mellowagain self-assigned this Oct 7, 2018
@mellowagain
Copy link
Owner Author

mellowagain commented Oct 7, 2018

Depends on #10 and #16, blocked until resolved.

@mellowagain mellowagain added status: overdue and removed event: hacktoberfest GitHub and DigitalOcean are celebrating the Hacktoberfest, together with Shiro labels Oct 31, 2018
@mellowagain mellowagain added status: overdue x2 This issue has been overdue for two or more milestones and removed status: overdue labels Dec 4, 2018
@mellowagain mellowagain removed the status: overdue x2 This issue has been overdue for two or more milestones label Mar 4, 2019
@mellowagain
Copy link
Owner Author

As #108 is already modifying spectating for it to be more thread-safe, I'd say we take this opportunity to allow it for spectating multiple users at once, a requirement when using the osu!tourney client.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
feature: multiplayer type: suggestion Issues which suggest various features
Projects
None yet
Development

No branches or pull requests

1 participant