前言
很多90年代到2010年的经典老游戏(如《秘密潜入2》《虚幻竞技场》《荣誉勋章》《英雄萨姆》《战地 1942》等),当年都依赖GameSpy 主服务器实现联机刷服、玩家匹配功能。随着2014年GameSpy官方彻底停运,这些游戏的原生联机功能彻底失效,无数怀旧玩家只能遗憾告别。
333Networks MasterServer是目前全球最稳定、最主流的GameSpy v0 协议开源替代方案,由社区开发者长期维护,100%兼容老游戏的原生网络协议。
本文基于333Networks官方Qt5/C++源码,结合官方原理说明,详细讲解Docker部署方案,全程可复现,新手也能跟着搭建属于自己的GameSpy替代主服务器,让数百款经典老游戏重联机。
333Networks 是目前最稳定的 GameSpy v0 协议替代服务端
一、项目介绍
333Networks MasterServer 是基于Qt5/C++开发的开源服务端,实现:
- 接收游戏服务器UDP 心跳 Beacon
- 为游戏客户端提供TCP 服务器列表
- 多主服务器之间数据同步
- 自动检测游戏服务器在线状态
- 支持数百款经典怀旧游戏
二、环境要求
- Linux 系统(推荐 Ubuntu/Debian)
- 必须开发端口TCP:27900
- 必须开发端口UDP:28900
三、Docker部署
第一步:先去官网下载文件 https://code.333networks.com/Masterserver-Qt5/commit/
第二步:创建宿主机数据目录
mkdir-p/var/lib/masterserver/datachown-R1:1 /var/lib/masterserver第三步:放入配置文件
将以下两个文件放入 /var/lib/masterserver/data/
MasterServer-Settings.ini SupportedGames.jsonMasterServer-Settings.ini配置建议
SupportedGames.json配置方法,在列表里找到你的游戏并游戏服务器填写端口
注:这里的端口是游戏服务器的端口并非主服务器的端口,比如某些游戏服务器的端口默认是26001这里就写26001
第四步:构建镜像:
在项目根目录下,执行命令
dockerbuild-t333masterserver:latest.第五步:运行容器
dockerrun--restartalways--namemasterserver-d\-v/var/lib/masterserver/data:/masterserver/data\-vmasterserver-log:/masterserver/log\-p27900:27900/udp\-p28900:28900/tcp\333masterserver:latest效果展示
192.168.74.1游戏客户端查询向主服务器发送查询请求,主服务器成功响应客户端请求,并发出游戏列表。
客户端成功收到了主服务器返回的游戏列表
本文仅展示其中一款游戏的配置示例, 该项目实际支持数百款经典老游戏, 覆盖所有曾经依赖 GameSpy 协议的联机作品
官网地址及相关链接
官网地址:https://333networks.com/
代码地址:https://code.333networks.com
官方主服务器地址:https://master.333networks.com/
国内下载链接(Masterserver-Qt5-main.tar.gz): https://pan.baidu.com/s/1oNNsvxO0jTmx36rrquOvHQ?pwd=xwhq 提取码: xwhq
国内下载链接链接(Masterserver-Qt5-main.zip): https://pan.baidu.com/s/1fHfUSgQV-T6TA-9-x-mEnA?pwd=xkak 提取码: xkak