【问题标题】:What are some good approaches to learning the Half-Life 2 SDK?有哪些学习半条命 2 SDK 的好方法?
【发布时间】:2010-10-22 15:35:02
【问题描述】:

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

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

【问题讨论】:

    标签: c++ sdk


    【解决方案1】:

    您可以从Valve Developer Wiki开始。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        除此之外,它只是 developer resources 和论坛。

        Edit:Plan of Attack 看起来也很棒。

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

        【讨论】:

          【解决方案4】:

          cmets 少之又少 并且文档似乎很少。 有什么好的方法吗?

          欢迎了解 Source SDK。不,它没有记录在案。试验、破解、放置断点,看看如果您更改代码会发生什么。

          wiki 在某些情况下可能对您有所帮助,但它是由社区填写的,而不是 Valve 填写的,这意味着您不会在那里找到任何实际文档,只是解释以前的修改器如何入侵了引擎。

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

          【讨论】:

          • 引擎的构建时间至少为 30-40 分钟。那是让我不敢玩太多的一件事。我的 C++ 有点生疏了,而且我从来没有处理过非常大的构建,但是如果我更改了一些类,我是否必须重新构建整个引擎,或者它是否会重新编译更改的类?
          • 这取决于你改变了什么。如果更改头文件,则包含该头文件的所有内容都必须重新编译。如果您更改 .cpp 文件,则只需重新编译该文件。
          【解决方案5】:

          我已经使用 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。前者更清洁,更容易构建。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-01-01
            • 2011-05-11
            • 1970-01-01
            • 2011-10-30
            • 2010-09-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多