ゲーム開発

プロおよび独立系ゲーム開発者向けのQ&A

4
可変解像度でHUDをスケーリングする
HUDに関しては、人々が何を好むか、そしてそれらをスケーリングするかどうかはわかりません。HUDのサイジングに関して、ベストプラクティスは何だと思いますか?私は本当に2つのオプションがあると思います:拡大するか、同じ領域(ピクセル単位)を使用してより高い解像度で表示します。 それぞれに見られる問題はスケーリングに関するもので、隅に大きなぼやけた混乱があるかもしれませんが、そうしないと、遠くから見るのは難しいかもしれません。何かアドバイスは?
11 resolution 

5
アセットマニフェストファイルを使用する理由
時には、グラフィックスやサウンドファイルなどを使用するのではなく、人々がそれを推奨するのを見るでしょう。このような... // Game code Image myImage = new Image("path/to/image.png"); ... 代わりにマニフェストファイルを間接参照のレベルとして使用する必要があります。 // Manifest file MY_IMAGE: path/to/image.png // Game code Manifest myManifest = new Manifest("path/to/manifest"); Image myImage = myManifest.getImage("MY_IMAGE"); このようなアプローチを取る理由は何ですか?コンパイルされた言語を使用していない場合でも、これを行う理由はありますか?

2
Box2Dポリゴンの「Set()」関数を使用していますか?
Box2D物理エンジンを使用しています。そして、b2PolygonShapeと呼ばれる、box2Dのタイプの形状があります。 このクラスでは、ポリゴンを作成できます。ポイントの配列と頂点数を取得するSet()関数もあります。 Box2Dには次のような例があります。 // This defines a triangle in CCW order. b2Vec2 vertices[3]; vertices[0].Set(0.0f, 0.0f); vertices[1].Set(1.0f, 0.0f); vertices[2].Set(0.0f, 1.0f); int32 count = 3; b2PolygonShape polygon; polygon.Set(vertices, count); これは機能します。それでも、この機能を練習して混乱させようとしたとき、私はこれを行いました: b2Vec2 vertices[4]; vertices[0].Set(0, 0); vertices[1].Set(0,10); vertices[2].Set(10,10); vertices[3].Set(10,0); int32 count = 4; b2PolygonShape polygon; polygon.Set(vertices, count); これをコンパイルして実行すると、Set()関数の後でクラッシュしました。これは正方形を作成しませんか? また、コンソールでこれを得ました: Assertion failed: s > 0.0f …
11 2d  physics  box2d 

3
Flashゲームのレンダリングパフォーマンス
私はネイティブフラッシュレンダリングBitmapDataとカスタムフレームバッファーの構築についてSOを読んでいて、答えのいくつかは少し矛盾していたので、私は疑問に思いました: 一般に、カスタムビットマップバッファールートを使用するのがベストプラクティスですか、それともレンダリングをフラッシュエンジンに任せるのがベストですか? MovieClipスプライトではなくベクターアニメーション(s)を使用している場合、それによって上記の答えが変わりますか? もしそうなら、スプライトベースのアニメーションを使用することがベストプラクティスですか? (違いが出る場合は、Flash 10を対象としています)

5
コンソールのファーストパーソンシューティングゲームで狙いを定めるのは何がいいですか
アナログスティックをキャラクターの回転速度にマッピングするだけでは、コンソールの一人称シューティングゲームを気持ちよくするのに十分ではないことは、ほぼ一般的に認められていると思います。 では、コンソールの最新のFPSを適切に機能させるための入力パラダイムは何でしょうか。

4
2つの別個のグラフィックライブラリで同じゲームロジック
ゲームのロジックを再コード化する必要なしに、ゲームを2Dと3Dの両方のグラフィックスで(別々に)使用できるようにする抽象化/プログラム設計のコード哲学/構造は何ですか? 同じコードを取り、最小限の変更(たとえば、2Dアセットのファイル名を3Dアセットのファイル名に交換するなど)を行い、ジェネリック/テンプレートごとに基本クラスのいくつかの特殊化をプラグインしている可能性があります。 意味のある現実的な状況に置くために、いくつかの非常に優れたゲーマーリグを備えたプレーヤー用の1つの一流の、パフォーマンスを要求する3Dクライアントと、古いもののためのより控えめな2DクライアントがあるLANマルチプレーヤーゲームを想像してください。誰かが屋根裏で見つけたほこりっぽい箱。しかし、それでも同じゲームです。同じイベントが登録され(誰かがコインを拾った)、同じネットワークプロトコルが使用され、世界は比例します。 MVCコンテキストに配置するには:コントローラーはまったく同じ(「上」キーを押すとプレーヤーの加速が3.5単位/秒に設定されます)、ビューはまったく異なり(2Dと3D)、モデルは同じですグラフィックに直接関連するものを除いて(環境の衝突チェックは5秒ごとに実行され、同じアルゴリズムを使用します。これは、2DバージョンのすべてのゲームオブジェクトにZ座標があることを意味しますが、無視するか、別の方法でユーザーに表示します(たとえば、プレイヤーが空中にいるときにさらに左に表示される影によって)。 これをこのような魅力的なトピックにしているのは、開発者が自分のデータがどのように構造化され、制御がどのように流れるかについて非常に明確な考えを持つことを強制することです。これは、SDL、D3DX、OpenGLなどのグラフィックライブラリ以外の使用を意味するものではないことに注意してください。ゲームエンジンはありません。 これはほとんど理論的な問題なので、プログラミング言語は省略しますが、例を挙げたい場合は、好きな言語を使用できます。C++を使いたいなら、Brainfuckでもいいと思います。課題まで(具体的な回答はもちろん、抽象的な回答も歓迎します!)

3
ポイントアンドクリックスタイルのアドベンチャーゲームのコマンドシステムを実装するにはどうすればよいですか?
私はポイントアンドクリックのアドベンチャーゲームを作成しています。現在、コマンドシステムを実装する最良の方法を見つけようとしています。 モンキーアイランドまたはマニアックマンションスタイルのインターフェースで、動詞のパレットと、シーン内およびインベントリ内のオブジェクトを想定します。これらをクリックすると、実行する文を作成します。 たとえば、look atツリーをクリックしてから「ツリーを見る」を取得するか、リンゴをクリックしてgiveから「女の子」をクリックして「リンゴを女の子に贈る」を取得できます。 文には次の3つの形式があります。 verb、たとえば「保存」 verb noun、たとえば「りんごを拾う」、「タコを見る」 verb noun noun、例えば「狂犬病の犬に漬物を与える」、「漬物瓶でバールを使用する」 さまざまな状況で、実行するアクションをさまざまなオブジェクトで定義する必要があります。 たとえば、give動詞の場合、デフォルトのアクションが定義されていて、キャラクターに「私はそれにつかまりたい」などと言わせる場合や、狂犬病の犬が、与えようとするものを食べるアクションを定義する場合があります。 。 インターフェースがManiac Mansionのように機能する場合は、文を作成し、それを実行するように指示します(Maniac Mansionでは、文をクリックするか、最後にクリックしたものをもう一度クリックします)。 モンキーアイランドのように機能する場合は、文が完了するとすぐに文が実行されるため、動詞useが1つの名詞を使用することもあれば、2つの場合があることもあります。 それで、これを処理するシステムをどのように実装しますか?

3
複雑なAIを管理しやすくするにはどうすればよいですか?[閉まっている]
ここで何が質問されているのかを理解することは困難です。この質問は、あいまいで、あいまいで、不完全で、過度に広い、または修辞的であり、現在の形では合理的に回答することができません。再開できるようにこの質問を明確にするヘルプについては、ヘルプセンターに アクセスしてください。 6年前に閉鎖されました。 これまでは、有限状態機械(FSM)や階層型FSMなどの単純なシステムを使用してAIの動作を制御してきました。このパターンは、非常に迅速に、または複雑なシステムで崩壊します。 行動ツリーについて聞いたことがあります。それらは次の明白なステップのように見えますが、動作する実装を見たことがないか、実際に実際に試したことはありません。 複雑なAIの動作を管理しやすくする他のパターンは何ですか?

6
設計ドキュメントの内容[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 6年前に閉鎖されました。 ゲームデザインドキュメントに最低限必要な内容は何ですか?

5
XNAフレームワークはサーバー側プログラミングに適していますか?
テキストベースのMUDを作成しようとしているので、XNAフレームワークの要素の多くは、必要なものに適しているように見えます。特に一般的なゲームループ、ネットワーキングなどのようなものです。XNAはUIとオーディオを備えたインタラクティブな環境に密接に結合されているようです。そのため、適切な方法かどうかはわかりません。 これらの種類の側面を自分で再作成する方が簡単ですか、XNAフレームワークを必要なものに曲げようとするのですか、それともこのタイプの作業に適したフレームワークはありますか?
11 c#  xna 

3
ビデオゲームで最初に何を作成する必要がありますか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 3年前休業。 ビデオゲームの開発を始めるとき、最初に環境(建物、木、山など)を作成することに重点を置くべきですか、それともAI (プレイアブルキャラクター、NPCなど)に重点を置くべきですか?



5
レッジクライムのアニメーションと動き(2Dプラットフォーマー)
物理学を駆使した2Dプラットフォーマーのために、レッジクライムメカニックの実装を決定するのに苦労しています。それを過度に複雑にすることなくこれに取り組む最善の方法は何ですか? これまでのところ、私は理解しています(ここでは趣味家はプロではありません)。 根の位置が手の位置のすぐ上になるまで、y軸の剛体に制御された力を適用し、次にキャラクターがプラットフォームに立つようにx軸に十分な力を適用します。同時に、どういうわけかこれを上昇アニメーションと同期させます。 備考:動きはここでは簡単で、プリズムのスライドジョイントで制御することもできますが、アニメーション(脊椎)を動きと同期させる方法がわかりません。 キャラクターのルート位置を動かすルートモーションアニメーション。完了時にリジッドボディをテレポートし、オブジェクトが空から落下した場合でも、box2dが衝突に適切に対応できることを望みます。 備考:実際にアニメートする方が簡単に聞こえますが、脊椎のランタイム、box2d以降、プラットフォームを移動するプラットフォームやさまざまな高さのプラットフォームで問題が発生するかどうかはわかりません。 プログラムで手にIKコンストレイントを適用して固定し、ボーンを手動で回転させるか、必要な力をリジッドボディに同時に適用しながら、小さなプリセット(いくつかのキー/フレーム)アニメーションを適用します。 備考:これはプレイヤーに最大のコントロールを与えるようですが、自分のレベルで実装するのは複雑に聞こえるかもしれません。 ご意見をお寄せいただきありがとうございます。 参考:これは、box2dを備えたECS(libgdx + ashley)ベースのエンジンです。棚グラブはすでに別のシステムとして実装されているため、ここではキャラクターがすでにあらゆる高さの棚から吊り下げることができると想定できます。
11 2d  libgdx  box2d  spine 

6
スプライトをサブピクセル単位でどのように移動しますか?
ピクセルはオンまたはオフです。スプライトを移動できる最小量は1ピクセルです。では、スプライトの動きをフレームあたり1ピクセルよりも遅くするにはどうすればよいでしょうか。 私が行った方法は、変数に速度を追加して、それが1(または-1)に達したかどうかをテストすることでした。もしそうなら、私はスプライトを動かして、次のように変数を0にリセットします: update(dt): temp_dx += speed * dt temp_dy += speed * dt if (temp_dx > 1) move sprite reset temp_dx to 0 if (tempy_dy > 1) move sprite reset temp_dy to 0 ばかげている感じがして、スプライトの動きがぎくしゃくしているので、この方法は嫌いでした。それでは、サブピクセルの動きをどのように実装しますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.