Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extend online multiplayer #459

Open
achimmihca opened this issue Jun 28, 2024 · 0 comments
Open

Extend online multiplayer #459

achimmihca opened this issue Jun 28, 2024 · 0 comments

Comments

@achimmihca
Copy link
Collaborator

Actual behaviour

A Minimal Viable Product (MVP) for online multiplayer has already been implemented.
It allows to connect with other players, select a song together, and see singing results of others.

In Melody Mania this works via Steam integration. For USPlay, one has to connect manually via IP address, possibly requiring manual port-forwarding.

Not included and out of scope
What is not included is matchmaking and voice chat features.
IMO this is out of scope and better handled by other tools anyway (e.g. Discord, Steam Chat, WhatsApp etc.)

Architecture
The implementation exchanges some messages, see subclasses of NetcodeMessageDto.

I must admit, I did not like the Unity online multiplayer API and probably worked more against it than with it. Overall, this is probably suboptimal.

Known Limitations
Not all features of the main game are available during online multipalyer.

Expected behaviour

Architecture
The current online multiplayer approach needs a re-evaluation. One should consider a more Unity-like architecture and discuss pros and cons.

At least, it might be worth to search for a more established message exchange solution, e.g., similar to gRPC.

Known Limitations
Ideally, all features of the game are available also for online multiplayer such as

  • song queue and medleys
  • team & tournament
  • disable players in song select

Maybe one can make this work by limiting control over the features to the host player?
In this scenario, the game state of connected players then needs to be synchronized with the host.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

No branches or pull requests

1 participant