minekube / gate

High-Performance, Low-Memory, Lightweight, Extensible Minecraft Reverse Proxy with Excellent Multi-Protocol Version Support - Velocity/Bungee Replacement - Ready for dev and large deploy!
https://gate.minekube.com
Apache License 2.0
575 stars 50 forks source link

Support Bedrock edition? #11

Open robinbraemer opened 3 years ago

robinbraemer commented 3 years ago

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:

Sandertv commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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.

AaronNBrock commented 3 years ago

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 commented 3 years ago

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

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

Sandertv commented 3 years ago

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

ehenoma commented 1 year ago

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 commented 1 year ago

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

xiantiao233 commented 5 months ago

我希望可以代理Geyser服务器

robinbraemer commented 5 months ago

我希望可以代理Geyser服务器

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