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

那么系统地学习代码结构的最佳方法是什么?我知道java,我知道c ++ ..我只是不知道任何类的做什么......评论很少,而且文档似乎微不足道。好评如潮?我不想开始自己的模式...我想有一天想在一些很酷的MOD上做一个业余时间的程序员...以保持学习编程和业务方面的乐趣。

有帮助吗?

解决方案

  

评论很少而且很远   文档似乎微薄。   好评如潮?

欢迎来到奇妙的Source SDK。不,它没有记录。试验,破解,放置断点,看看如果更改代码位会发生什么。

在某些情况下,您可能会发现 wiki ,但它已经填满了在社区,而不是Valve,这意味着你不会在那里找到任何实际的文档,只是解释了以前的模型如何破解引擎。

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

其他提示

您可以从 Valve Developer Wiki 开始。

我认为最好的方法是查看其中一个少数开源mod的源代码,开源越狱。它将帮助您至少熟悉代码。

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

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

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

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

我已经使用了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 - Gamerules(确定游戏逻辑) world.cpp - 确定地图属性并加载游戏规则和其他实体的实体

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

scroll top