在 Linux 上正确设置 Valves Source SDK 2013

Correctly set up Valves Source SDK 2013 on Linux

我只是尝试为 Linux 设置 Valves Source SDK 2013,但我需要说的是我发现 wiki + 文档相当混乱并且部分严重过时(Windows-only instructions, only对于 GoldSrc / pre-20XX SDK 等)。

我希望已经经历过麻烦的人可以为我提供一些关于如何正确设置系统的提示。
我尝试使用一些特定于 Windows 的说明来理解系统,但有些是高度特定于平台的。

这是当前状态(我基于我在这个 wiki 页面上所做的:Wiki: Source SDK 2013:

来自GitHub的SDK SDK 2013源被克隆到

~/Git/source-sdk-2013/

通过 Steam 安装的 SDK Base 2013 和 steam-runtime

~/working/steam-runtime-sdk_2013-09-05/

我不确定是否应该将 Steam 运行时放入特定路径,所以我只是将它放入我自己创建的工作目录中。

# Create a Multiplayer sample project
export SDKROOT="~/Git/source-sdk-2013"
bash $SDKROOT/mp/src/creategameprojects
bash $SDKROOT/mp/src/createallprojects

# Setup Steam Runtime
export STEAMRT="~/working/steam-runtime-sdk_2013-09-05/"
cd $STEAMRT
# Choose all build targets (i386 + amd64) and download these
./setup.sh
# Set current to target to the same as host machine (ie. amd64)
./shell.sh

# Compile the actual game
make -f $SDKROOT/mp/src/games.mak

我还没有触及任何源文件,因为已经提供了大量源文件。我只是想确认是否设置了有效的工具链

这一切都编译得很好,但最后脚本想要 chmod client.so 和 server.so 但声称 "not found" – 但遗憾的是它没有提供任何它搜索的信息他们。其实这些都存在于 $SDKROOT/mp/game/mod_hl2mp/bin

甚至标记为可执行 (-rwxr-xr-x)。

所以我只是忽略了这一点并希望最好。下一行对我来说听起来有点奇怪:

At this point you should have client.so and server.so files to load with the Source SDK Base 2013 of your choice.

所以我应该能够用 "the Source SDK Base 2013" 加载文件(你的选择?!?Valve 是唯一提供它的 O.o)。我该怎么做?遗憾的是,我还没有找到任何提示。

但他们提示我 steam 运行时的 README.txt 告诉我这样做:

run.sh ./MyGame

但是可执行文件在哪里?我只有.so的

这就是我目前所处的位置。我很困惑,因为我现在有很多问题:

我是不是忽略了什么? 我感谢任何提示或资源链接,也许是当我愚蠢地理解它们的意思时的解释:P

编辑:实际上也有一个用于 steam 运行时的 GitHub 存储库(GitHub/steam-runtime)——为什么下载如此过时,git 存储库有一些更新的东西在。应该选哪个?

在一个朋友的帮助下我没想到能回答这个问题(他不知道Linux但我们可以解决)我可以比预期更快地解决它。

通过 Steam SDK Base 到 "load" 游戏只需附加 -game 参数并将其指向包含 gameinfo.txt(即 $SDKROOT/mp/game/mod_hl2mp/)的目录.
或者只需将此目录的内容复制到

~/.local/share/Steam/steamapps/sourcemods/$MYSOURCEMOD

其中 $MYSOURCEMOD 是您要如何调用它(不要使用空格)。然后在该目录中添加一个 steam.inf 文件,内容如下:

appID=243750
ProductName=$MYSOURCEMOD
PatchVersion=1.0.0.0

重启后Steam就能找到sourcemod。

我不是 相当 确定 "steam-runtime" 东西是什么,但我想它是为了设置构建环境(使用自定义 gcc 等)因为这是脚本的样子。我不确定为什么你应该 运行 通过 运行time 的 bin/ 子文件夹中的 run.sh 游戏,而不是通过 Steam 或通过 Source SDK Base 的参数之一,但也许有人可以在这里开导我。

在 GitHub.

上托管的 steam-运行 时间,应下载的档案只有 downloader/configurator