10-3 (课外)MineCraft游戏服务
介绍
Minecraft《我的世界》最早由瑞典游戏设计师马库斯·佩尔松开发,之后由其成立的Mojang AB开发,游戏最初使用Java语言编写。后被微软收购。
沙盒风格的游戏中,玩家能在一个3D世界内与方块或生物进行交互,游戏中的特色玩法包括探索世界、采集资源、合成物品及生存冒险等。玩家为其制作了大量mods,进一步增加游戏的生命力。
游戏早期比较开源,官方对私服态度宽松。目前有大量的第三方启动器、官方版破解、mods,适合个人用户搭建私服。
实验设计:
服务端:因为没有云服务器,选择CentOS虚拟机作为服务器。因为传统方式需要安装java解释器、下载jar包安装、下载游戏、破解、修改游戏配置等步骤复杂,选择docker-compose方式搭建服务。
客户端:Windows上安装第三方启动器,启动器会自动下载游戏本体、破解、安装mods加载器。
前置准备
客户端和服务器对内存均要求4G以上,分两台电脑,一台电脑中的CentOS虚拟机做服务器。
CentOS虚拟机 4~6G内存。4~8核心 CPU。
勾选"intel VT-X虚拟化支持"。
选择"桥接"网络,(学校机房禁用宿主机Virtualbox网卡)。这样多人客户端可以出现在一个服务器中一块玩。
服务器端选型
通过搜集资料,MineCraft有多个版本,java版虽然效率不及基岩板,但更为开放更适合部署和加载mods。
通过搜集资料,发现itzg团队下的docker-minecraft-server项目对minecraft服务器进行了完善的封装。
github itzg/docker-minecraft-server
readthedocs itzg/docker-minecraft-server
docker hub itzg/minecraft-server
docker环境
导入 itzg/docker-minecraft-server 的离线镜像。
容器编排
创建项目文件夹。习惯上创建项目文件夹,然后把docker-compose.yml配置文件和项目相关东西放入项目文件夹下。
切换工作目录至项目文件夹下。方便后续命令。
创建几个映射所需目录。用于容器内的服务器数据暴露到宿主机供查阅,或宿主机的mod文件映射到容器内。
创建docker-compose.yml容器编排配置文件。
写入内容
启动容器编排。
关闭防火墙
模组
(也可先跳过模组部分,只玩游戏本体。)
(跳过)模组加载器。模组加载器负责加载管理模组,知名的minecraft模组加载管理器有Fabric、CurseForge等。服务端镜像已经自带,通过参数指定。客户端后面选择第三方启动工具中内置自带。
模组。丰富多彩的网友创意在模组加载器网站搜索,这里选择一个跟计算机教育有关的模组computercraft,
curseforge模组加载器 computercraft模组
下载jar包。复制模组ComputerCraft1.79.jar到项目目录下mods文件夹下
重启服务
客户端
客户端本来需要的步骤:下载游戏本体、破解。下载模组加载器jar包,下载模组jar包并放置mod文件夹下。
第三方启动工具可以自动化这些流程。第三方启动器工具有很多,这里选择
安装sklauncher。Windows作为客户机,下载sklauncher-installer.exe。
离线模式。启动器提供离线模式,而不需要登录正版账号。
新建一个启动配置,选择游戏版本"v1.21.11" 和"Fabric"模组加载器和版本范围,⚠️与服务端docker-compose.yml中相关字段一致,根据实际情况变化。
(实际上的第一步)启动游戏时会下载游戏本体约300Mb和启动器相关文件140Mb。直接解压缩sklauncher.rar和minecraft.rar,解压缩至C:\Users\Administrator\AppData\Roaming下。从"C:\Users\Administrator\AppData\Roaming\sklauncher"下找软件的启动入口。
启动游戏时还会下载些相关jar包,然后游戏窗口开启。
可以先改变语言为中文
选"多人游戏",选"添加服务器",输入"你的centos服务器IP地址:25565",连接成功后看到服务器已添加。点击"加入服务器"。
🎉进入游戏界面,实验成功。
游戏中按E进入工作台,合成物品,尝试合成电脑。验证computercraft模组是否正常工作。这部分没研究过上网查下教程。







