如何在树莓派上建立 Sonic Robo Blast2 (SRB2) 服务器?

在本教程中,您将学习如何在树莓派上为 Sonic 粉丝游戏 Sonic Robo Blast 2 (SRB2) 设置服务器。

Sonic Robo Blast 2(SRB2) 是一个受欢迎的 Sonic 粉丝游戏,由一个名为 Sonic Team Junior 的小组开发。

SEGA Mega Drive 的原始 2D Sonic 游戏启发了该粉丝游戏。团队尝试采用原始游戏的游戏风格,并在 3D 游戏世界中进行想象。

该游戏的独特功能之一是其多人游戏模式。您可以与其他玩家一起在线玩整个游戏。

本教程将引导您完成几个不同的步骤,因为您需要在树莓派上编译 SRB2 ,然后才能将游戏作为服务器运行。

请注意,如果您希望服务器对公众开放,则需要 portportforward 的 5029 UDP 协议。

设备清单

这是我们建议本教程有关设置 SRB2 服务器的设备的列表。

推荐的

  • 树莓派 1、 2 、 3 或 4

  • Micro SD 卡

  • 电源

  • Ethernet Cord 或 * WiFi dongle (Pi 3 和 4 具有内置 WiFi)

可选的

  • 树莓派外壳

我们在运行最新版本的 Raspbian Buster 的树莓派 4 上设置 SRB2 服务器上测试了本教程。/download-raspbian/)。

为 RRB2 准备树莓派

1 在开始之前,让我们更新树莓派上的现有软件包。

sudo apt update
sudo apt upgrade

2 下一步是安装我们需要在树莓派上编译 Sonic Robo Blast 2 源代码的软件包。

由于我们仅将此副本用于专用服务器,因此我们删除了一些所需的库,因此不需要处理音乐或图像的任何内容。

sudo apt install git build-essential p7zip libsdl2-dev屏幕

3 现在,我们需要将代码从 SRB2 存储库克隆到我们的树莓派。

要将代码克隆到您的 Pi ,请运行以下命令。

git clone https://github.com/STJr/SRB2.git〜/src/srb2

在树莓派上编译 SRB2

1 现在,使用以下命令将目录更改为”〜/src/srb2/src” 目录。

cd〜/src/srb2/src

2 现在我们位于 SRB2 的 src 目录中,我们可以运行以下命令。

此命令将在禁用了各种库的情况下编译游戏。

我们禁用这些库以减少编译时间,因为在作为专用服务器运行时不需要它们。

cd〜/src/srb2/src &&制作-j $(nproc)\
  LINUX = 1 \
  NONX86 = 1 \
  NOHS = 1
  NOHW = 1 \
  NOPNG = 1 \
  NOMIXER = 1 \
  NOGME = 1 \
  NOOPENMPT = 1 \
  NOASM = 1 \
  GCC83 = 1

完成该编译过程将需要一些时间,尤其是在较旧的树莓派上。

3 Sonic Robo Blast 2 完成编译后,让我们通过运行以下命令创建一个目录以将其存储在其中。

该目录将存储新编译的二进制文件和运行服务器所需的资产文件。

mkdir〜/srb2 /

4 现在,将二进制文件从编译了 SRB2 的 src 文件夹复制到〜/srb2 / 文件夹,并切换到该目录。

cp〜/src/srb2/bin/Linux/Release/*〜/srb2 /
cd〜/srb2 /

5 现在,我们为 Sonic Robo Blast 2 下载资产。这些资产包含运行服务器所需的所有数据。

wget https://files.pimylifeup.com/srb2/srb2-assets-2.2.8.7z

6 现在,我们需要使用先前安装的 p7zip 软件包将资产提取到当前目录。

运行以下命令将资产提取到您的树莓派中。

p7zip -d -f srb2-assets-2.2.8.7z

提取过程完成后,您的树莓派现在可以将 SRB2 作为专用服务器运行。

将 SRB2 作为专用服务器运行

1 在运行服务器之前,我们先获取 Pi 的本地 IP 地址。

您可以使用此 IP 地址在本地连接到 SRB2 服务器。

要将 SRB2 作为专用服务器运行,您需要做的就是运行以下命令。

/home/pi/srb2/lsdl2srb2 专用

服务器现在应该联机,您将能够从 Sonic Robo Blast 2 游戏客户端访问它。

2 如果您希望服务器出现在正式的 SRB2 主服务器列表中,则需要使用其他参数。

该参数是” 房间 ID “。

您可以在此参数中使用三个不同的 ID :

“33” 是用于” 标准” 房间的 ID 。28 是用于” 休闲” 房间的 ID 。*38 是用于” 拥抱” 房间的 ID 。

以下是在房间设置为” 标准” 的情况下启动服务器的示例。

/home/pi/srb2/lsdl2srb2 - 专用 - 房间 33

为 SRB2 服务器设置服务

在本节中,我们将向您展示如何在树莓派上设置自动启动 SRB2 服务器的服务。

1 首先,在 /etc/systemd/system / 目录中创建一个服务文件。

我们将此服务文件称为”srb2.service“。

sudo vim /etc/systemd/system/srb2.service

2 在此文件中,输入以下行。

[单元]
描述= SRB2专用服务器
Wants = network-online.target
之后= network-online.target

[服务]
类型=分叉
用户= pi
组= pi
ExecStart =/usr/bin/screen -d -m -S srb2/home/pi/srb2/lsdl2srb2-专用-房间 33 
ExecStop =/usr/bin/pkill -f/home/pi/srb2/lsrb2sdl
WorkingDirectory =/home/pi/srb2
重启=总是

[安装]
WantedBy =多用户目标

这些行定义了我们的服务,何时启动,应该执行什么命令,应该由什么用户运行以及在停止服务时要执行什么命令。

通过此服务,我们使用” 屏幕” 工具来启动 SRB2 服务器。这样,可以访问服务器命令行。

3 现在,按 CTRL + X,然后按 Y ,然后按 ENTER 保存文件。

4 让我们继续,使用以下两个命令启用并启动服务

启用该服务将使其在启动时自动启动。

sudo systemctl启用 srb2 
sudo systemctl启动 srb2 

5 如果要启动 SRB2 专用服务器终端,请运行以下命令。

屏幕-r srb2

6 完成后,您需要按以下组合键,CTRL + A +D。

配置 SRB2 服务器

可以更改 SRB2 服务器的设置。

1 首先创建具有一些基本选项的基本配置文件。

vim /home/pi/.srb2/addserver.cfg

2 在此文件中,添加以下行。

这些只是一些基本设置。您可以在 SRB2 Wiki 上找到所有可用选项。

服务器名称"PiMyLifeUp SRB2服务器"
显示"警告"
pingtimeout"10"
最大化"0"
cpusleep"1"
skipmapcheck"关闭"
jointimeout"350"
nettimeout"350"
blamecfail"关闭"
showjoinaddress"打开"
joinnextround"关闭"
allowjoin"打开"
下载速度"16"
noticedownload"关闭"
maxsend"4096"
resynchattempts"10"
maxplayers"8"
主服务器"ms.srb2.org:28900"

您可以修改”servername“行来更改服务器的名称。

3 通过按 CTRL + X,然后按 Y ,然后按 ENTER 保存文件。

4 如果您正在将 SRB2 作为服务运行,则现在应该通过运行以下命令来重新启动它。

服务器启动后,新设置将由服务器加载。

sudo systemctl restart srb2 

将 Mod 添加到 SRB2 专用服务器

也可以向您的树莓派驱动的 SRB2 服务器添加 mod 。

1 要将插件添加到服务器,首先需要创建一个文件夹来存储它们。

默认情况下,SRB2 服务器软件会自动在其可执行文件所在的位置查找”addons” 文件夹,因此从创建它开始。

mkdir/home/pi/srb2/addons

2 现在将您要安装的所有插件复制到此文件夹。

您可以在 SRB2 官方论坛上找到 Sonic Robot Blast 2 的各种插件。

更新您的 SRB2 服务器

在本节中,我们将向您展示如何使用一些简单的命令来更新 SRB2 服务器。
1 要更新服务器,我们需要首先在 /src/srb2 / 目录中运行以下命令。

cd〜/src/srb2 /
git pull

运行这两个命令将检索源代码的最新版本。

2 现在,让我们重新编译源代码,然后将生成的二进制文件复制到本教程第一部分中设置的文件夹中。

make -j $(nproc)LINUX = 1NONX86 = 1 \
  NOHS = 1
  NOHW = 1 \
  NOPNG = 1 \
  NOMIXER = 1 \
  NOGME = 1 \
  NOOPENMPT = 1 \
  NOASM = 1 \
  GCC83 = 1
cp〜/src/srb2/bin/Linux/Release/*〜/srb2 /
cd〜/srb2 /

3 最后,如果自上一个版本以来已对 SRB2 资产进行了修改,则可能需要替换它们。

下面,我们将下载并提取存储在 CDN 中的资产的最新版本。

这些命令还将从基本目录中删除所有现有的.pk3 文件。

wget https://files.pimylifeup.com/srb2/srb2-assets-2.2.8.7z
rm -f * .pk3
p7zip -d -f srb2-assets-2.2.8.7z

如果此版本已过期,则可以将所需文件直接从安装的 SRB2 复制到树莓派。希望在这一点上,您现在可以将 SRB2 作为树莓派上的专用服务器运行。
如果您遇到任何问题或有任何反馈,请与我联系。

感谢社区成员 Ozzyrockin 为本教程提供建议和基础。

分享到