11

余暇には、C++ と DirectX を使用した 2D ゲーム開発をいじっています。私は、エンタープライズの問題領域モデリングのアプローチが、私が望むほどには役に立たないことを発見しています;)

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

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

4

5 に答える 5

15

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

とはいえ、ゲーム開発における「ベストプラクティス」の考え方は、ほとんどの場合よりも不安定であることがわかると思います。ゲームは非常に特殊なアプリケーションである傾向があるため、「1つのサイズですべてに対応する」という答えを出すことはほぼ不可能です。テトリスでうまく機能するものは小惑星では役に立たなくなり、ハローで完璧に機能するモデルはマリオでは惨めに失敗する可能性があります。

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

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

これにより、これまでの「正しい方法」でオンラインでのあらゆる量の突っ込みよりもはるかに速くなることをお約束します(これは、たくさんの突っ込みを行った人からのものです)。

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

幸運を祈ります。そして何よりも覚えておいてください。ゲーム(およびその開発)は楽しいはずです!小さなものに巻き込まれすぎないでください!

于 2008-10-07T22:53:02.673 に答える
6

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

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

于 2008-10-07T18:32:39.623 に答える
3

Andre Lamotheが寄稿者の 1 人であるほとんどすべての本。

GameDevにもたくさんの記事があります。

于 2008-10-07T18:49:44.380 に答える
1

これ以上同意することはできません。エンタープライズ アプリケーションは、ゲーム プログラミングの準備にはなりません。

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

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

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

ただし、この比喩を過度に非難する前に、これが出発点として優れた場所であることを覚えておいてください。設計と実装のプロセスが複雑になる C++ ではなく、Python/Pygame を学習し、そのツールを使用してゲームの構築を開始することをお勧めします。Python でプロトタイプを作成すると、ゲームがより速く形になり、言語に依存しない問題が発生することがわかります。

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

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

最後に、アンドレ・ラモスも好きです。私は彼の古い 1993 年の本を持っていますが、それは 100 万ページの厚さです。これは、いくつかの一般的なゲームのアイデアに関する優れた参考資料ですが、当時は存在しなかった無料の利用可能なライブラリとフレームワークが利用可能であるため、その多くは不要になっています。

あなたのプロジェクトで頑張ってください。

于 2009-01-04T15:42:25.233 に答える
0

まだ言及されていないので、コミュニティにリリースされている既存のエンジンを調べることから始めてみませんか? あなたは2Dについて話しているので、私は戻ってAbuseのようなものをお勧めします。はい、それは古いものであり、ほとんどの興味深いビットは Lisp にあります -- しかし、ゲームはしばらくの間非常に人気がありました。

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

于 2008-10-08T03:11:32.493 に答える