Source Engineの完全なC ++ソースコードは利用できますか?
SDKがソースベースのゲームの購入で利用可能であることはわかっていますが、私の目的は、学習目的のための完全な実装の詳細を含むオープンソースのゲームエンジンを見つけることです。
Source Engineの完全なC ++ソースコードは利用できますか?
SDKがソースベースのゲームの購入で利用可能であることはわかっていますが、私の目的は、学習目的のための完全な実装の詳細を含むオープンソースのゲームエンジンを見つけることです。
回答:
いいえそうではありません。Valveからソースライセンスを取得できますが、ソース自体はオープンソースではありません。
さらに、既存のエンジン全体を学習資料として使用することは、そのエンジンの開発に深く関与している誰かからの指導なしに、一般に非常に危険なアプローチです。
ソースコードだけで特定の設計上の決定の仕方がわかるだけであり、ソフトウェアエンジニアリングの非常に多くの選択肢が一般に同等に有効なオプションの中から選択される場合に、非常に重要な決定の背後にある理由はわかりません。選択が適切である理由を理解するためのコンテキストが必要です。エンジンのソースを見て、そのテクニックとイディオムをオウムするだけでは、有用なことをほとんど学習できません。
さらに、コードがゲームに同梱されているからといって、そのコードは適切ではありません(特に、たとえば、ソースは、C ++やOOに関して、非常に時代遅れの設計上の決定を下しがちです)。最も成功したAAAタイトルでさえ、エンジンのコードベースには恐ろしい物語がたくさんあります。そして印象的な新生物として、良いコードと悪いコードをどのように区別できるでしょうか?
ソースコードを学習リソースとして使用する際は十分に注意し、できる限り多くの補足情報と組み合わせてください。
tl; dr:エンジンを作成する方法を学ぶことは、自分のコンピューターとオペレーティングシステムを最初から構築することを学ぶことと同じくらい、ゲームの作成に役立つことがよくあります。あなたがその分野の専門家でなければ、おそらくエンジンを作りたくないでしょう。代わりにゲームを作成します。エンジン部分はすでに存在しています。後から、ゲームデザインの基準を満たすためにアクセスできるエンジンがない場合は、その特定の側面の構築に集中できます。新しいものを作成し、堅牢性の低いバージョンをリハッシュしないので、他の人にも役立ちます。人々がすでに数千時間を費やしている何かの。
長いバージョン:エンジンの作成方法を本当に学びたい場合は、まだ既存のエンジンを調べないでください。エンジンを構成するパーツ(アルゴリズム)の代わりに、レンダリング、物理、経路探索などについて学びます。特定の側面を深く理解したら、ソースを確認することをお勧めします。
優れた代替手段がない限り、通常、ソースから直接学習することは望まないでしょう。経験豊富なプログラマーでさえ、通常はエンジン全体のソースを調べてそこから学ぶことはありません(彼らがそれを助けることができる場合)、彼らはほとんどの場合、エンジンの特定の部分を検査するか、またはエンジンの特定の部分を微調整します。純粋な学習目的でソースを確認しようとしても、エンジンコードの背後にある手順と思考プロセスは公開されません。それは、建物の作り方を学ぶために建物の内部を見るために建物を引き裂くようなものです。私はジョシュの答えに同意しますが、私はそれをさらに一歩進めます。あなたは多くの意味で「方法」を学ぶことすらありません(フィールドに精通している場合を除きます)。例えば、プログラミングチームはどの方法論を使用しましたか?動作するコードを実装するためにどのような原則に依存しましたか?デバッグにどのツールとテクニックを使用しましたか?これらすべての質問は、コード自体よりも重要な場合があります(学習目的のため)。
ソースから学習したい場合は、十分に文書化され、強力なコミュニティが構築されているソースを探してください。(エンジン)コードを読むことは、たとえ自分で書いたとしても、しばしば混乱を招きます。