-
-
Notifications
You must be signed in to change notification settings - Fork 73
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
Comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
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.
The text was updated successfully, but these errors were encountered: