2Dゲームエンジンの設計に関する優れたリソースは何ですか?

StackOverflow https://stackoverflow.com/questions/179735

  •  05-07-2019
  •  | 
  •  

質問

暇なときにC ++とDirectXを使用した2Dゲーム開発をいじっています。企業の問題のドメインモデリングアプローチは、私が望むほど役に立たないことがわかりました;)

「ベストプラクティス」を多かれ少なかれ探しています。基本的なゲームエンジンの設計に相当します。エンティティが相互作用する方法、アニメーションとサウンドを理想的な世界でどのように表現するかなど。

誰もが推奨できる優れたリソースを持っていますか?

役に立ちましたか?

解決

Gamedev.net は、通常、ゲーム開発コミュニティの他の人々が何であるかを知るための場所です

とはいえ、「ベストプラクティス」という考え方は、ゲーム開発では、ほとんどの場合よりも揮発性が高くなります。ゲームは特殊なアプリケーションである傾向があり、「1つのサイズにすべてを合わせる」ことはほとんど不可能です。答えます。テトリスでうまく機能するのは小惑星では役に立たないだろうし、Haloで完璧に機能するモデルはマリオで悲惨に失敗する可能性が高い。

「業界標準」というものはないこともすぐにわかります。テクスチャ、メッシュ、レベル、サウンド、またはアニメーション形式用。誰もが自分で転がすか、プラットフォームに便利なものを使用します。時折、 COLLADA のようなものを見ることがありますが、これはまだエクスポーターの作成を容易にするために設計された単なる中間形式です。 。

ゲーム開発が初めての場合、私のアドバイスは次のようになります。最初の段階でコード構造を殺してはいけません。小惑星のような単純なゲームを試してみて、「ugい」とはいえ、うまくいくまでハックするだけです。コードは。大規模なプロジェクトでどれだけうまく機能するか心配することなく、使い慣れたシンプルなフォーマットを使用してください。プラグイン、スキン、エディター、またはその他の綿毛については心配しないでください。動作させるだけです!次に、最初にすべての重要なゲームを終了したら、別のゲームを選択し、今回はコードの1つまたは2つの側面をクリーンアップします(ただし、行き過ぎないでください)。

これにより、「正しい方法」のためにオンラインでいろいろなことをするよりもはるかに速くなることをお約束します。これは可能です(これは、たくさんのポークをした人から来ています)。

そして最後に考えたことがあります:より明確に定義されたスペースでの作業を快適に感じる場合は、 XNAをご覧ください。 または同様のライブラリ。彼らは「最高」の一部を事前に定義します。使用するフォーマットとそれらを操作するためのツールを提供します。これにより、初期の推測作業の一部が取り除かれます。

幸運、そして何よりも忘れないでください:ゲーム(およびその開発)は楽しいはずです!ちょっとしたものにとらわれすぎないでください!

他のヒント

ゲームを作成します。完了したら、別のものを作成します。好きなものと嫌いなものを見て、別のものを作ります。

ただし、真剣に、「ベストプラクティス」のすべてを読むことができます。あなたが望むゲームデザインのガイドですが、最終的には経験に帰着します。経験を積む唯一の方法は、座ってゲームを書くことです。これを数回行うと、ゲームの作成方法について多くのより良いアイデアが得られます。

Andre Lamothe が貢献者の1人として。

GameDev にも多数の記事があります。

私はあなたにもっと同意できません。エンタープライズアプリケーションはゲームプログラミングの準備をしていません。

Python、java、html / php、perlで小規模なゲームをいくつか作成しました。おそらくご存知のように、ゲームの基本構造は次のとおりです。

メインループ:
   handleInput()
   updateGameLogic()
   renderImages()

今、それはすべて、70年代や80年代のものと同様に、シングルスクリーン、シングルスレッドゲームに適しています。しかし、この構造は、マルチスクリーンゲーム(RPGなど)や、よりエキゾチックなものには特に適していません。あまりうまくスレッドしません。さまざまな入力を処理する必要があるため、コードはかなりファンキーになります。うまくスケールしません。

ただし、この比phorをあまりにも多く打ち負かす前に、ここは優れた出発点であることに注意してください。 Python / Pygameを学ぶことをお勧めし、設計と実装プロセスを複雑にするC ++ではなく、そのツールを使用してゲームの構築を開始します。 Pythonでプロトタイプを作成すると、ゲームがより高速になり、言語に依存しない問題が発生することがわかります。

私にとって、ゲームプログラミングで最も困難で時間のかかる側面は、グラフィックとサウンドの資産です。私は少しオーディオオタクでアマチュアミュージシャンですが、信じられないほど適切な音楽とSFXを作成することは、それ自体がプロジェクトです。私にはグラフィックの才能がないので、既存の画像を修正するか、無料で入手可能な画像を使用する必要があります。幸いなことに、ゲームに使用できる広く利用可能な無料のフォントがあります(ほとんど普遍的に悪いので、他にはほとんどありません)。

最後に、他のプロジェクトがこれをどのように処理するかを見るためのオープンソースのようなものはありません。 Battle of Westnothは、成熟した中規模のゲームです。あなたはそこで何が起こっているのかを見たいかもしれません。繰り返しますが、Pythonのゲームは頻繁にソースコードを利用できるようにするため、そこで何百ものプロジェクトを調べることができます。また、atari 2600 ROMを逆コンパイルすることもできますが、今日のプログラミングについてはあまり説明しません。古いVCSは、システムに非常に依存した方法でアプリを処理する専用デバイスでした。 :-D

最後に、Andre LaMotheも好きです。彼の古い1993年の本は100万ページの厚さです。いくつかの一般的なゲームのアイデアに関する優れたリファレンスですが、その多くは、当時存在しなかった無料で利用可能なライブラリとフレームワークの利用可能性によって回避されます。

プロジェクトの成功をお祈りします。

まだ言及されていないので、コミュニティにリリースされた既存のエンジンを見て始めましょう。 2Dの話をしているので、 虐待 。はい、それは古代であり、興味深い部分のほとんどはLispにあります-しかし、ゲームはしばらくの間非常に人気がありました。

たまたま、元のゲームの多くがLispにあったという事実は非常に有用な教訓だと思います。最も堅牢な言語/ツールを選択し、パフォーマンスを心配しないでください。 Cで遅い部分をいつでも最適化できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top