ゲーム開発

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

2
部分的に観察可能なゲームマップ— A *は適切ですか?
私はゲーム開発についてほとんど知らないので、経路探索アルゴリズムに頭を悩ませようとしています。 この設定を検討してください:エージェントは2Dマップ上にあり、グローバルに認識されているオブジェクトへの最短パスを見つける必要がありますが、ローカルビジョンスコープ内の障害物に関する情報のみが必要です(つまり、直接の障害物のみが知られ、マップの一般的なレイアウトは不明です) )。 また、隣接する正方形への移動はすべて高価であり、経路探索アルゴリズムは移動の数を最小限に抑える必要があります。 計算効率も最も重要であり、精度よりも重要です。 A *はこのユースケースに適していますか?

2
大規模ゲームの入力管理手法
大規模なゲームで入力を管理するための標準的な手法はありますか。現在、私のプロジェクトでは、すべての入力処理は次のようにゲームループで行われます。 while(SDL_PollEvent(&event)){ switch(event.type){ case SDL_QUIT: exit = 1; break; case SDL_KEYDOWN: switch(event.key.keysym.sym){ case SDLK_c: //do stuff break; } break; case SDL_MOUSEBUTTONDOWN: switch(event.button.button){ case SDL_BUTTON_MIDDLE: //do stuff break; } } break; } (私はSDLを使用していますが、メインプラクティスではライブラリとフレームワークも適用されると考えています)。大規模なプロジェクトでは、これは最善の解決策ではないようです。ユーザーが何を押したかを知りたいオブジェクトがいくつかある場合があるため、それらのオブジェクトが入力を処理する方が理にかなっています。ただし、イベントを取得すると、イベントバッファからプッシュされるため、別のオブジェクトがその入力を受け取らないため、すべてが入力を処理することはできません。これに対抗するために最も一般的に使用される方法は何ですか?
16 c++  sdl  input  standards 

1
Androidの最大テクスチャサイズ:2048x2048の設定は?
ゲームで2048 x 2048のテクスチャアトラスを使用したいのですが、ゲームがダウンロードされないように「低すぎる」デバイスでユーザーに警告したいと思います。 このサイズのテクスチャアトラスでは、Androidでどのような要件を指定する必要がありますか? この画像(ソース:https ://stackoverflow.com/questions/10392027/recommended-limit-for-memory-management-in-cocos2d)は、IPHONEの要件を示しています。正しい要件? ご回答有難うございます

1
不均一な惑星表面での経路探索
私の質問は、不均一な惑星表面での経路探索への最良のアプローチは何でしょうか? 背景情報 私は、6つの球体投影面の変位マッピングから惑星を作成しました。平面は、球形に投影される前に最初に立方体を形成しました。 各「球体投影立方体面」をグリッドとして使用し、簡単なA *アルゴリズムを使用して最適なルートを見つけることができるかどうか疑問に思っています。また、パスが登らないように変位の高さを考慮したいです。山など(これはA *アルゴリズム内の単なるヒューリスティックだと思います)別の考慮事項は、Unity3dの物理エンジンを活用して惑星の動きを実現し、重力を惑星の中心に向けることです。私の提案するソリューションでは、重力物理学とは独立してエージェントの動きを制御する必要がありますか? 私の質問をより明確にするために、これは私の現在の惑星体です。

1
OpenGL:ディスプレイとglOrtho / glViewportのサイズ変更
私はいくつかのソースからこの質問を調査しましたが、「はい、それは正しい思考です」または「いいえ、ここでそれが行われた方法です」という確固たる答えをまだ見つけていません。 OpenGLレンダリングで解像度の独立性を確保しようとしています。私がそれについて行くべきだと思う方法は、glOrtho私が世界座標にしたいものを使って投影を作成することです。たとえば、glOrtho(-50.0, 50.0, -50.0, 50.0, 1.0, -1.0)。次に、ビューポートを画面解像度、つまり-に設定しglViewport(0, 0, 800, 600)ます。最後に、ウィンドウのサイズが変更されるたびに、glViewport更新された画面解像度でを呼び出します。これにより、フィギュアが拡大縮小されます。 これは、モデルが異なる解像度で同じ割合の画面スペースを取ることを保証する正しい方法ですか?解像度と同じ投影法を使用する必要がありますか?glOrtho他の人がウィンドウの解像度を使用するべきであると言っているのに対して、異なる必要があると答えた人もいました。 考え?

5
2倍近いオブジェクトは2倍大きく見えますか?
だから、私はあなたがZ軸に沿って動くことができる2Dゲームを作成することを考えていました、あなたがいる層を変えることによって。深度に応じて、2Dスプライトをスケーリングします。 かつて、誰かが私に多くの2Dスプライトを持つデモを見せてくれ、スクロールすることでカメラの深さを変えることができました。そのため、ズームインすると、オブジェクトはプレーヤーに近づき、大きく表示されます。それから、オブジェクトが1ユニット近くになったとき、オブジェクトはどのくらい大きくなるのかと思いました。どのように計算しますか?だから男は私に言った:私が使用している1つの基本的なルールがあります:「オブジェクトは2倍近く、2倍大きく表示されます。」 今、私はそれを自分でテストすることで、ルールが現実の世界に適用されないことを知っています;)しかし、遠近法などのために現実の世界の計算で使用される定数はありますか?または式? これはそのような質問をするのに最適な場所ではないかもしれませんが、これはゲーム関連の質問に使用する唯一のサイトであり、私のコンテキストはゲームなので、試してみると思いました。また、3Dゲームに関連している可能性があるため、3Dの視点とマトリックスなどについてすべてを知っている人がここにいることを期待しています。 tl; dr: 「オブジェクトは2倍近く、2倍大きく表示されます」これは現実の世界では正しくありません。しかし、どの定数または式が正しいですか?

3
Unityで昼夜のサイクル用に2つのライトマップをブレンドするにはどうすればよいですか?
他のことを言う前に、デュアルライトマップを使用しています。つまり、近距離と遠距離の両方をブレンドする必要があります。 だから私はしばらくこれに取り組んでいますが、レンダラーと照明用に昼夜サイクル全体を設定していますが、すべてがうまく機能しており、プロセス集約的ではありません。 私が抱えている唯一の問題は、2つのライトマップをどのようにブレンドできるかを考え出すことです。 私はこれについて何時間も研究し、すべての種類のシェーダー、ピクセルごとのブレンド、およびその他すべてを実際に利用することはできませんでした。C#でのピクセルごとのブレンドは、好みに合わせて少し処理が集中することが判明しましたが、クリーンアップとよりスムーズな実行に取り組んでいます。シェーダーは有望に見えましたが、2つのライトマップを適切にブレンドできるシェーダーを見つけることができませんでした。 誰が私がこれを達成できるかについてのリードを持っていますか?昼間のライトマップと夜間のライトマップの間のスムーズな移行が必要です。おそらく、2つのテクスチャをオーバーレイし、アルファチャネルを使用できますか?またはそのような何か?

5
コードオブジェクトの共通名の辞書[終了]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 私は、ゲームに固有の用語の一般的な辞書を探しています(デザインパターンが物事がどのように相互作用するかについて共通の言語を持っているように)。 たとえば、複雑さの高いピンポンのゲームを作成している場合、それに応じて名前を付けたいと思います。 私は、ユーザーがウィジェットと呼ばれる対話可能なビジュアルオブジェクト、doodadと呼ばれる非インタラクティブなオブジェクトを見ました(とにかくスタークラフトマップエディターで遊んだとき)。フレームレートクロックに適切な名前はありますか?ゲームの時計に適切な名前はありますか(時計は世界のオブジェクトの動きに関するもので、視覚的な描画ではありません)? 辞書が欲しいので、同じ言語を話せるようになります。私は、doodads、whosits、whatsists、flim-flamsと名付けられたものを作成することを懸念しています...そして、私はそれをしたくありません。

2
コンポーネントベースのエンティティシステムでのゲームの状態と入力の処理
私の質問は: ゲーム状態オブジェクトのスタックを保持することなく、エンティティシステムでゲーム状態を処理するにはどうすればよいですか? したがって、エンティティシステムの設計とは、たとえばエンティティが入力イベントに登録する必要がある場合、入力コンポーネントが入力システムを呼び出し、「このエンティティをこの入力に登録する」と言うことです。これはすべて問題ありませんが、これにゲーム状態の概念(たとえば、一時停止画面)を追加すると、エンティティが現在の状態にあり、入力を受け取る必要がある場合に解決することが問題になります。 「これらのゲーム状態にあるときにこのエンティティをこの入力に登録する」と言うように入力コンポーネント/システムを拡張できますが、これにはすべてのエンティティがどの状態で使用されるかを知る必要があり、それは明らかではないかもしれません。また、登録された入力(およびコールバックを使用する他のシステム)ごとにゲームの状態のリストを保持することは、あまり効率的ではありません。 私が持っていた別のアイデアは、ゲーム状態を表すエンティティがあり、無効になっていることをマークし、入力イベントを生成するときに、そのエンティティが無効なゲーム状態エンティティの子孫ではないことを確認することです。コールバックごとに親を解決するのは費用がかかるようです。 別のアイデアは、すべてのシステムに現在の状態に対してキー設定されたデータを保存させることです。そうすることで、入力を生成するときに、ターゲットエンティティは候補にさえなりません。しかし、これは異なる状態のエンティティ間の通信を許可する機能を本当に損ないます(一時停止画面ではそれほど問題ではありませんが、Oblivion / Skyrimでのロック選択を考えてください)。 私が持っていた唯一の他のアイデアは、すべてのコンポーネントが状態変更イベントを処理し、関連するシステムと通信して登録済みのものを無効にし、この状態に戻るときに再び有効にすることです。 2番目(オブジェクトを無効としてマークする)と4番目(各コンポーネントが状態の変更を処理する)は、私のアイデアの中で最高のように見えますが、特に素晴らしいと思うものはありません。 他の誰かがこれを行う方法について他のアイデアを持っていますか? 編集この質問では特に入力について説明しますが、衝突、タイマーイベントなど、エンティティにメッセージ/イベントを送信できるシステムを意味します。

3
音響効果システム設計
UnityでRPG / RTSゲームを作成しています。多くのキャラクターが存在し、潜在的に多くの異なる環境があります。私はコーディングの部分にかなり自信を持っています(そのため、この質問は実際にはゲームエンジンに関係していません)。音楽も自分で作成します(ソロ作品、バンドでのパッドベースのライブドラム、友人のためのミキシングなど)。したがって、必要なすべてのツールを十分に把握していると思います。しかし、私はゲームのサウンドデザインを作成したことがなく、その方法を本当に理解していません。 サウンドエフェクトをどのように整理して使用しますか?たとえば、5つの異なるキャラクタータイプと3つの異なるグラウンド(草、泥、木など)があるとします。5* 3の足音を作成しますか?サンプルにバラエティに富んだランダムピッチを追加するのは良い考えですか?環境音についてはどうですか—バックグラウンドで起動するメインループを作成しますか、それともゲームレベル全体に実際の音(水、風、木の樹皮の動き、鳥)を配置しますか? 全体として、私はこのシステムがどのように設計されるべきかをよく理解していないので、この愚かなランダムな質問が多すぎます。誰かが私に何らかのガイドや問題に関する記事へのリンクをくれたらとても感謝します。

5
生成された3Dツリーメッシュ
これらの行についてはまだ質問が見つかりませんでした。間違っている場合は修正してください。 木(および一般的な動物)は、ゲームでは一般的です。それらの性質のため、それらは手続き型生成の良い候補です。 もちろん、余裕があるならSpeedTreeもあります。私の知る限り、実行時にツリーメッシュを生成する可能性はありません。次にありますSnappyTree、に基づいて、オンラインのWebGLベースのツリージェネレータproctree.jsのjavascriptの一部〜500行です。 上記のいずれか(または私がつまずいたことのない他のツリージェネレーター)を使用して、事前に数十のツリーメッシュを作成するか、3Dモデラーでゼロからモデル化し、さらにランダムにミラーリング/スケーリングして、さらにいくつかのバリアントを作成できます.. しかし、無料のリンク可能なツリーメッシュジェネレータが欲しいです。 可能な解決策: proctree.jsをc ++に移植し、オープンソースライセンスを処理します(gplであるとは思えないため、実行可能です。著者は、ライセンスをさらに無料にするために協力することもできます)。 Lシステムに基づいて独自のロールします。 気にせず、オフラインで生成されたツリーを使用してください。 私がまだ見つけていない他の方法を使用してください。 更新2015:proctree.jsをC ++ https://github.com/jarikomppa/proctreeに移植しました

5
タッチデバイスの2Dプラットフォーマーに使用するのに適した入力方法は何ですか?
スーパーミートボーイのような2Dプラットフォーマーゲームを作成しています。このゲームでは、リードキャラクターの動きの精度が重要です。libgdxを使用しています。PCのキーボードコントロールは正確に機能しますが、加速度計の処理に関しては、キャラクターを正確に処理するのは非常に困難です。これは、避難するための混雑した安全な経路がある段階で悪化します。入力を処理するために画面上のアナログボールを実装することを考えましたが、インターネット上でその結果の多くの悪い結果を読みました。 タッチデバイスのプラットフォーマーゲームに使用する直感的で正確な入力方法は何ですか?
16 2d  input  touch  multitouch 

1
レイヤードアルファクワッドを使用したグラウンドフォグの適合性
レイヤードアプローチでは、地面に平行に配置された一連の大規模なアルファテクスチャクワッドを使用して、介在するすべての地形ジオメトリを交差させ、霧の中にいるときに地面の霧を非常に効果的に上から見下ろし、やや効果を下げます地平線に向かっています(下の画像を参照)。 代わりに、主にシェーダーベースのアプローチは、代わりに、グラウンドフォグ基質へのビュー距離の関数として密度を計算し、それに基づいてフラグメント値を出力します。 各アプローチを自分でパフォーマンステストする必要はありませんが、最初に、レイヤードアルファテクスチャアプローチがどのようなパフォーマンスに影響するかについて、他の人の経験(推測ではありません!)を聞きたいです。私は特に、頻繁に引用されるオーバードローの影響のためにお願いします(平均的なデスクトップシステムがどの程度充填率を制限しているかはわかりません)。このアプローチを使用するゲーム、特に古いゲームのリストは非常に便利です。これがDX9 / OpenGL2以前のハードウェアで実行可能であれば、私にとってはうまくいく可能性があります。 1つの大きな問題は、この種の効果に関するものです。 (画像クレジットはlume.comのLumeに送られます) 垂直霧のグラデーションが連続的/滑らかであることに注意してください。OTOHは、テクスチャ付きのクワッドレイヤーを使用して、レイヤーをウォークスルーするときにレイヤーが非常に明白になるとのみ想定できます。これは、フォグプレーンがフレームごとにプレーヤーに対面するように配置されている場所とは対照的です。
16 opengl  3d  textures  shaders 


4
「20の質問」アルゴリズムを実装するにはどうすればよいですか?
子供の頃から、私は20Q電子ゲームがどのように機能するのか疑問に思っていました。オブジェクト、物、または動物(例えば、ジャガイモやロバ)を思い浮かべます。次に、デバイスは次のような一連の質問をします。 パンの塊よりも大きいのですか? 屋外で見つかりますか? レクリエーションに使用されていますか? 各質問に対して、yes、no、多分、またはunknownと答えることができます。私は、それが巨大なネストされた条件(if-statements)で機能することを常に想像していました。ただし、プログラマにとっては複雑であるため、これは考えにくい説明だと思います。 そのようなシステムをどのように実装しますか?
16 ai 

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