ゲーム開発

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

7
XNAで六角形のタイルマップピッキングを実装するにはどうすればよいですか?
六角形がクリックされたときに確認する必要がある六角形のタイルマップがあります。六角形は実際には接触しておらず、それぞれの間にわずかな隙間があります。 全体を複雑にすることなく、六角形がクリックされたかどうかを確認する方法を知っている人はいますか?
13 c#  xna  hexagonal-grid 

1
OpenGL / GLSL:キューブマップにレンダリングしますか?
シーンをキューブマップにレンダリングする方法を見つけようとしています。私はこれに少し立ち往生しており、皆さんに助けを求めると思いました。OpenGLは初めてで、FBOを使用するのは初めてです。 現在、キューブマップbmpファイルの使用例があり、フラグメントシェーダーのsamplerCubeサンプルタイプがGL_TEXTURE1にアタッチされています。シェーダーコードはまったく変更していません。キューブマップbmpファイルをロードしていた関数を呼び出さず、以下のコードを使用してキューブマップにレンダリングしようとしているという事実を変更しているだけです。 以下のように、GL_TEXTURE1にもテクスチャを再度アタッチしています。これは、ユニフォームを設定したときです。 glUniform1i(getUniLoc(myProg, "Cubemap"), 1); フラグメントシェーダーでにアクセスできますuniform samplerCube Cubemap。 私は次のような関数を呼び出しています: cubeMapTexture = renderToCubeMap(150, GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE); ここで、下の描画ループで、+ x、-x、+ y、-y、+ z、-z軸を見下ろすようにビューの方向を変更していないことに気付きます。私は本当にそれを実装する前に何かが最初に動作するのを見たいだけでした。私は少なくとも、コードが今のようにオブジェクト上に何かを見るべきだと考えました。 私は何も見ていません、ただ真っ黒です。背景を白にしましたが、オブジェクトは黒です。キューブマップテクスチャをサンプリングするために照明と色を削除しましたが、まだ黒です。 GL_RGB8、GL_RGBAのテクスチャを設定するときの問題は、フォーマットのタイプかもしれないと思っていますが、私も試しました: GL_RGBA、GL_RGBA GL_RGB、GL_RGB フレームバッファにアタッチされたテクスチャにレンダリングするので、これは標準だと思いましたが、異なる列挙値を使用する異なる例を見てきました。 また、キューブマップを使用するすべての描画呼び出しでキューブマップテクスチャをバインドしようとしました。 glBindTexture(GL_TEXTURE_CUBE_MAP, cubeMapTexture); また、ほとんどの例で見たFBO用の深度バッファーを作成していません。これは、キューブマップのカラーバッファーのみが必要だからです。実際にそれを追加して、それが問題かどうかを確認しましたが、それでも同じ結果が得られました。試してみたときに、それを少しでもおかしくすることができました。 正しい方向に私を向けることができる助けはありがたいです。 GLuint renderToCubeMap(int size, GLenum InternalFormat, GLenum Format, GLenum Type) { // color cube map GLuint textureObject; int face; GLenum status; …
13 opengl  glsl  cubemap 

4
Minecraftスタイルのゲームでオクルージョンを使用してボクセルベースの照明を実装するにはどうすればよいですか?
C#とXNAを使用しています。私の現在の照明のアルゴリズムは、再帰的な方法です。ただし、5秒ごとに1つの8x128x8チャンクが計算されるほど高価です。 暗闇の可変シャドウを作成する他の照明方法はありますか? または、再帰的な方法は良いですか、おそらく私はそれを間違っていますか? 再帰的なものは基本的に高価なようです(チャンクごとに約25kブロックを通過させる)。レイトレーシングに似た方法を使用することを考えていましたが、これがどのように機能するかわかりません。私が試した別のことは、リストに光源を保存し、各ブロックが各光源までの距離を取得し、それを使用して正しいレベルに照明することでしたが、照明は壁を通り抜けます。 私の現在の再帰コードは以下です。これは、太陽光とトーチライトをクリアして再度追加した後、チャンク内の光レベルがゼロでない任意の場所から呼び出されます。 world.get___atこのチャンクの外部のブロックを取得できる関数です(これはチャンククラスの内部にあります)。Locationは、のような独自の構造ですがVector3、浮動小数点値の代わりに整数を使用します。light[,,]チャンクのライトマップです。 private void recursiveLight(int x, int y, int z, byte lightLevel) { Location loc = new Location(x + chunkx * 8, y, z + chunky * 8); if (world.getBlockAt(loc).BlockData.isSolid) return; lightLevel--; if (world.getLightAt(loc) >= lightLevel || lightLevel <= 0) return; if (y < 0 || …


6
ゲーム開発の修士号を考慮すべきですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 皆さんが間違いなく助けることができると確信しています。NCSU、USC、UCSCなどの修士課程の一部の大学は、ゲームとゲーム開発に基づいたコースを提供しています(一部の大学は、ゲーム開発に重点を置いてコンピューターサイエンスでMSと呼んでいます)。私はこの分野に非常に興味があり、試してみたいと思います。しかし、修士号は非常に費用がかかるため、将来の見通しも考慮に入れる必要があります。キャリアも考慮に入れたときに、これが適切なコースであるかどうかを知りたいです。意見やアイデアはありますか?このキャリアラインに従っている人はいますか?

2
DirectX11、複数のシェーダー定数バッファーを管理および更新するにはどうすればよいですか?
さて、定数バッファがパイプラインステージにバインドされて更新される方法を把握するのは大変です。DirectX11では、ステージごとに最大15個のシェーダー定数バッファーを使用でき、各バッファーには最大4096個の定数を保持できることを理解しています。ただし、定数バッファーと対話するために使用されるID3D11Buffer COMが、これらのバッファースロットを埋めるために使用されるメカニズム(またはハンドル)だけであるか、またはオブジェクトが実際に前後にプッシュされるバッファーデータの特定のインスタンスを参照するかどうかがわかりませんGPUとCPUの間。 このトピックに関する混乱は、2つの異なる定数バッファーを使用している問題の原因だと思います。 シェーダーコードの例を次に示します。 cbuffer PerFrame : register(b0) { float4x4 view; }; cbuffer PerObject : register(b1) { float4x4 scale; float4x4 rotation; float4x4 translation; }; コードの編成方法では、カメラはフレームごとの関連データの更新を処理し、GameObjectsはオブジェクトごとの独自のデータを更新します。両方のクラスには、これを行うために使用される独自のID3D11Bufferがあります(ハブアーキテクチャを使用しているため、1つのGameObjectクラスが、世界中のインスタンス化されたGameObjectsのレンダリングを処理します)。 問題は、スロットに応じて一度に1つしか更新できないことです。更新順序は、1つのバッファーが満たされ、もう1つのバッファーがゼロになると仮定しています。 これは基本的に私のコードです。両方のクラスは同一の更新ロジックを使用します。 static PerObjectShaderBuffer _updatedBuffer; // PerFrameShaderBuffer if Camera class _updatedBuffer.scale = _rScale; _updatedBuffer.rotation = _rRotation; _updatedBuffer.translation = _rTranslation; pDeviceContext->UpdateSubresource(pShaderBuffer, 0 , 0, &_updatedBuffer, 0, …

4
プレーヤーからゲームデータを非表示にしますか?
私は最初の(C ++)ゲームに取り組んでおり、コンポーネントベースのデザインを使用したいと考えています。最近、これについて多くのことを読みましたが、昨日、より柔軟でアクセスしやすいように、外部JSONファイルにオブジェクトデータを保存することにしました。 それから、これらのファイルをゲームのディレクトリツリーに残しておくと、プレイヤーが必要なものを非常に簡単に変更できることがわかりました。 ゲームはオープンソースになるので、開発者にコードを見せることを心配していませんが、経験の浅いゲーマーがゲームを壊したり、少なくとも楽しみを台無しにしたりするのではないかと心配しています。 何か不足していますか?(オープンソースゲームで)ゲームデータを非表示にするポリシーは何ですか?誰でも簡単にアクセスできるようにしておくのは普通ですか? そうでない場合、データを非表示にする良い方法は何ですか?
13 c++  data 

2
ゲームのリリース前に、ゲームサーバーがクライアントを処理できるかどうかを確認する方法は?
マルチプレイヤーをサポートするiOSベースのゲームを開発しています。これまでのところ、すべてが本当に良いように思えますが、サーバーが10000クライアントを処理できるかどうかを確認したいと思います。サーバーがその量のトラフィックに耐えられるようにするにはどうすればよいでしょうか?
13 server  testing 


6
コア言語ではなく、ゲームで「スクリプト」または「スクリプト」を使用するのはいつですか?
スクリプトとスクリプトという用語はGame Development Stack Exchangeで同じ意味で使用されているように見えますが、スクリプト言語の選択に関する質問を読んでいる以外に、スクリプトとスクリプト、およびコア言語の関係がわかりません。スクリプトは通常、どのようなときに使用されますか?また、(ゲームプログラマーによって定義された)いくつかのコンテキストのスクリプトはスクリプト言語とは異なりますか?
13 scripting 


3
イベントスケジューラのシングルトンパターンを回避する方法
ゲームのイベントスケジューラを作成したいのですが、基本的にはゲームイベントのトリガーをスケジュールできるようにしたいのです。これは、1回限りのトリガー、または定期的なトリガー(5秒ごとにトリガーイベント "E_BIG_EXPLOSION" ...)になります。 これはシングルトンを使用するのに適した場所かもしれないと思われがちですが、シングルトンは非常に邪悪で、病気のように広がる傾向があります... この場合、シングルトンの使用を避けるためにどのような設計を提案しますか?

3
外部ライブラリを使用せずにXNAで美しい小さなテキストを取得するにはどうすればよいですか?
XNAでは、スプライトフォント技術は恐ろしいものです。Nuclexの方がはるかに優れていますが、外部からの参照は必要ありません。また、ゲームはほぼ完成しました。 SansationやQuicksandなどのフォントを使用する場合、フォントのサイズが小さいとひどく見えます。それはとても悪いです! これに対する既知の回避策はありますか?フォントサイズを非常に高く設定し、スプライトバッチでそれらを不運に縮小しようとしました。
13 xna  fonts 

1
OpenGLでPSXのグラフィックスをエミュレートする方法は?
OpenGLゲームがPlaystation 1ゲームのように見えるように設定するオプション(またはシェーダー)を知りたい。PSXはテレビを使用し、テレビはそのモニターとは異なる方法でレンダリングするため、おそらく100%達成できないことを知っています。ありがとう。:)
13 opengl  emulation 

3
2Dゲームのコリジョンレスポンス:特定の軸に沿ったSATと最小変位?
作成中の2Dゲームに衝突システムを実装しようとしています。分離軸定理(metanetのコリジョンチュートリアルで説明されている)は、衝突検出を処理する効率的で堅牢な方法のように見えますが、私は彼らが使用するコリジョンレスポンスメソッドがあまり好きではありません。オーバーラップが最小の軸に沿って盲目的に移動することにより、アルゴリズムは移動するオブジェクトの前の位置を単純に無視します。つまり、静止オブジェクトに進入して跳ね返るまで静止オブジェクトと衝突しません。 これが重要な状況の例を次に示します。 上記のSATメソッドによれば、長方形は斜辺に垂直な三角形から単純に飛び出します。 ただし、現実的には、長方形は三角形の右下隅で停止する必要があります。これは、変位ベクトルに沿って連続して移動している場合の最初の衝突点になるためです。 さて、これは実際にゲームプレイ中は重要ではないかもしれませんが、この方法で正確かつ一般的に正確な変位を達成する方法があるかどうかを知りたいです。私は過去数日間、頭を悩ませてきましたが、まだあきらめたくありません! (StackOverflowからクロスポストされ、ルールに反しないことを願っています!)

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