gate icon indicating copy to clipboard operation
gate copied to clipboard

Support Bedrock edition?

Open robinbraemer opened this issue 5 years ago • 11 comments

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 avatar Aug 25 '20 15:08 robinbraemer

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.

Sandertv avatar Sep 02 '20 16:09 Sandertv

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 avatar Sep 08 '20 11:09 robinbraemer

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 avatar Nov 22 '20 21:11 robinbraemer

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 ¯_(ツ)_/¯

AutomateAaron avatar May 01 '21 14:05 AutomateAaron

@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.

robinbraemer avatar May 01 '21 16:05 robinbraemer

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

Sandertv avatar May 01 '21 16:05 Sandertv

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.

ehenoma avatar Oct 21 '22 13:10 ehenoma

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

robinbraemer avatar Dec 03 '22 15:12 robinbraemer

我希望可以代理Geyser服务器

xiantiao233 avatar Feb 07 '24 01:02 xiantiao233

我希望可以代理Geyser服务器

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

robinbraemer avatar Feb 07 '24 06:02 robinbraemer