Half-Life 2 SDKを学習するための良いアプローチは何ですか?
質問
私は長年、半減期の恋人でした。私はCSでBSを取得しており、High-School以来非公式にプログラミングを行っています。私がまだ大学にいたとき、私は楽しみのためにMODプログラマーになろうとしました..最初のHalf-Lifeエンジンを使用して...それほどうまくいきませんでした。だから私はすべての私の偉大な大学の再学習後に考えた:-)この問題に取り組む方法についてより多くの洞察を得て、最終的にそれを行うことができます。だからここで私は最終的にビジネスの世界でJavaをプログラミングしています...だからHL2 SDkをダウンロードし、クラス構造を調べ始めました。前回これを試してみたような気がします。すべての背景について申し訳ありません。
では、体系的にコード構造を学習する最良の方法は何ですか?私はJavaを知っていて、C ++を知っています..私はクラスの何が何をするのか分からない...コメントはほとんどなく、ドキュメントは乏しいようです。良い承認はありますか?私は自分のMODを始めたくない...いつかクールなMODで暇なMODプログラマーになりたい...ビジネス側と一緒にプログラミングを学ぶ楽しさを保つために。
解決
コメントはほとんどありません ドキュメントは乏しいようです。 良い承認はありますか?
Source SDKの不思議へようこそ。いいえ、文書化されていません。実験、ハッキング、ブレークポイントの配置、およびコードのビットを変更した場合の動作を確認してください。
wiki がありますが、役立つ場合がありますが、充実していますこれは、Valveではなくコミュニティによって行われます。つまり、実際のドキュメントはそこにはなく、以前の改造者がどのようにエンジンをハッキングしたかの説明だけです。
正直なところ、それはひどいです。それを回避する唯一の方法は、飛び込むことです。ゲームにさまざまな変更を加え、既存のコードを引き裂くことを恐れないでください。それはきれいではありませんが、それが機能する場合、誰が文句を言うでしょうか?彼らのコードはかなり恐ろしく、おそらくあなたのものもそうでしょう。
他のヒント
Valve Developer Wiki から開始できます。
最良の方法は、 few オープンソースmodの1つであるオープンソースのジェイルブレイク。少なくともコードに慣れるのに役立ちます。
さらに、その開発者向けリソースおよびフォーラム
編集:攻撃計画も素晴らしいようです。
また:これは、一般的なトピックと特定のトピックの両方を含む素晴らしいリストです。
他の曖昧なシステムで行うことを行います...多くのブレークポイントを設定し、機能を監視することで構造を感じます。独自のコメント/ドキュメントを追加してください。小さな変更を加えて理解度をテストし、期待どおりの結果が得られるかどうかを確認します。
ソースSDKを少しの間使用して、いくつかの変更を加えました。本当に、CとC ++をよく理解している必要があります。 Source 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ベースの代わりにソースSDKベースを使用するようにしてください。前者は、よりクリーンで簡単に構築できます。