通过Geyser实现双端互通
目的
- 本文档旨在阐述通过使用Geyser来实现将已经成熟运营的端游服务器快速接入手游。
- 在整个课程中,将采用Velocity+Geyser插件+Paper服务端作为整体链路进行讲述。
名词介绍
- 协议层
Geyser又叫间歇泉,是一个开源的协议转换工具,支持独立运行(standalone)和以插件形式运行;
- 代理层
推荐Velocity,群组服代理,可以将多个子服代理,让玩家在不同服务器之间跳转。
- 服务端
推荐Paper,我的世界服务端,玩家实际上是在服务端中游玩。
为什么要做双端互通服
- Java版服务器拥有良好的生态
- 中国版在手游端实现了现象级数据增长,在网易代理之前,国内基岩版用户无法聚集成很大规模。
- 手游有更多的用户和更方便的移动支付。
- 手游竞争压力小,对比端游的服务数量,手游其实还有很大的潜力。
- 已有端游服务器的情况下额外适配手游较从头做起可以节省大量成本。
需求
想要参与此计划,希望您和您的团队需要具备以下能力
- 有丰富的Bukkit服务端开发运营经验。
- 有足够的插件知识。
- 有优秀的玩法创意。
- 有中国版服务器资格(端游)。
资源文件
| 内容 | 说明 | 项目地址 | 下载 |
|---|---|---|---|
| Geyser | 协议转换核心,支持网易基岩版 | 当前版本 | |
| Protocol | 构建Geyser所需的协议依赖 | 点击查看 | \ |
| NetWork | 构建Geyser所需的网络相关依赖 | 点击查看 | \ |
| Floodgate | 允许基岩玩家进入JE服务器,数据转发 | 点击查看 | |
| CrossPlatForm | 相关表单界面支持 | 点击查看 | |
| 基岩版界面接口 | 方便的开发Bedrock端的界面 | 计划中 | |
| 网易SDK支持 | C2S及S2C协议支持 | 计划中 |
服务器架构
Geyser + Velocity/Bungee + Paper
信息
代理层我们推荐使用Velocity代理,相比于Bungee可降低大量性能开销 服务端我们推荐使用Paper
版本选择
- 服务端版本建议选择上一大版本的最终稳定版本,例如 1.20.6;或选择当前大版本中维护时间较长、仍在持续更新的版本,例如 1.21.11。
- 过旧的服务端版本在后续 Geyser 及相关插件更新中,可能会出现兼容性问题,甚至存在未来不再支持的风险。
- 建议服务端版本与 Geyser 转换后对应的 Java Edition 版本保持一致。目前 Bedrock Edition 1.21.93 在 Geyser 中对应的 Java Edition 版本为 1.21.11,因此推荐使用 1.21.11。
- Java 客户端侧建议内置 ViaForge Mod,并强制其协议版本与服务端保持一致,以避免再经过 ViaVersion 进行额外协议转换,从而降低性能开销并提升稳定性。