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

Ideas for improve Switch LAN Play #136

Open
mathias-tavernier-roux opened this issue Mar 1, 2022 · 2 comments
Open

Ideas for improve Switch LAN Play #136

mathias-tavernier-roux opened this issue Mar 1, 2022 · 2 comments

Comments

@mathias-tavernier-roux
Copy link

Hello, I'm opening an issue to offer new functions for Switch Lan Play (in order to bring it closer to Nintendo's online service)

my first proposal is to improve the communication between the players
(the current client <=> server protocol works very well but it has a weakness in my opinion)
the servers are not interconnected it is impossible to make players communicate if they are on different servers.

This weakness forces players to coordinate to play (and is the same thing for the problem differences between game versions)
For improve this I propose two solutions

  • interconnect lan play servers
  • interconnect lan play clients
  • (via pear 2 pear for example)
    This option Can simplify at the same time the configuration of the client on embedded devices (like a raspberry pi for example)

my second proposal concerns modified console users (who are the first concerned by this kind of server because it is the only alternative)
it will be much more ergonomic if possible to incorporate the lan play client on the console
(through a sysmodule for example)
this would allow us to use the lan play client anywhere (without the need for additional devices)

my third proposal will be to add functions to improve the lives of players
the essential anti-cheat
necessary to allow players to play without players obtaining advantages
but also support for version differences (ensure that only the packages of players with the same game in progress with the same version can communicate)
this will avoid the problems impacted by the difference in version between the players

this two functions is possible by creating a native Lan Play Client like proposed above
The version problem can be solved by

  • add in Lan Play Packet the title_id and version of the played game
  • filter all Lan Play packet when the Switch recieve it (and only let pass packet who has an identical title_id and version of the game played

The cheat problem can be solved (by "deactivating" the files linked to the cheat sheets when the lan play client is active)

a system for managing friends and private rooms (to play with friends via lan play) in addition to an internal communication tool at Lan Play would be a good feature pack to add

thank you for your work (which currently remains the only communication solution between hacked / banned switches)

@spacemeowx2
Copy link
Owner

Hello!

Thank you very much for your proposal.

All your proposals are very reasonable. However, my personal interest has shifted to other areas. I may need some help to achieve this.

I agree with both the first and second points. But rewriting lan play to sysmodule may require more effort. (e.g. mtm socket related modules and rewriting them to the corresponding virtual ip segments)

The third point is that I think cheating is unavoidable, and your proposal can indeed reduce the probability of players cheating.

Apart from these three points I think the biggest problem is that as a developer, I'm not interested enough in this, as nice as it seems.

@mathias-tavernier-roux
Copy link
Author

Hello and thank you for responding to my github issue.

I also thank you for having created Switch Lan Play and LDN MITM because without it we couldn't play together at all

if only I had the skills in C and C++ to improve lan play and create these functions I would gladly do so but I plan to do machine development training (C ...) to overcome this and contribute to the community

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

No branches or pull requests

2 participants