我所做的事情是为Minecraft服务器实现跨平台运营
首先
我整理了研究和做了一些关于能够进行Minecraft跨平台游戏的事情。
为了与家人一起进行跨平台游戏,我搭建并运营了一个Minecraft服务器。
如果你想了解更多信息,请从标题中跳转。
我所调查的是关于可进行跨平台游戏的事项。
Minecraft的类型是什么?
以下是中文的同义句:《Minecraft》是一个很受欢迎的游戏。
-
- Java版
- 統合版(Bedrock Edition)
有两种类型存在。
PS4/5、Switch和手机等设备将成为统一版本。
而PC上则可以选择购买Java版或统一版。
※对于MacOS而言,只能选择Java版。
跨平台游戏的定义是
在线上跨越不同硬件和类型进行游戏。
- windows同士だが、それぞれJava版と統合版で種別が異なる
- 統合版だが、PS4とSwitchでハードが異なる
- MacOS(Java版)とSwitch(統合版)
一般情况下,支持跨平台游戏的版本,但不支持Java版本和综合版本的跨平台游戏。
要实现跨平台游戏,需要做些什么?
Java版 と 統合版 が参加できるサーバーを用意(借りる)する。
ローカルで立てて公開するか、課金してクラウドを借りるかの二択になるようだ。
また公開したサーバーはHackしておく必要がある。(後述
クロスプレイに最低限必要なもの
- Microsoftアカウント もしくは Xbox Liveアカウント
跨平台建设的估价
在本地搭建并公开。
作为我的招聘手段,我采取了
-
- 在Mac Mini上启动Minecraft服务器
-
- 为Minecraft服务器进行跨平台设置
- 在全球范围内进行公开
我追求并建立了这一目标。
我正在参考的文章在这里。
可以使用Docker构建Minecraft服务器。
(Minecraft servers can be built using Docker.)
Google検索で Minecraft docker-compose で検索し、
実際に運用されている方の記事を参考にしました。
估算工作
-
- 更新Mac Mini的操作系统
-
- 安装Docker Desktop for Mac
-
- 创建docker-compose.yml文件
-
- 启动docker-compose
-
- 获取动态DNS
-
- 添加动态DNS设置
-
- 添加MOD
- 在Minecraft服务器上实现跨平台游戏设置
跨平台建设工作
任务列表
-
- 准备Mac Mini
更新Mac OS
安装Docker Desktop for Mac
在Github上创建仓库
创建docker-compose.yml文件
初始设置
克隆仓库
运行docker-compose up
编辑config.yml文件
在本地localhost上确认
在局域网(LAN)上确认
更改Mac Mini的设置
更改路由器/调制解调器的设置
在广域网(WAN)上确认
获取并设置动态DNS
更改路由器/调制解调器的设置
任务详细
Mac Mini 的准备
在2016年推出的Mac Mini
macOS Monterey 12.4 をクリーンインストール
Docker Desktop for Mac を公式よりインストール
在Github上创建存储库
链接:https://github.com/mabubu0203/minecraft_multi
请点击上方链接,进入GitHub页面,查看mabubu0203的minecraft_multi项目。
为了实现跨平台游戏。
在JavaEdition ✖️ SPIGOT服务器上启动Minecraft,并安装以下插件。
-
- Geyser-Spigot
- floodgate-spigot
在BedrockEdition中,我们将通过Geyser来进行游戏
docker-compose.yml/ports 的含义是指通过配置文件 docker-compose.yml 来定义容器端口映射。
docker-compose.yml文件/环境
有关详细设置的解释请参见以下链接:https://github.com/itzg/docker-minecraft-server/blob/master/README.md
特に大事だと思ったものは下記に抜粋
HARDCOREfalseハードコアを許可するかどうかMAX_PLAYERS15最大接続人数MODEsurvival
PVPfalseユーザー同士で対戦するを許可するかどうか
MODS_FILE/extras/mods.txt
TYPESPIGOT
TZAsia/Tokyo
VERSION1.192022/07時点で最新のものを指定
最初的设置
-
- 克隆存储库
-
- $ git clone https://github.com/mabubu0203/minecraft_multi.git
首次启动
$ docker-compose -f ./docker/docker-compose.yml up –build –remove-orphans
确认没有错误
$ docker-compose -f ./docker/docker-compose.yml stop
修改插件设置
vi ./docker/data/plugins/Geyser-Spigot/config.yml
remote.auth-type: online -> floodgate
重新启动后,从Mac Mini上的minecraft (Java Edition)进行连接确认
连接到: localhost:25565
在局域网(LAN)上确认
-
- Mac Mini のセキリティを変更
-
- システム環境設定 -> セキリティとプライバシー -> ファイアーウォール
-
- ルーターのポートフォワードの設定を変更
-
- 25565(TCP)
-
- 19132(UDP)
-
- Mac Book Pro(Mac Miniとは別の端末)から繋いで確認
-
- 観点:Java版同士の疎通確認
-
- Switchから繋いで確認
-
- 観点:統合版からの疎通確認
- 参考: 【プラグイン紹介】統合版とJava版でクロスプレイが出来るプラグイン【GeyserMC】
通过WAN(广域网)进行确认。
-
- 获取动态DNS
-
- 对Mac Mini进行动态DNS设置
-
- 让朋友连接并确认
- 考虑事项:WAN连接验证
作業していてハマったこと/苦労したこと
docker-compose.yml/environment 的汉语表达如下:
docker-compose.yml/环境配置
value値に ture/false を クォートコート(‘) or ダブルクォート(“) で括らない場合怒られる
-> value値は文字列か数値しかだめboolはないんですね、なるほど
TYPE: “PAPER” だとswitchからアクセスできない
-> 原因がわからない。TYPE: “SPIGOT” で動作しているので諦めた
起動ログの時間がおかしい
-> タイムゾーンの設定(TZ: “Asia/Tokyo”)で回避した
间接式水龙头
将以下路径下的文件进行修改:
./docker/data/plugins/Geyser-Spigot/config.yml
将其中的 “remote.auth-type: online” 修改为 “floodgate”。
无法从局域网进行连接。
-
- MacOSのファイアウォールに妨げられていた
- ルーターのポートフォワードの設定が足りていなかった
无法与WAN连接
-
- 2重ルーターとなっていた
auひかりから貸与されているホームゲートウェイにブリッヂモードで接続していなかったことが発覚
参考:auひかりに市販のWi-Fi機器を接続する方法【ブリッジモードを使おう】
LAN内からだとダイナミックDNSで接続できない
運用やってみての気づき
WHITELIST
在部署时,whitelist.json文件是空的,因此没有人可以进入服务器。
我手动向whitelist.json文件中添加了用户。
顺便也手动向ops.json文件中添加了具有管理员权限的用户。
参考: 【Minecraft】白名单的设置方法
从现在开始,有操作权限的用户可以通过命令 “/whitelist add” 来添加用户。然而,被添加的用户需要知道自己的用户名。
裏技で、ホワイトリストに弾かれたログからユーザー名を逆引きすることもできる。
有可能根据硬件要求进行强制更新
PS4/5 ,Switch ,手机等根据硬件情况可能会强制进行更新。
由于服务器端通过docker-compose的描述固定了版本,所以可能会出现差异。
Java 版本允许用户自己选择启动的多个版本。
每个人对于想要玩Minecraft的时间有不同的想法
当Mac Mini关机时,公开的Minecraft游戏会关闭,但并不一定需要多人游玩,所以提供一种能够始终游玩的友好设计是很贴心的。
改进影像
在M1Mac上安装影Mod的情况很少。
关于在mods.txt文件中指定的插件。
通过jenkins的lastSuccessfulBuild机制来获取最新的jar文件。
因此,如果不查看docker的启动日志,就无法知道使用的是哪个版本的插件。
※ 实际上不需要关注插件的版本,所以没有问题。