Source SDK 2013 上手速览:读懂 SDK 目录结构,改出第一个 MOD 的最短路径
2026/9/17 18:59:09 网站建设 项目流程

Source SDK 2013 上手速览:读懂 SDK 目录结构,改出第一个 MOD 的最短路径

【免费下载链接】source-sdk-2013The 2013 edition of the Source SDK项目地址: https://gitcode.com/GitHub_Trending/so/source-sdk-2013

Source SDK 2013 是 Valve 开放的 Source 引擎 MOD 开发工具包,仓库装的是《半条命2:死亡竞赛》(HL2:DM)与《军团要塞2》(TF2)的完整游戏代码。这篇 Source SDK 2013 教程不按目录逐层翻译,而是按"拿到仓库后按什么顺序动手"来讲:认路 → 构建 → 找入口 → 动手改,10 分钟足够建立全局认知。

需要克隆的话,仓库地址是:

git clone https://gitcode.com/GitHub_Trending/so/source-sdk-2013

📂 认路:SDK 目录结构速读——内容在 game,代码在 src

根目录很克制:README.mdCONTRIBUTINGLICENSE、第三方声明各占一行,一句话带过即可。真正干活的是两个大目录。

  • game/:内容层。mod_hl2mp/mod_tf/各是一个完整 MOD 的"壳"——地图在maps/,材质在materials/,武器脚本是scripts/weapon_*.txt,数值配置是cfg/skill.cfg,另有锁定 MOD 身份的gameinfo.txtsteam.inf
  • src/:代码层。游戏逻辑主体在src/game/下的client/server/shared/,按端划分清晰;引擎接口、数学库、界面框架等底层在src/public/src/mathlib/等目录,初学一般不用碰。

src/vpc_scripts/(工程生成脚本)、src/lib/(预编译库)、src/utils/(vbsp 等地图编译工具)属于构建支撑,按需查阅。记住这一句就够了:内容在 game,逻辑在 src,构建脚本在 src 根下。

🚀 构建:哪两个脚本决定项目能不能跑起来

这一步最容易卡住:两个平台各有一个入口脚本,而且都要求你先用 Steam 装好 "Source SDK 2013 Multiplayer" 客户端包——源码只负责编译,运行时内容来自 Steam 那份 VPK。

Windows:一行命令生成 VS 工程

src下运行createallprojects.bat,它会调devtools/bin/vpc.exe生成everything.sln

cd src createallprojects.bat

随后在 Visual Studio 2022 里 Build Solution,把Client (Mod Name)项目设为启动项,按 F5 就能带调试跑起你的 MOD。前置条件:VS2022 C++ 工作负载、Windows SDK、Python 3.13 以上。

Linux:podman 容器里一键全量构建

Linux 侧更省事。./buildallprojects会自动拉起 Steam Runtime(sniper)容器编译 release 版本,还顺手生成compile_commands.json,方便给 C++ IDE 配跳转:

cd src && ./buildallprojects cd game && ./mod_hl2mp

⚙️ 入口在哪:launcher 只是跳板,gameinfo.txt 才是 Source SDK 2013 的大脑

容易产生的误解是"启动文件就是 hl2.exe"。src/launcher_main/main.cpp的注释写得很直白:它是个重定向工具——启动 exe 负责初始化 Steam,然后加载你编译出来的 MOD 客户端 DLL。所以 hl2.exe 启动参数里真正决定行为的,是"去哪找 DLL",而 DLL 的行为又由 MOD 内容驱动。

MOD 的身份和加载规则由两个文件锁定:

  • steam.infappID=243750声明 MOD 寄生于 SDK2013 多人版客户端,ProductName决定构建产物目录名;
  • gameinfo.txt:引擎文件搜索路径全在这里。SearchPaths按顺序挂载custom/用户目录、MOD 自身目录、HL2 各 VPK,game+download排在末尾,防止服务器下载内容覆盖正式文件。改其中任意一行 SearchPaths,就能重定向整个 MOD 的加载顺序——想理解 Source 引擎资源机制,这里是最好的教材。

🔧 动手改:这三个位置,改一行就能看见效果

  • 数值手感game/mod_hl2mp/cfg/skill.cfgsk_player_head "3"是爆头伤害倍率,sk_suitcharger系列管血包/护甲包数值,改完重进游戏立刻生效;cfg/skill_manifest.cfg声明哪些键开放给玩家调节,别漏改。
  • 武器行为scripts/weapon_*.txt一武器一文件,弹匣、切换动画、弹道参数都在里面,建议先从weapon_ar2.txt试手。
  • 资源加载:往game/mod_hl2mp/custom/丢松散文件或 VPK,引擎启动时自动按字母序挂载——这就是官方推荐的标准 MOD 分发方式。

顺带一提,游戏跑起来之后用户目录里还有一份autoexec.cfg,每次启动自动执行;autoexec.cfg 配置方法(键位、灵敏度之类)与本仓库无关,Valve 开发者 Wiki 有专门章节。

下一步:把skill.cfg的爆头倍率改成 5 跑一把 HL2:DM 验证整条链路,再去src/game/shared/里找对应实体的逻辑源码对照阅读;想深入文档与 MOD 分发规范,收藏 Valve Developer Wiki 的 Source SDK 2013 页面即可。

【免费下载链接】source-sdk-2013The 2013 edition of the Source SDK项目地址: https://gitcode.com/GitHub_Trending/so/source-sdk-2013

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询