9 OpenGL最適化のヒント[終了] 閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 6年前に閉鎖されました。 OpenGLをより効率的にするためのヒントやコツを教えてください。 26 opengl optimization
5 AssetManagerの設計方法は? ゲームのグラフィックス、サウンドなどへの参照を保持するAssestManagerを設計するための最良のアプローチは何ですか? これらのアセットをキー/値のマップペアに保存する必要がありますか?つまり、「バックグラウンド」アセットを要求すると、マップは関連するビットマップを返しますか?もっと良い方法はありますか? 具体的には、Android / Javaゲームを書いていますが、答えは一般的なものです。 26 architecture assets android
2 擬似ランダムではなく、「楽しく」ランダムに生成するにはどうすればよいですか? さまざまな種類のパズルを順番に提示するゲームを作っています。擬似乱数で各パズルを選択します。各パズルには、多くのバリエーションがあります。別の擬似乱数でバリエーションを選択します。等々。 問題は、これがほぼ真のランダム性を生み出す一方で、これはプレイヤーが本当に望んでいることではないということです。プレイヤーは通常、自分が何であるかを認識し、ランダムであると特定しますが、それはパズルを繰り返す傾向がない場合のみです。だから、本当にランダムではありません。ただ予測不可能です。 少し考えてみると、それを行うためのハックな方法が想像できます。たとえば、新しい選択肢を選択するときに、可能性のあるセットから最新のN個の選択肢を一時的に削除します。または、すべての選択肢に等しい確率を割り当て、選択時に選択肢の確率をゼロに減らしてから、選択ごとにすべての確率をゆっくりと増やします。 これを行う確立された方法があると思いますが、用語がわからないので見つけることができません。知ってる?または、誰かがこれを楽しい方法で解決しましたか? 26 algorithm random
4 UVおよびUVWマッピングとは正確には何ですか? いくつかの基本的な3Dの概念を理解しようとして、現時点では、テクスチャが実際にどのように機能するかを理解しようとしています。UVマッピングとUVWマッピングは、2Dテクスチャを3Dオブジェクトにマッピングする技術であることを知っています-ウィキペディアは私にもそう語っています。私は説明のためにグーグルで検索しましたが、それが何であるかをすでに知っていると仮定したチュートリアルのみを見つけました。 私の理解では、各3Dモデルはポイントで構成されており、いくつかのポイントが顔を作成しますか?各ポイントまたは面には、2Dテクスチャ内のax / y位置にマッピングされる2次座標がありますか?または、アンラップはモデルをどのように操作しますか? また、UVWのWは実際に何をしますか、UVを超えて何を提供しますか?私が理解しているように、WはZ座標にマッピングされますが、同じX / Yと異なるZに対して異なる状況がどのような状況で発生しますか、Zパーツは見えませんか?または、私はこれを完全に誤解していますか? 26 3d textures uv-mapping
9 デルタ圧縮は、ネットワークを介して送信されるデータ量をどのように削減しますか? 多くのゲームでは、送信されるデータの負荷を軽減するために、デルタ圧縮の手法を使用しています。この手法が実際にデータ負荷を下げる方法を理解できませんか? たとえば、ポジションを送りたいとしましょう。デルタ圧縮を使用しないvector3場合、たとえばエンティティの正確な位置を送信します(30, 2, 19)。デルタ圧縮ではvector3、より小さな数値でを送信します(0.2, 0.1, 0.04)。 両方のメッセージがvector3-各フロートに32ビット-32 * 3 = 96ビットである場合、データ負荷を下げる方法がわかりません。 各フロートをバイトに変換してから、バイトからフロートに戻すことができますが、表示される精度エラーが発生します。 26 networking compression
3 円形パス内のオブジェクトの移動 円形のパスで1つのオブジェクト(ドット)を移動したい。これを達成するには、X座標とY座標をどのように変更すればよいですか? 26 mathematics graphics
6 単純な逓減リターン方程式を考え出すにはどうすればよいですか? 減少する回帰方程式の公式があります。ただし、通常は指数関数が関係します。そのような方程式を考え出す他の方法はありますか?たとえば、次のテストケースを考えてみましょう。1つの農場で10の食料が生産され、生産された10の農場ごとに生産率が5%低下します。 25 game-design mathematics
1 新しいオブジェクトを即座にインスタンス化するのではなく、オブジェクトプールの作成と使用を常に検討する必要があるのはなぜですか? このパターンについて何度か読みました(ベストプラクティスの観点から)。 メモリ割り当て:新しいオブジェクトを即座にインスタンス化する代わりに、オブジェクトプールの作成と使用を常に検討してください。メモリの断片化を減らし、ガベージコレクタの動作を減らすのに役立ちます。 ただし、実際に何を意味するのかわかりません。どうすれば実装できますか? たとえば、Unity GameObjectのInstantiateメソッドを使用してをインスタンス化できますか? Instantiate(prefab, new Vector3(2.0F, 0, 0), Quaternion.identity); この使用は推奨されませんか?他に何を意味できますか? 25 unity c# design-patterns memory-efficiency
1 Unity3Dゲームに対して機能テストを実行するにはどうすればよいですか? コンテキスト 私はUnity3dでゲームのレガシーコードを続けています。新しいものを実装するときやリファクタリングするときに物事を壊さないように、回帰を目的とした機能テストをいくつか書きたいと思います。 Unity3d用の「Unit Test Tools」スイートがアセットとして利用可能であることは既に知っています。単体テストスイートとして使用したので、モデル(クラス)をテストします。 私が考えているテストの種類の例 「機能テスト」の場合、次のようなことを意味します。 プログラムを実行する メニューシーンで、「開始」というボタンがあることをアサートします。 クリックして 次に、新しいシーンがロードされたことをアサートします アサートピクセルXXXは赤 座標XXXをクリックします ピクセルが緑に変わったことを確認します 等 ご質問 Q1:ゲームの機能テストを作成して実行するにはどうすればよいですか?これは通常、UnityTestTools(UTT)でも行われますか? Q2: UTTが単体テストに向いている場合、機能テスト用の別のスイートはありますか?どれ? ノート: 私はAndroidをターゲットにしています Unity5.3.1f1 25 unity automated-testing
5 Unity3Dのようなエンジンが、初心者向けのOpenGLのようなネイティブライブラリよりも強調されているのはなぜですか?[閉まっている] 閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 私は3Dゲームの初心者です。私の好みのプラットフォームはAndroidです。「使用するもの:OpenGLまたはUnity3d?」に関する質問を他のフォーラムに投稿しました。彼らは全員Unity3Dを強調し、その組み込みの機能とツールを使用しました。OpenGLを使用する場合は、自分でコーディングする必要があります。しかし、その後、誰かが複雑なゲームのほとんどがカスタムエンジンを必要とすると言います。OpenGLではなくUnity3Dのようなエンジンを使用するのはなぜですか? 25 opengl android unity
3 独立したゲーム開発者は古いハードウェアをターゲットにする必要がありますか? 私が一緒に仕事をしている開発者は、インディー開発者は6年以上前のハードウェア(最大設定)をターゲットにするべきだと言っています。ハードウェアの古さに関係なく、ゲームをプレイしたいすべての人が実行可能なフレームレートでプレイできるようにする必要がありますが、インディー開発者は低ポリアートスタイルの使用に制限するか、ゲームを作成する必要があるという考えがあります主に「インディーズゲームをプレイするほとんどの人が古いハードウェアを持っている」ためです。 新しいハードウェアを使用している人々のグラフィカルな可能性を低下させるとしても、ゲームを非常に古いハードウェアの最大設定で実行できるようにする理由はありますか? 古いハードウェアでグラフィックの上限に簡単に到達するゲームは、古いハードウェアのプレイヤーにとって「最高以下」の体験を犠牲にしてグラフィックの上限を高くするゲームよりも成功することを示す統計はありますか? これに関する洞察は大歓迎です。 25 marketing business
6 プレイヤーの決定に時間的プレッシャーを導入するにはどうすればよいですか? 私はハッキングゲームを設計しています。このゲームでは、プレーヤーは通常、現在直面している障害をどのように克服するかを考えるのに時間をかけることができます。しかし、巧妙な解決策を考え出すことに加えて、ハッキングも激しく感じるべきであり、ゲームはプレイヤーの決定に時間的なプレッシャーをかけるいくつかの方法を必要とすることに決めました。 私が追加した最初のこのようなメカニズムは、正しい方向に進んでいると安心しました:プレイヤーはネットワークトレースをトリガーすることができます。これはX秒続き、十分に迅速に反応して成功しない限りプレイヤーをネットワークから追い出す可能性がありますトレースを回避します。プレイヤーに時間的なプレッシャーをかける1つまたは2つ以上のメカニズムを追加したいと思いますが、私は少し立ち往生していて、常に「カウントダウン」のバリエーションを思いつくようです。 (何らかのアクションが取られる)場合を除いて(X)秒で、しかし明らかにこれらのメカニズムはすべてあまりにも似てしまいます。 抽象的に言えば、つまり、ルールセットの特定のメカニズムを知らずに、プレイヤーの決定に時間的プレッシャーを導入するにはどうすればよいですか? 25 game-design game-mechanics
4 ヒューリスティック関数として使用すると、マンハッタン距離は単調になりますか? 正方形ベースのマップがあります。水平方向と垂直方向の移動のみが許可されます(対角線は不可)。移動コストは常に1です。 マンハッタン距離を距離ヒューリスティックとして使用して、そのマップにA *アルゴリズムを実装しています。このヒューリスティックな一貫性はありますか?g(node)CLOSEDセットにあるノードに対するチェックを回避できますか? 編集:一貫して私は単調という意味です。 25 tiles path-finding geometry
6 回転するオブジェクトが右端でターゲットにヒットすることを確認する方法は? 私は、プレイヤーが自由に狙いを定めてナイフを投げる投げナイフタイプの武器に取り組んでいます。ナイフは空中を回転し、衝突すると回転を停止し、衝突したオブジェクトの親になります。回転はアニメーションによって処理され、ナイフのパスは物理学によって処理されます。 私が直面している問題の1つは、ナイフが敵に衝突したときに、ナイフが敵に向かっていることを確認する方法です。現時点では、時々ナイフが敵のハンドルに最初に埋め込まれることがあります。これは明らかに非現実的です。同時に、ナイフが回転する速度はプレイヤーの制御を超えているため、ナイフが最初にブレードに衝突した場合にのみナイフを敵に「ヒット」させるのは非常に不合理だと思います。 私は同じような武器の多くの遅いキルカム映像を見てきました、そして武器が投げられるたびに空中を回転し、魔法のように常にそのターゲットを指しているブレードで終わります。投げる距離が一定になるゲームの場合、これは非常に簡単です。しかし、予測できない多くの要因が関係しているので、これをどのように予測するかはよくわかりません。ナイフの方向、ナイフの回転、敵の位置、敵からの距離など。可能であれば、ゲームはかなりローエンドのデバイス向けであるため、複雑な予測ロジックを使用する必要はありません。これを解決する「煙と鏡」の方法はありますか? 例:https : //youtu.be/0fav8lFpBko?t=42s 25 physics rotation movement-prediction collision-prediction
3 OpenGL Vertex Array Object(VAO)にはどの状態が保存されますか?また、VAOを正しく使用するにはどうすればよいですか? OpenGL VAOにはどの状態が保存されているのかと思っていました。VAOには、バッファリングされた頂点の頂点仕様に関連する状態(バッファ内の属性、バインドされているバッファなど)が含まれていることがわかりました。VAOの正しい使用法をよりよく理解するために、VAOがどの状態を保持しているかを正確に知りたいです。 VAOの使用をどのように想定するか 簡単な例から、VAOの正しい使用法は次のとおりであることがわかりました。 セットアップ Generate VAO BindVAO ---- Specify vertex attributes ---- Generate VBO's ---- BindVBO's -------- Buffer vertex data in VBO's ---- Unbind VBO's Unbind VAO レンダリング Bind VAO ---- Draw Unbind VAO このことから、少なくとも頂点バッファーバインディングと頂点属性の仕様がVAOに格納されていると想定しています。ただし、この使用パターンが(複数の)テクスチャと(複数の)シェーダープログラムが作用する状況にどのように拡張されるかはわかりません。あるアクティブなシェーダプログラム VAOに保存されますか?また、テクスチャバインド(サンプリング/ラッピング設定)もVAOに保存されますか?ユニフォームにも同じ? したがって、私の質問は次のとおりです。 OpenGL VAOにはどのような正確な状態が保存されていますか?(VBOバインディング、属性仕様、アクティブシェーダープログラム、テクスチャバインディング、テクスチャサンプリング/ラッピング設定、ユニフォーム...?) 関連するサンプリング/ラッピング設定を持つ(複数の)テクスチャ、(複数の)シェーダープログラム、ユニフォームが関係する、より複雑なレンダリング設定でVAOを正しく使用するにはどうすればよいですか? 25 opengl vao