Source SDK 2013 实战:跑通第一个Mod
【免费下载链接】source-sdk-2013The 2013 edition of the Source SDK项目地址: https://gitcode.com/GitHub_Trending/so/source-sdk-2013
Source SDK 2013 是 Valve 官方 SDK,提供半条命2、HL2:DM、TF2 的完整游戏代码。想在 Source 引擎上做模组开发,就从这份源码开始。这里直接走通 clone、编译、启动的全流程。
🚀 最小路径:三步从 clone 到启动
前置条件一句话:Steam 里要先装好 "Source SDK 2013 Multiplayer";Windows 需要 Visual Studio 2022(C++ 工作负载)+ Python 3.13,Linux 需要 podman。
第一步,拿源码:
git clone https://gitcode.com/GitHub_Trending/so/source-sdk-2013执行完你会得到一个源码目录,顶层是game/(内容)和src/(代码)两块。
第二步,生成工程并编译:
cd src createallprojects.batLinux 把第二行换成./buildallprojects即可,macOS 没有官方构建支持。执行完,Windows 下生成everything.sln解决方案,Linux 直接用 ninja 编译并产出模组启动器。
第三步,启动模组:
cd game ./mod_hl2mpWindows 则在 VS 里选中对应 Client 工程点调试按钮。执行完你会看到模组窗口启动,列表里的模组名显示为 "My First HL2MP Mod"。
🔍 骨架拆解:三层目录结构
| 模块 | 职责 |
|---|---|
| game/ | 模组内容:模板、地图、武器配置 |
| src/game/ | 游戏逻辑:渲染、规则、共享代码 |
| src/public/ | 引擎接口:渲染、物理、网络 |
| src/utils/ | 工具链:地图与光照编译工具 |
内容层:管游戏里有什么
game/mod_hl2mp/ 与 game/mod_tf/ 是两个完整模板,一个做死斗、一个做 TF2。每个模板带地图、材质和武器配置。gameinfo.txt 是模组入口配置,定义名称和资源搜索路径。
逻辑层:管游戏规则
src/game/ 拆成 client、server、shared 三块。client 管渲染与界面,server 管状态与 AI,shared 放两边共用的结构。改行为前先分清它属于哪一侧。
基础库与工具链:管编译和运行
tier0/ 与 tier1/ 是底层库,管内存、字符串和容器。工具链 里有 vbsp 和 vrad,负责编译地图和烘焙光照。你的代码通过 src/public/ 里的接口调用引擎能力。
🔧 练个手:改模组显示名称
选一个最小改动点:改配置文件里的一行。
打开 game/mod_hl2mp/gameinfo.txt,开头是这样的格式:
"GameInfo" { game "Hello Source" type multiplayer_only }- 改:把
game行的内容换成你自己的名字,保持格式不动。 - 重新构建:配置改动不用重编译;改了 C++ 代码才需要重跑构建命令。
- 重启:执行
cd game && ./mod_hl2mp再进游戏。 - 验证:启动器列表里的模组名变成了你填的 "Hello Source"。
⚠️ 新手三坑:启动与编译报错排查
脚本跑了但没生成解决方案
现象:createallprojects.bat 一闪而过,VS 里提示找不到工程。 原因:VS2022 没装 C++ 桌面开发工作负载,或 Python 版本过旧。 解法:补装工作负载,把 Python 升到 3.13 以上,再跑一次脚本。
Linux 下 buildallprojects 直接报错
现象:脚本报找不到容器运行时,或卡在拉取镜像。 原因:没装 podman,代码要在 Steam Runtime 容器里编译。 解法:先装好 podman 再重跑,确认能拉取 Steam Runtime 镜像。
启动模组提示缺少内容
现象:启动时弹窗报错,或列表为空、进不了地图。 原因:Steam 里没装 "Source SDK 2013 Multiplayer",vpk 资源缺失。 解法:在 Steam 商店把该内容装好再重新启动。
📌 下一步往哪走
- Valve Developer Wiki 有 Source SDK 2013 的完整章节,API 和实体文档都在这,是深入学习的官方入口。
- 从 scripts/ 挑一个武器文件读参数,是理解数据流最快的方式。
- 想自己出地图,从 src/utils/vbsp/ 的编译工具开始学起。
你已经把 SDK 编译出来并改动了模组名,这条最小开发闭环是通的。去 weapon_pistol.txt 改一个字段再重启,把变化看到游戏里。
【免费下载链接】source-sdk-2013The 2013 edition of the Source SDK项目地址: https://gitcode.com/GitHub_Trending/so/source-sdk-2013
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考