学习Half-Life 2 SDK的好方法有哪些?

4

我多年来一直是《半条命》的粉丝。我拥有计算机科学学士学位,并自高中时期起就开始非正式地进行编程。当我还在上大学时,我尝试成为一个mod程序员,只是出于兴趣,使用了第一个《半条命》引擎,但效果并不好。所以我想,在我所有伟大的大学学习之后,我会更有洞察力,能够解决这个问题并最终做到它。所以现在我在商业世界中,用java进行编程...所以我下载了HL2 SDk并开始查看类结构。感觉就像上次我尝试这样做时一样...晕头转向。对于所有背景信息,我很抱歉。

那么系统学习代码结构的最佳方法是什么?我知道java和c++,只是不知道任何类都是做什么的...注释很少,文档似乎很少。有什么好的方法吗?我不想开始自己的mod...我只想成为某天酷炫MOD的业余程序员...保持学习编程的乐趣,同时也要考虑商业方面。

5个回答

6
欢迎来到Source SDK的世界。不过,它并没有详细的文档支持。你可以尝试实验、修改代码、打断点,看看会发生什么。
有一个维基可能对你有所帮助,但它是由社区填写的,而不是由Valve提供的,这意味着你在那里找不到任何实际的文档,只能看到之前的模组制作者如何修改引擎的解释。
说实话,这很糟糕。唯一的解决方法就是深入研究。尝试对游戏进行各种改动,不要害怕拆开现有的代码。虽然看起来不太美观,但如果有效果,谁会抱怨呢?他们的代码非常糟糕,很可能你的也是。

引擎的构建时间至少需要30-40分钟。这是让我不太想玩得太多的原因之一。我的C++有点生疏,而且我从未处理过真正庞大的构建,但如果我更改了几个类,我是否必须重新构建整个引擎,还是只需重新编译已更改的部分? - Egg
这取决于你改变了什么。如果你改变了一个头文件,包含该头文件的所有内容都需要重新编译。如果你改变了一个 .cpp 文件,只有该文件需要重新编译。 - jalf

3

1

我认为最好的方法是查看其中少数开源模块之一 Open Source Jail Break 的源代码。这将至少帮助您熟悉代码。

除此之外,还有开发者资源和论坛。

编辑:攻击计划 也很不错。

另外:这个 是一个包括一般和具体主题的好列表。


0

我曾经使用过Source SDK并进行了一些修改。你必须对C和C++有很好的理解,因为Source SDK不是现代的C++,而更像是带类的C语言。

SDK的结构非常简单,大部分代码都由实体组成,其中许多可以忽略。

此外,请注意SDK非常重视继承,因此请查找基类以获取所需的功能。

我建议列出与SDK相关的重要文件和类的清单。然后使用VS中的虚拟文件夹(或文件系统上的实际文件夹)对这些文件进行排序,并使用“查找文件”选项(或grep)来浏览。

一些示例文件: eiface.h - 引擎接口 gameinterface.cpp/.h - 服务器外部dll的许多接口 cdll_client_int.cpp/.h - 客户端外部dll的许多接口 *_gamerules.cpp/.h - 游戏规则(确定游戏逻辑) world.cpp - 确定地图属性并加载游戏规则和其他实体的实体

另外,尝试使用Source SDK Base而不是HL2MP Base进行修改。前者更加干净且易于构建。


0
我会像处理其他模糊系统一样去做...设置很多断点,通过观察其运行来了解其结构。在进行操作时添加自己的注释/文档。通过进行小的更改并查看是否获得预期结果来测试您的理解。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接