4

多年来,我一直是半条命的爱好者。我拥有计算机科学学士学位,并且从高中开始就一直在进行非正式编程。当我还在上大学的时候,我试图成为一名有趣的模组程序员……使用第一个半条命引擎……效果不太好。所以我想在我所有伟大的大学学习之后:-) 我会对如何解决这个问题有更多的了解,并且最终可以做到。所以我在这里......终于在商业世界编程java......所以我下载了HL2 SDk并开始查看类结构。我觉得我上次尝试这个时就是这样做的……茫然和困惑。对不起所有的背景。

那么系统学习代码结构的最佳方法是什么?我知道java,我知道c++ ..我只是不知道任何类的作用......评论很少而且相距甚远,文档似乎很微薄。有什么好的方法吗?我**不想开始我自己的模组……我只是想有一天成为一个业余模组程序员,在一些很酷的模组上……保持学习编程和商业方面的乐趣。

4

5 回答 5

6

评论很少,而且文档似乎很少。有什么好的方法吗?

欢迎来到 Source SDK 的奇迹。不,它没有记录在案。实验、破解、放置断点,看看如果你改变了一些代码会发生什么。

有一个wiki在某些情况下您可能会觉得很有帮助,但它是由社区而非 Valve 填写的,这意味着您不会在那里找到任何实际文档,只是解释了以前的改装者如何破解引擎。

老实说,这很糟糕。解决它的唯一方法是潜入。尝试对游戏进行各种更改,不要害怕将现有代码撕裂。它不会很漂亮,但如果它有效,谁会抱怨?他们的代码非常糟糕,而且很可能你的代码也会如此。

于 2009-04-29T17:30:39.433 回答
3

您可以从Valve Developer Wiki开始。

于 2009-04-29T17:23:58.280 回答
1

我认为最好的方法是查看为数不多的开源模组之一的源代码,即Open Source Jail Break。它将帮助您至少熟悉代码。

除此之外,它只是开发人员资源和论坛。

编辑:进攻计划似乎也很棒。

另外:是一个很棒的列表,包括一般和特定主题。

于 2009-04-29T17:29:58.700 回答
0

我会做我对任何其他模糊系统所做的事情......设置很多断点并通过观察它的功能来感受结构。随时添加您自己的评论/文档。通过做一些小的改变来测试你的理解,看看你是否得到了预期的结果。

于 2009-04-29T17:24:36.890 回答
0

我已经使用 Source SDK 做了一些修改。真的,你必须对 C 和 C++ 有很好的理解。Source SDK 不是现代 C++,它更类似于带有类的 C,而不是任何真正的 OOP。

SDK 很简单,主要代码由实体组成,其中许多可以忽略。

还知道 SDK 大量使用继承,因此请查看基类以获得您可能需要的功能。

我会说列出可能与您希望使用 SDK 执行的操作相关的重要文件和类。然后开始使用 VS 中的虚拟文件夹(或文件系统上的真实文件夹)对这些文件进行排序,并使用 find in files 选项(或 grep)来查找您的方式。

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

还可以尝试使用 Source SDK Base 而不是 HL2MP Base 作为 mod。前者更清洁,更容易构建。

于 2010-02-24T03:24:39.930 回答