我多年来一直是半条命爱好者。我拥有CS的学士学位,并且从高中开始就进行了非正式的编程。当我还在大学的时候,我试图成为一名有趣的程序员......使用第一个半条命引擎......没有那么好用。所以我想到了我所有伟大的大学学习:-)我会更多地了解如何解决这个问题,并最终可以做到这一点。所以我在这里...最终在商业世界编程java ...所以我下载了HL2 SDk并开始查看类结构。我觉得我上次尝试这个时就这样做了......茫然和困惑。抱歉所有的背景。
那么系统地学习代码结构的最佳方法是什么?我知道java,我知道c ++ ..我只是不知道任何类的做什么......评论很少,而且文档似乎微不足道。好评如潮?我不想开始自己的模式...我想有一天想在一些很酷的MOD上做一个业余时间的程序员...以保持学习编程和业务方面的乐趣。< / p>
答案 0 :(得分:6)
评论很少而且很远 文档似乎微薄。 好评如潮?
欢迎来到奇妙的Source SDK。不,它没有记录。试验,破解,放置断点,看看如果更改代码位会发生什么。
在某些情况下,您可能会发现wiki有用,但它由社区填写,而不是由Valve填写,这意味着您不会在那里找到任何实际文档,只需解释之前的情况modders已经攻击了引擎。
老实说,这太糟糕了。潜入的唯一方法是潜入。尝试对游戏进行各种更改,并且不要害怕将现有代码分开。它不会很漂亮,但如果它有效,谁会抱怨?他们的代码非常可怕,而且很可能,你的代码也是如此。
答案 1 :(得分:3)
您可以从Valve Developer Wiki开始。
答案 2 :(得分:1)
我认为最好的方法是查看其中一个少数开源mod的源代码,Open Source Jail Break。它将帮助您至少熟悉代码。
除此之外,它只是developer resources和论坛。
编辑:Plan of Attack似乎也很棒。
另外:This是一个很棒的列表,包括一般主题和特定主题。
答案 3 :(得分:0)
我会做任何其他模糊系统的操作......设置很多断点并通过观察它的功能来感受结构。随时添加您自己的评论/文档。通过进行小的更改来测试您的理解,看看您是否得到了预期的结果。
答案 4 :(得分: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 - Gamerules(确定游戏逻辑) world.cpp - 确定地图属性并加载游戏规则和其他实体的实体
还尝试使用Source SDK Base而不是HL2MP Base作为mod。前者更清洁,更容易建立起来。