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

Support Bedrock edition? #11

Open
robinbraemer opened this issue Aug 25, 2020 · 10 comments
Open

Support Bedrock edition? #11

robinbraemer opened this issue Aug 25, 2020 · 10 comments
Labels
enhancement New feature or request (not a bug) help wanted Extra attention is needed priority/low Low priority task

Comments

@robinbraemer
Copy link
Member

robinbraemer commented Aug 25, 2020

This issue is for discussion about Bedrock edition support and other future plans.

For development for bringing full Bedrock edition support to the Gate proxy please see the bedrock branch for all changes and feel free to comment your thoughts here and/or if you want to contribute!

Other plans:

  • Distant future? A proxy for Java & Bedrock edition to mix and match players & servers of all kinds.
    (protocol translation back and forth...)

  • Players can always join and will never be kicked if there is
    no available server to connect to, or the network is too full.
    Instead, players will be moved to an empty virtual room simulated
    by the proxy to queue players to wait.

@robinbraemer robinbraemer pinned this issue Aug 25, 2020
@Sandertv
Copy link

Sandertv commented Sep 2, 2020

I would be interested to lend a helping hand with the Bedrock edition side of things. Feel free to @ me if and when you're planning on doing this.

@robinbraemer
Copy link
Member Author

robinbraemer commented Sep 8, 2020

I've now started planning on Bedrock edition support and I'm glad to have you @Sandertv as someone already experienced in this works. I'll look into your projects to see how a Bedrock proxy works, how packets differ and will open a new bedrock branch to make the initial necessary changes needed to support introducing a new "connection type" and then have you take part in this branch as well.

Since one of the goals of Gate is to be flexible and developers shall use a single API to address both platforms Java & Bedrock, I prefer to abstract common methods like send message, disconnect, is online mode, id, username, etc. into a single Player interface and make totally platform specific stuff accessible by letting the developer to type cast further to BedrockPlayer/JavaPlayer interfaces.

To be clear we only target the ability where Gate can be switched into one of the two platform modes via config options platform: bedrock or java. If we got Bedrock working smooth, we can start thinking about "bridging/translating" between both platform protocols.

Let me know if you have any specific thoughts on anything.

@robinbraemer robinbraemer changed the title Future features planned Support Bedrock edition & other features planned Sep 8, 2020
@robinbraemer
Copy link
Member Author

robinbraemer commented Nov 22, 2020

For everyone's interest, the bedrock branch has everything set to implement a Bedrock into Gate, but as per Minekube's internal projects there is currently no need for Bedrock support. Everyone feel free to make PRs for the bedrock branch and I'll review it.

@robinbraemer robinbraemer added enhancement New feature or request (not a bug) help wanted Extra attention is needed labels Feb 14, 2021
@robinbraemer robinbraemer unpinned this issue Feb 20, 2021
@robinbraemer robinbraemer changed the title Support Bedrock edition & other features planned Support Bedrock edition Feb 20, 2021
@AaronNBrock
Copy link

AaronNBrock commented May 1, 2021

Pardon my naivete, but what is the advantage of a bedrock proxy server? Bedrock edition natively supports transferring between servers via the transfer packet, using such a packet would avoid the added latency of a proxy server.

The main benefit I see is the plans for cross-play (which would be a large undertaking), but that goes against the super light weight mc proxy idea.

Just my 2c, I may be very wrong ¯_(ツ)_/¯

@robinbraemer
Copy link
Member Author

@AaronNBrock good question. The transfer packet would not be suitable for server networks with the requirements like:

  • handle transfer error gracefully (retries, move to lobby if failed, etc.)
  • have centralized functionality proxy-wide (e.g. broadcast message to players on multiple servers, etc.)
  • packet interception and processing in general
  • custom authentication endpoint to mitigate minecraft API rate limits (required for large networks)
  • use Go, not Java or other languages for edge proxy

Larger public minecraft networks tend to have most of these requirements.

@Sandertv
Copy link

Sandertv commented May 1, 2021

That is not to mention that the transfer packet is extremely slow and doesn't exactly make for a seamless experience.

@robinbraemer robinbraemer added this to the Nonurgent milestone Mar 1, 2022
@ehenoma
Copy link

ehenoma commented Oct 21, 2022

What is the status on this?
There haven't been changes to the bedrock branch in two years.
Supporting Bedrock and cross-play would be a great accomplishment.

@robinbraemer
Copy link
Member Author

There is currently no development to support cross-play. Feel free to contribute.

@robinbraemer robinbraemer changed the title Support Bedrock edition Support Bedrock edition? Jan 4, 2023
@robinbraemer robinbraemer added the priority/low Low priority task label Mar 17, 2023
@robinbraemer robinbraemer removed this from the Nonurgent milestone Apr 10, 2023
@xiantiao233
Copy link

我希望可以代理Geyser服务器

@robinbraemer
Copy link
Member Author

我希望可以代理Geyser服务器

好的,我们可以讨论一下您代理Geyser服务器的具体安排。另外,Gate Lite代理Bedrock是否足够,而不是使用完整的Bedrock代理呢?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request (not a bug) help wanted Extra attention is needed priority/low Low priority task
Projects
None yet
Development

No branches or pull requests

5 participants