ゲーム開発

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

5
座標系をZアップからYアップに変更する
Blenderの座標系は、ZがYではなく上向きであるという点で、私が慣れ親しんでいるものとは異なります。上向き? 明確化: オブジェクトの位置は行列として定義されるため、行列内の平行移動/回転/スケール情報を切り替えるだけでは簡単な作業ではありません。(少なくともそれは私にとって簡単な仕事のようには見えません)

1
環境メッシュのテクスチャとベイクされたライティングの保存に違いはありますか?
環境をテクスチャリングするとき、1つまたは複数のテクスチャが使用され、環境ジオメトリのUVがこれらのテクスチャにオーバーラップする可能性が高いため、たとえばタイリングブリックテクスチャは、UVアンラップではなく、環境の多くの部分で使用できます。全体と、テクスチャのいくつかの領域が同一であること。私の仮定が間違っている場合は、知らせてください! さて、ライティングのベイキングについて考えると、これは明らかに同じ方法で行うことはできません-ライティングはすべての面に固有であるため、環境はオーバーラップせずにUVラップを解除する必要があり、ライティングは1つまたは複数の固有のエリアにベイクする必要がありますテクスチャー、各表面に独自のテクスチャー空間を与えて、照明を保存します。 私の質問は: これは間違っていますか?もしそうなら、どうですか? ベーキングライティングは多くのテクスチャスペースを使用しませんか? ジオメトリには2つのUVセットが必要ですか?1つはカラー/通常のテクスチャに使用され、もう1つはライティングテクスチャに使用されますか? 他に何か追加したいことはありますか?:)

1
状態機械:状態オブジェクトと順次チェック:賛否両論は何ですか?
AIの有限状態機械やゲームの他のゲーム動作については、オブジェクト指向のMinerを使用したこの簡単なチュートリアルを除いて、あまり知りません。http://www.ai-junkie.com/architecture/state_driven/tut_state1.html このチュートリアルが状態パターンを記述するかどうかは本当にわかりませんが、どう思いますか? 私は、ステアリング、物理、経路探索、衝突など、他のより算術志向のものについてではなく、ゲームロジック、状態駆動型AI、および多くの同時状態やifsやswitches を含むものについて話しています。 次のような状態パターンまたはプレーンな状態構造の順次チェックを使用することの賛否両論は何ですか。 struct States { bool is_walking, is_running, holds_a_weapon, is_crouch; int weapon_id, int id_team; }; void HandleStates (States state) { //etc }
8 c++  ai  c  state 

4
弾性2次元配列で表される再帰的なダンジョンマップ
私は1つの部屋から始めて、それに隣接する新しい部屋をランダムに再帰的に接続することによって、単純なダンジョンマップを再帰的に生成する方法を思いつきました。 マップは、各セルに0〜15の値が含まれる2次元配列として表されます。0は部屋がないことを表し、各方向は北= 1、東= 2、南= 4、西= 8で表されます。 部屋以外の1つの部屋([[0]])から始めて、必要に応じて2D配列を拡張して、生成されたマップに合わせる必要がありました。再帰のようなこのツリーで直面する問題は、マップの左と上に行と列を追加するために配列のシフトを解除する必要がある場合、関数の現在の位置、行と列を調整する必要があることです。 。これにより、別のブランチは他のブランチからの配列インデックスの調整を認識せず、調整された位置が行と列の引数として渡されるため、子関数のみがそれを認識します。 これを行う方法はありますか?再帰の外で行と列のオフセット値を保存しようとしましたが、何らかの理由で機能しませんでした。

5
OpenGLのマトリックススタックと手動乗算
OpenGLの変換スタックを使用するか、手動で変換を適用する方が効率的です。 グラフィックパイプラインの状態遷移の数を最小限に抑える必要があるとよく耳にします。翻訳マトリックスのプッシュとポップは大きな変化のようです。ただし、グラフィックスカードは、並列実行ハードウェアを使用して頂点を一括乗算することで、パイプラインの問題を補う以上のことができるのではないかと思います。 私の特定のケース。スプライトシートにフォントをレンダリングしました。各文字または文字列の座標が計算され、頂点バッファーに追加されます。次に、そのストリングを移動する必要があります。頂点バッファーを反復処理して、各頂点を手動で調整するか、一時的に新しい変換行列をプッシュする方が良いでしょうか?

2
興味深いパズルレベルのランダム生成?
私は倉庫番のようなゲームを作っています。つまり、プッシュできるクレートがいくつかあるグリッドがあり、レベルに勝つためにクロスでクレートを取得する必要があります(ただし、要素をいくつか追加します)。このスタイルのゲームの興味深い(たとえば、解決するのは簡単ではない)レベルを生成する方法について、一般的なアルゴリズムや参考資料はありますか?倉庫番にはランダムレベルジェネレーターが存在することは承知していますが、アルゴリズムの説明が見つかりません。 難易度で並べ替えて、マシンがたくさんのレベルを生成できるゲームを作ることに興味があります。ゲームのルールを制限して、レベルの生成を簡単にすることもできます(たとえば、グリッドサイズを約7x7に制限します)。私が見てきたように、ここではレベル生成を行ういくつかの一般的な方法があると思います。たとえば、トラフィックジャムのようなゲーム(無料のいくつかのブロックの周りでブロックを移動する必要がある)で、それぞれに固有のソリューションがある1000のレベルがあります。 私が持っていた1つのアイデアは、最終的な状態(つまり、すべてのクレートが十字の上にある状態)でランダムマップを生成し、コンピューターがこれらのクレートを(プッシュする代わりに)引っ張ってレベルを作成することでした。ここでの優れた特性は、レベルが解決可能であることを知っていることです。ただし、レベルが興味深いものであることを確認するには、いくつかのヒューリスティックが必要です。


3
戦略ゲームAIの支援
私は戦略ゲームAI(ファイナルファンタジータクティクスを考える)を開発していますが、AIの設計を思い付くのに苦労しています。私の主な問題は、どちらが最適かを判断することです。 まず、AIに実行してほしいアクションの優先度を説明します。 最寄りのプレイヤーユニットを殺す 主な指令を実行する(すべてのプレイヤーユニットを殺す、ターゲットユニットを殺す、xターンの間生き残る) 味方ユニット/キャストバッファー これでAIは次のことができるようになります。 移動-> {攻撃/能力/アイテム}(攻撃または能力またはアイテムのいずれか) {攻撃/能力/アイテム}->移動 近づく(ターゲットが範囲内にない場合) {攻撃/能力/アイテム}(移動できない場合) ノート 能力にはさまざまな範囲/効果/コスト/効果があります。各AIユニットには、5〜10の能力を選択できます。AIは、その指示がxターンの間存続することでない限り、安全よりも殺害を優先します。それは能力コストをあまり気にしません。プレーヤーは後で使用するために大きな呪文を保存したいと思うかもしれませんが、AIはできるだけ早くそれを使用します。 移動は(16進)グリッド上にあります プレイヤーユニット数:3-6 aiユニットの数:3-7以上。おそらく最大10。 AIとプレイヤーは、同時にすべてではなく、1つのユニットを制御する順番を取ります。 プラットフォームはAndroidです(しばらくしてもプログラムが応答しない場合は、強制終了または待機を指示するポップアップが表示されます。 質問が来ます: 使用するのに最適な能力は、明らかに、最も多くのダメージで最も多くのターゲットを攻撃する能力です。しかし、それぞれの能力は範囲が異なるため、移動できる可能性のある場所をそれぞれ探索しなければ、それらが範囲内にあるかどうかはわかりません。 1つの解決策は、移動する可能性のある各場所を調べ、その場所での最適な攻撃を決定することです。これにより、各場所の最適な移動のリストが表示されます。次に、リストから最適なものを選択して実行します。ただし、これには多くのCPU時間を要します。より良い解決策はありますか? 私の現在の考えは、最も近い、最大の人々のグループにできるだけ近づき、そこから最適な攻撃/能力を決定することです。これはCPUの作業量が大幅に減り、広範囲の攻撃が可能になると思います。最適ではありませんが、AIは「スマート」に見えます。 その他のメモ/質問: 私はそれを過度に考えすぎ/複雑にしていますか?より良いソリューション?あらゆる提案を受け入れる 私は見てとったスペルキャストの質問に、それは考慮に動きをとらない-ので、おそらくことを使用し、可能な各移動位置のためのアルゴ?一番上の答えは、それが影響範囲とグループの戦いに最適ではなかったと述べたので、おそらくさらに調整が必要ですか? してくださいあなたはグラフ/ツリーに言及している場合、私に知らせて、基本的にそれを使用する方法。たとえば、ノードは能力を意味し、レベルはダメージに対応し、最も深いノードを検索します。
8 android  ai 

4
octreesまたはkd-treesのライブラリは何ですか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 6年前休業。 オブジェクトのインデックスを作成するための堅牢なパフォーマンスライブラリはありますか? オブジェクトは、点で表されるのではなく、境界自体を持ちます。したがって、インデックスが固定サイズのパーティションに物を分割する場合、オブジェクトは複数のコンパートメントに存在する可能性があります。 それは、錐台の選別と、光線が当たったオブジェクトの訪問、および近傍検索が必要になります。 多くの場合、単純なCではなく代数としてコンポーネントパーツの数学を示す記事をたくさん見つけることができますが、それらをまとめたものは何もありません(おそらくOgreを除いて、PyOrgeはoctreeを公開していません)。確かに、趣味のゲームメーカーは、独自の部分インデックスを作成する必要はありませんか? (私は自分の球球、球線、光線aabb、円錐aabb、円錐fustrum、abb fustrumおよびoctreeの実装を書いているところに座っています。確かに、より良い方法があります。つまり、誰かがすでにこれを行って、素敵なパッケージ?!?!) (PythonまたはC / C ++ w /バインディングを推奨)

6
キャラクター統計の興味深い実装の例?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 5年前休業。 私はこのBBGを実行しました(http://ninjawars.net)。現在、キャラクターの統計は単純化されています。私は現在の1/2にいくつかの統計を追加したいと考えています(基本的に、強度と最大ヒットポイント)。私は思いつきました:(強さ(変更なし)、速度、スタミナ、およびいくらか興味深いワイルドカード統計である他のいくつか)。ただし、これらの統計のいくつかは非常に線形であるため、これらの統計のいくつかの効果がどれほど退屈であるかに満足していません。より良い統計、より良い統計の効果、しかし統計はお互いに相互作用しません、Rock-Paper-Scissors相互作用はありません。 それで、私が本当に欲しいのは、興味深いキャラクターの統計や統計の効果の例を見ることです。 オフハンドで考えられる例: クトゥルの狂気のステータスの呼び出し(正気を失い始めると、物事は本当に奇妙/無秩序になります) ホワイトウルフの統計、ある程度まで(統計自体にはいくつかの基本的な効果があり、すべてのスキルの有効性も統計に基づいています) 人々が統計を使ってチェックアウトする他のいくつかの方法は何ですか?
8 character 

1
Game Centerで悪化する可能性のあるスコア(Elo評価など)をどのように扱いますか?
現在、Game Centerリーダーボードのスコアは一方向にしか変更できません(例:増加)。このため、Eloの評価などを処理することは不可能です(私は思います)。リーダーボードでこれをどのように回避していますか? 私はすでにFWIWでバグレポート/機能リクエストを提出しました。 サードパーティのリーダーボードサービスを使用していますか?あなた自身を転がしますか?

10
ゲームをできるだけ多くのプラットフォームで利用できるようにすることを目的とする場合、どのツールを検討する必要がありますか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 6年前休業。 グリッドベースの2Dパズルゲームの開発を計画しており、まだ計画段階の非常に早い段階ですが、最初からしっかりと決定したいと考えています。 私たちの戦略は、PC(Windows、Macおよび/またはLinux)、携帯電話(iPhoneおよび/またはAndroidベースの電話)、ゲームコンソール(XBLAおよび/またはPSN)など、できるだけ多くのプラットフォームでゲームを利用できるようにすることです。 PCに重点が置かれますが、これは最も柔軟なプラットフォームであるため、問題にはなりません。 それでは、どのプログラミング言語、ゲームエンジン、フレームワーク、そしてすべてのツールが私たちの目標に最も適しているでしょうか? PS:一連のツールがすべてをカバーするわけではなく、一部のプラットフォームでは何らかの「翻訳」作業がまだあると思いますが、最も広範囲に及ぶものを知りたいと思います。

5
すべてのゲームデータを巨大なExcelテーブルに入力しますか?より良い方法はありますか?
MMORPGで、すべてのアイテムの巨大なテーブル、すべてのスキルの別のテーブル、さらにはすべてのMobの別のテーブルで作業することを好むゲームデザイナーの数を本当に知りたいです。また、これらのテーブルは数千のレコードで数百MBに拡大する可能性がありますが、ほとんどのレコードはテーブルのいくつかのフィールドのみを使用します。 一部のゲームデザイナーがこの方法で作業していることを知っています。より良い方法はありますか?

1
時間ベースの動き対フレームレートベースの動き?
私はゲームプログラミングとSDLが初めてで、LazyfooのSDLチュートリアルに従っています。私の質問は基本的にされて、時間ベースのモーションやフレームレートベースの動きに関連して、より良いか、適切な状況に応じて、?。これらの各メソッドが使用される例を教えていただけますか? 私が持っているもう1つの質問は、lazyfooの2つのモーションチュートリアル(FPSベースと時間ベース)で、時間ベースの方法がはるかにスムーズなアニメーションを示していたのに対し、フレームレートベースの方法は少し問題があったということです。 2つのプログラムを比較したときのドットとその現在の位置。 初心者の場合、どの方法に固執する必要がありますか?(必要なのはスムーズなアニメーションだけです)。

4
3Dシェーディング/ライティングのサポートが必要
3Dゲームでシェーディングをどのように処理しますか?私は立方体で作られた木の片側を遮光する指向性光源を持っています。残りの3辺はすべてアンビエントシェーディングのみを取得します。したがって、アンビエントシェーディングされた2つの側面を見ると、3D効果は失われます。何か不足していますか?光源から最も遠い側をさらに暗くする必要がありますか?私はフォールアウト3を見てみましたが、これは彼らが何をしているように見えますが、Minecraftは2つの反対側のライトと残りの2つの反対側のダークでグラスマウンドをシェーディングし、2つのライトに2つの指向性ライトがあるという効果を与えます。シェーディングされたサイドと暗いシェーディングされたサイドのアンビエントライト。

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