4

私は何年もハーフライフの恋人でした。私は CS の学士号を取得しており、高校時代から非公式にプログラミングを行っています。まだ大学生だった頃、趣味で Mod プログラマーになろうとしました..最初の Half-Life エンジンを使って..うまくいきませんでした。だから私は大学での素晴らしい学習の後に考えました:-)私はこの問題に取り組む方法についてより多くの洞察を持ち、最終的にそれを行うことができるでしょう. ここで私は..ようやくビジネスの世界で Java をプログラミングしています...そこで HL2 SDk をダウンロードし、クラス構造を調べ始めました。前回これを試したときのように感じます...ぼんやりと混乱しています。すべての背景について申し訳ありません。

では、コード構造を体系的に学習するための最良の方法は何でしょうか? 私はJavaを知っており、c ++を知っています..クラスが何をしているのかわかりません...コメントはほとんどなく、ドキュメントは貧弱に見えます。良いアプローチはありますか?私は **自分自身の mod を開始したくありません... 私は、いつかクールな MOD で余暇の mod プログラマーになりたいと思っています... ビジネスの側面と一緒にプログラミングを学ぶ楽しさを維持するために。

4

5 に答える 5

6

コメントはほとんどなく、ドキュメントは貧弱に見えます。良いアプローチはありますか?

Source SDK という驚異へようこそ。いいえ、文書化されていません。実験し、ハッキングし、ブレークポイントを配置して、コードの一部を変更するとどうなるかを確認してください。

場合によっては役立つと思われるwikiがありますが、Valve ではなくコミュニティによって記入されているため、実際のドキュメントは見つからず、以前の modder がどのようにエンジンをハックしたかについての説明のみです。

正直なところ、それはひどいです。それを回避する唯一の方法は、飛び込むことです。ゲームにさまざまな変更を加えてみてください。既存のコードをバラバラにすることを恐れないでください。きれいではありませんが、うまくいけば誰が文句を言うでしょうか? 彼らのコードは非常にひどいものであり、おそらくあなたのコードもそうなるでしょう。

于 2009-04-29T17:30:39.433 に答える
3

Valve Developer Wikiから始めることができます。

于 2009-04-29T17:23:58.280 に答える
1

最善の方法は、数少ないオープン ソース modの 1 つであるOpen Source Jail Breakのソース コードをチェックすることだと思います。少なくともコードに慣れるのに役立ちます。

それを超えて、それは単なる開発者リソースとフォーラムです.

編集: Plan of Attackも素晴らしいようです。

また:これは、一般的なトピックと特定のトピックの両方を含む優れたリストです。

于 2009-04-29T17:29:58.700 に答える
0

私は他のあいまいなシステムと同じことをします...多くのブレークポイントを設定し、それが機能するのを見て構造の感触をつかみます。独自のコメント/ドキュメントを追加してください。小さな変更を加えて理解度をテストし、期待どおりの結果が得られるかどうかを確認してください。

于 2009-04-29T17:24:36.890 に答える
0

Source SDK を少し使用して、いくつかの変更を加えました。本当に、C と C++ をよく理解している必要があります。ソース SDK は最新の C++ ではなく、実際の OOP よりもクラスを使用した C にはるかに似ています。

SDK は、主要なコードがエンティティで構成されているという点で単純に作られていますが、その多くは無視できます。

また、SDK は継承を非常に頻繁に使用することを知っているため、必要な機能については基本クラスを参照してください。

SDK でやりたいことに関連する可能性のある重要なファイルとクラスのリストを作成することをお勧めします。次に、VS の仮想フォルダー (またはファイルシステム上の実際のフォルダー) を使用してこれらのファイルの並べ替えを開始し、ファイル内検索オプション (または grep) を使用して方法を見つけます。

いくつかのサンプル ファイル: eiface.h - エンジン インターフェース gameinterface.cpp/.h - サーバー用の外部 dll からの多数のインターフェース cdll_client_int.cpp/.h - クライアント用の外部 dll からの多数のインターフェース *_gamerules.cpp/.h - ゲームルール (ゲームのロジックを決定します) world.cpp - マップ プロパティを決定し、ゲームルールやその他のエンティティをロードするエンティティ

また、mod には HL2MP Base の代わりに Source SDK Base を使用してみてください。前者はよりクリーンで、構築が容易です。

于 2010-02-24T03:24:39.930 に答える