2009-04-29 11 views
4

私は何年もハーフライフの恋人でした。私はCSに学士号を持ち、高等学校以来非公式にプログラミングしています。私が大学にいたとき、私は最初のHalf-Lifeエンジンを使ってfun ...のmodプログラマになろうとしましたが、うまくいきませんでした。だから私はすべての偉大な大学が学んだ後、私はこの問題に取り組む方法についてより多くの洞察を得て、それを最終的に行うことができたと考えました。だからここで私はビジネスワールドプログラミングのJavaで最後に...ですので、私はHL2 SDkをダウンロードし、クラス構造を調べ始めました。私はこれをやってみました。すべてのバックグラウンドについては申し訳ありません。Half-Life 2 SDKの学習にはどのような良いアプローチがありますか?

したがって、体系的にコード構造を学習するにはどうすればよいですか?私はJavaを知っていると私はC + +を知っている...私はちょうどどのクラスが何を知っていない...コメントは、いくつかと遠くの間にあり、ドキュメントは貧弱と思われる。何か良いことはありますか?私は自分のMODを始める必要はありません...私はたぶんクールなMODのスペア・タイム・モード・プログラマーになることを望んでいます...ビジネス側と一緒にプログラミングを学ぶ楽しさを保つためです。

答えて

6

コメントは少なく、 の間のコメントはほとんどなく、ドキュメントは貧弱と思われます。 いいですか?

ソースSDKであることを歓迎します。いいえ、それは文書化されていません。実験、ハック、ブレークポイントを配置し、コードの一部を変更するとどうなるかを確認してください。

場合によっては参考になるかもしれませんが、Valveではなく、コミュニティによって記入されています。これは実際のマニュアルが見つからないことを意味します。以前のmodderがハッキングしたそのエンジン。

正直、それは吸う。その周りの唯一の方法は、潜り込むことです。ゲームにさまざまな変更を加えて、既存のコードを裂くことを恐れないでください。それは可愛くないだろうが、それがうまくいくと、誰が不平を言うだろうか?彼らのコードはかなり恐ろしいもので、おそらくあなたのものもそうです。

+0

エンジンのビルド時間は、少なくとも30-40分です。それは、あまりにも多くの遊びから私を落胆させた1つのことでした。私のC++は少し錆びていて、本当に大きなビルドを扱ったことはありませんでしたが、いくつかのクラスを変更するとエンジン全体を再構築する必要がありますか、変更されたクラスを再コンパイルしますか? – Egg

+0

変更内容によって異なります。ヘッダーファイルを変更すると、そのヘッダーを含むすべてが再コンパイルする必要があります。 .cppファイルを変更すると、そのファイルだけを再コンパイルする必要があります。 – jalf

0

私は他のあいまいなシステムと何をやっていますか?それを見ることで多くのブレークポイントを設定し、構造体の感触を得ることができます。ご自身のコメント/ドキュメントを追加してください。小さな変更を加えて理解をテストし、期待される結果が得られるかどうかを確認してください。

1

オープンソースの改造版のソースコードのうち、Open Source Jail Breakのソースコードをチェックするのが最善の方法だと思います。少なくとも、コードに慣れるのに役立ちます。

これ以外にも、そのdeveloper resourcesとフォーラムがあります。

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

Thisは、一般的なトピックと特定のトピックの両方を含む素晴らしいリストです。

0

私はSource SDKで少し作業していますが、いくつか変更を加えました。本当にあなたはCとC++をよく理解している必要があります。 Source SDKは現代のC++ではなく、実際のOOPよりもクラスに似たC言語に似ています。

SDKは、コードの大部分がエンティティで構成されている点で単純に構成されています。その多くは無視できます。

また、SDKは継承を非常に重視していることも知っていますので、必要な機能を基にしてクラスを構築してください。

SDKでやりたいことに関連する重要なファイルやクラスのリストを作成するといいでしょう。その後、VS内の仮想フォルダ(またはファイルシステム上の実際のフォルダ)を使用してこれらのファイルをソートし、find in filesオプション(またはgrep)を使用して周囲を見つけます。

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

はまたのためにソースSDKベースの代わりHL2MPベースを使用するようにしてくださいmod。前者はたくさんのクリーナーで、簡単に建てやすい。

関連する問題