7.3 KiB
front, hard, time
| front | hard | time |
|---|---|---|
| 入门 | 60分钟 |
支持基岩版客户端的Java版网络游戏概述
目的
-
本文档旨在阐述通过Apollo工具,搭建并部署Java版网络游戏的流程
-
玩家能够通过基岩版手机客户端进入Java版网络游戏中进行游玩
-
开发者可以使用基岩版已有的模组SDK和附加包Json制作客户端的玩法逻辑和表现,需要的技术与中国版基岩版组件开发相似。部分功能可能无法生效
前置知识
名词介绍
-
Spigot、Spigot服
Spigot是一个开源的、高效的Java版MC服务器,并且提供了丰富的api可以编写插件。他是由第三方提供的,并非官方提供,是由官方的minecraft server反编译后,打进去一些patch后而来
-
BC、BungeeCord、BC服
BungeeCord(后面简称BC)是一个代理,提供了切服、数据包转发、插件编写、BC指令等等
-
Geyser、Geyser服、协议服
Geyser是第三方开源的MC协议转换工具,它能把MC-Bedrock版本协议转换为MC-java版本协议,也就是说通过Geyser,我们能实现基岩版客户端进入Java版服务器游玩的效果
-
Master服、Proxy服
见名词解释
框架示例和讲解
如框架图所示,为了尽可能地兼容不同服主Spigot服框架,我们把整体的Java版网络游戏分为两部分:
-
负载/协议转换部分(上半部分)
-
Java服部分(下半部分)
接着阐述每个部分的具体作用
-
负载/协议转换部分
- 这一部分包括了Master服、Proxy服、Geyser服
- Master和Proxy服作用和基岩版网络游戏一致
- 由于基岩版和Java版的游戏数据协议包格式并不相同,因此,Geyser服则扮演着协议转换者的角色,它负责把基岩版的协议转换为Java版的协议
-
Java服部分
- 这一部分为Java游戏服,它的作用相当于基岩版网络游戏中,Lobby服和Game服的结合体,是存储玩家实际游玩数据以及世界数据的服务器
- 它主要由两部分组成,BC服和Spigot服
- 架构图中的DB则指额外数据库(可选)、其他则是指用于进一步管理BC、Spigot或者其他更多功能的第三方应用程序(可选)
为了可扩展地连接起上下两部分,框架中,我们会把Java服视为黑盒,并为BC服提供名为BungeeMaster的插件,这个插件安装在BC服上,负责建立起BC服和Master服的通信连接。
搭建流程
准备阶段
在进行Java版网络游戏搭建和部署流程前,首先需要注册成为我的世界开发者,并完成入驻申请,申请开发阶段服务器。具体步骤,请详细阅读如下文档:
特别提示
- 拿到机器后,要先访问添加白名单,之后才可以正常登入
- spigot机器的java环境对应的操作命令,分别是java8和java18,其中运行Spigot请使用java8(具体原因详见常见问题合集)
JAVA服部署流程
-
在准备好开发机后,连接上开发机
-
通过服主各自的Java服框架,部署各自的Java服(必须存在BC服)
-
经过初步的调研,确定目前使用的Spigot版本为1.12.2,因此为了兼容基岩版1.18客户端,需要在Spigot服使用ViaVersion插件
-
下载ViaVersion插件,并放置于 Spigot服目录/plugins/ 目录下。
-
下载BungeeMaster插件,并放置于 BC服目录/plugins/ 目录下。
-
在 BC服目录/plugins/ 下,新建文件夹 BungeeMaster,并在 BungeeMaster 文件夹下新建文件 config.yml(此为BungeeMaster插件配置)
-
然后填入如下内容,其中
-
server_id 取值区间在[12000, 14000)内,并且保持单次部署唯一即可
-
master_port端口范围要求[29000,31000)
-
填写完毕后,请记下相关参数,后面需要在studio中填写
-
-
打开BC服目录/config.yml文件(此为bc服配置),查看bc服监听的端口,并记下端口参数,后面需要在studio中填写
- 注意,此处的query_port和host中冒号后面的端口值,请保持一致
- 该处的端口,均为BC服用于监听来自Geyser服相关连接的端口
-
配置完成后,可使用Java版客户端连接BC,测试Java服部署是否成功
负载/协议转换部分部署流程
-
打开MCStudio,选择基岩版服务器,并选择右上角新建选项,打开后,选择空白Spigot服
-
选择更多后,点击服务器配置,开始配置
-
其中,控制服、代理服、协议服的配置不再赘述,和基岩版网络服务器相似
-
BC服的配置则根据Java服部署中,BC服的数量和配置来决定。如,根据上个步骤截图数据,则最终配置为:
-
配置完成后,点击部署
-
查看日志,若部署成功,则可以通过工具箱打开ModPC开发包,进入游戏开始测试
常见部署问题合集
常见问题
Q:如何申请使用Spigot开服 A:在开发者平台提交入驻申请,选择作品管理-上架与资源管理-网络游戏-基岩版开服工具游戏-入驻申请,使用框架勾选spigot,认真填写入驻申请。
Q:服务端可以使用Spigot插件么? A:理论上可以使用来自Spigot插件市场的插件,目前已有一批广泛使用的插件经过了测试。
Q:我什么时候可以上架使用Spigot的基岩版服务器? A:目前暂时无法上架此类游戏,您可以先进行服务器的开发,我们会在近期支持上架操作。
Q:我需要使用哪个版本的Spigot?是否支持Paper-Spigot? A:使用的是1.12版本的Spigot;暂时不支持Paper,未来会考虑支持。
Q:是否支持手机和电脑同服? A:目前仅支持手机端,如果您需要双端同服,可以选择使用Apollo进行开服。
Q:使用的客户端是什么?支持forge么? A:使用的客户端是中国版的《我的世界》基岩版,目前是1.18;很遗憾,基岩版客户端不支持forge,推荐使用官方推出的模组SDK替代。
Q:我是否可以将Spigot PC服移植到PE? A:可以,我们欢迎您这么做。但是对于客户端逻辑来说,您需要重写逻辑。










