ゲーム開発

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

2
宇宙人工物からの大気散乱空
私は宇宙からの惑星の大気散乱を実装する過程にいます。http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter16.htmlからSean O'Neilのシェーダーを出発点として使用しています。 ここにあるGroundFromSpaceシェーダーではなく、SkyFromSpaceシェーダーを除いて、fCameraAngleに関連する問題はほとんどあります。http://www.gamedev.net/topic/621187-sean-oneils-atmospheric-scattering/ fCameraAngle = 1内側のループで使用していない場合、スペースシェーダーから空の奇妙なアーティファクトを取得します。これらのアーティファクトの原因は何ですか?fCameraAngleが1に制限されると、アーティファクトは消えます。O'Neilのサンドボックス(http://sponeil.net/downloads.htm)にある色相も欠けているようです。 カメラ位置X = 0、Y = 0、Z = 500。左側のGroundFromSpace、右側のSkyFromSpace。 カメラ位置X = 500、Y = 500、Z = 500。左側のGroundFromSpace、右側のSkyFromSpace。 カメラの角度は、ソースに応じて非常に異なる方法で処理されるようであることがわかりました。 元のシェーダーでは、SkyFromSpaceShaderのカメラアングルは次のように計算されます。 float fCameraAngle = dot(v3Ray, v3SamplePoint) / fHeight; 一方、スペースシェーダーの地面では、カメラの角度は次のように計算されます。 float fCameraAngle = dot(-v3Ray, v3Pos) / length(v3Pos); しかし、さまざまなソースがオンラインで、レイを否定しています。どうしてこれなの? 問題を示し、画像の生成に使用したC#Windows.Formsプロジェクトは次のとおりです。https : //github.com/ollipekka/AtmosphericScatteringTest/ 更新: O'NeilのサイトにあるScatterCPUプロジェクトから、カメラがシェーディングされているポイントの上にあるときにカメラレイが無効になり、ポイントからカメラへの散乱が計算されることがわかりました。 光線の方向を変更すると、実際にアーティファクトは削除されますが、次に示すように他の問題が発生します。 さらに、ScatterCPUプロジェクトでは、O'Neilは光の光学的深さが0未満の状況から保護します。 float fLightDepth = Scale(fLightAngle, fScaleDepth); …

5
ネットワークラグの補償を回避するためのゲームメカニクスのトリック?
ネットワーク遅延補償を実装するのは難しいですが、どうすればそれを回避できますか? たぶん、ラグをゲームの非クリティカルな部分として、または自然な部分としてさえ受け取られるような方法で、トリックを使用してゲームの仕組みを構築することは可能でしょうか? それらのテクニクスとは何ですか?また、そのようなテクニクスを使用する既存のゲーム(MMORPG、戦略など)はありますか? 更新: ターンベースのゲームにはラグ補正は必要ありませんが、リアルタイムのアプローチ(またはリアルタイムの印象、重要な部分-ユーザーをブロックして待つことはできません)を見るのは興味深いでしょう。 遅延補正を回避する主な理由は単純さです。
20 networking  mmo  rpg  rts  lag 

1
トリプルバッファリングの利点は何ですか?
前の質問で書かれたすべてを読みました。ダブルバッファリングで理解していることから、プログラムは、完成した図面がコピーまたはスワップされるまで待ってから次の図面を開始する必要があります。トリプルバッファリングでは、プログラムに2つのバックバッファがあり、そのようなコピーに関係しないものですぐに描画を開始できます。 ただし、3番目のバッファを利用できる状況にある場合、トリプルバッファリングでは、モニタが更新できるよりも速くフレームを描画していることを示唆しません。そのため、実際にはより高いフレームレートは得られません。それでは、トリプルバッファリングの利点は何ですか?


5
ゲームデザインのスプレッドシート
過去2週間で、ゲームの設計にスプレッドシートを使用している有名な成功したゲーム開発者から聞いた2つの事例がありました。 このGDCVaultビデオの最初のデビッド・ワットリー:Zero to Time Magazine:App Success 2つ目は、Walled Garden Weeklyをやっている人たちです。 デビッドは、すべてをモデル化し、Excelモデルを使用してすべてがどのように機能するかを確認しました。彼は一体何について話しているのですか?ゲームの仕組みが互いにどのように反応するのか見ていますか? これを行う方法についてもっと学ぶことができる場所はありますか?

2
libGDXのすべてのチュートリアルはどこにありますか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 6年前に閉鎖されました。 LibGDXのヘルプとチュートリアルをオンラインで検索しましたが、stackexchangeで質問するためのWikiとwikiを除いて、実際には見つかりませんでした。ソース(デモ)とwiki以外に、非表示または間接的なオンラインチュートリアルはありますか? 私が読んだことから、LibGDXのドキュメントはあまりないので、2つのオプションしかありません 別のフレームワークへの移行をあきらめます。 人々に多くの質問をする。
20 android  libgdx 

4
動的なゲームオブジェクトを保存する最も効率的なコンテナは何ですか?[閉まっている]
ここで何が尋ねられているかを伝えるのは難しいです。この質問は曖昧、曖昧、不完全、過度に広範、または修辞的であり、現在の形式では合理的に答えることができません。この質問を明確にして、再開できるようにするには、ヘルプセンターに アクセスしてください。 7年前に閉鎖されました。 私は一人称シューティングゲームを作成していますが、さまざまな種類のコンテナについて知っていますが、ゲームで頻繁に追加および削除される動的オブジェクトを保存するのに最も効率的なコンテナを見つけたいと思います。元弾丸。 その場合、それはリストであるため、メモリは連続しておらず、サイズ変更が行われることはありません。しかし、その後、マップまたはセットを使用することも考えています。有益な情報があれば教えてください。 ちなみに私はこれをC ++で書いています。 また、私はうまくいくと思う解決策を思いつきました。 まず、大きなサイズのベクトルを割り当てます。たとえば、1000個のオブジェクトを割り当てます。このベクターに最後に追加されたインデックスを追跡して、オブジェクトの終わりがどこにあるかを把握します。次に、ベクターから「削除」されたすべてのオブジェクトのインデックスを保持するキューも作成します。(実際の削除は行われません。そのスロットが空いていることがわかります)。したがって、キューが空の場合、ベクトルに最後に追加されたインデックス+ 1に追加します。そうでない場合は、キューの先頭にあったベクトルのインデックスに追加します。

3
RK4がオイラー統合よりも優れているのはなぜですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 8か月前に閉鎖されました。 これらの素晴らしいスライドの最後に、著者は提示されたすべての異なるインテグレーターを比較します。いずれにせよ、改善されたオイラー統合とルンゲ・クッタ4統合を除き、それらはすべて不足しています。どちらもすべてのテストに合格します。 物理学をあまり重視していない 2Dゲームに取り組んでいることに言及する必要があると思います。改善されたオイラー統合がどこで不足し、代わりにRK4を使用する必要があるかについて、私は興味があります。 私のゲームは、主に単純な重力(ジャンプと落下)、X軸とY軸に沿った動き、境界ボックスの衝突で構成されています。RK4を実装する価値はありますか、または改良型オイラーで十分ですか?Euler Integrationのユーザーが懲戒される多くの議論を見ますが、私が見ることができることから、改良されたEulerは単純な2Dの問題に相当します。それも速くなると思います。

1
カードのハンドを均等に広げるにはどうすればよいですか?
トランプのセット(幅と高さのある長方形の画像)が与えられた場合、実際のカードを手に持っているように、それぞれを回転させて「ファン」パターンに見えるように配置できます。これを行うにはどのような数学が必要ですか? 更新 JavaScriptでのブラウザー実装の最後の例を次に示します。https : //cosmicrealms.com/blog/2013/03/16/hand-of-cards/ および http://jsfiddle.net/tyyvk/108/

2
無料で使用できる16進ベースのマップに適したタイルセットはありますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 無料で使用できる16進ベースのマップに適したタイルセットを知っている人はいますか?Battle for Wesnothのタイルは、他の人がゲームで使用できるライセンスの下にあるように見えますが、私が開発しているゲームは、人が立つエリアとほぼ同じヘックスになるスケールです、一方、Wesnothタイルは大規模です(たとえば、ヘックスに複数の木がある森林タイルがあります)。六角タイルグラフィックスを利用できる他のゲームやソースはありますか?
20 tiles  assets 

7
ゲームオブジェクトがC ++で誤って削除されるのを防ぐ方法
私のゲームには、プレイヤーで神風が爆発するモンスターがいるとしましょう。このモンスターの名前をランダムに選んでみましょう:クリーパー。そのため、Creeperクラスには次のようなメソッドがあります。 void Creeper::kamikaze() { EventSystem::postEvent(ENTITY_DEATH, this); Explosion* e = new Explosion; e->setLocation(this->location()); this->world->addEntity(e); } イベントはキューに入れられず、すぐにディスパッチされます。これにより、Creeperの呼び出し内のどこかでオブジェクトが削除されますpostEvent。このようなもの: void World::handleEvent(int type, void* context) { if(type == ENTITY_DEATH){ Entity* ent = dynamic_cast<Entity*>(context); removeEntity(ent); delete ent; } } Creeperオブジェクトはkamikazeメソッドの実行中に削除されるため、にアクセスしようとするとクラッシュしますthis->location()。 1つの解決策は、イベントをバッファにキューイングし、後でそれらをディスパッチすることです。それはC ++ゲームの一般的なソリューションですか?それはちょっとしたハックのように感じますが、それは異なるメモリ管理プラクティスを持つ他の言語での私の経験のためかもしれません。 C ++では、オブジェクトがそのメソッドの1つから誤って自分自身を削除するこの問題に対するより一般的な解決策はありますか?
20 c++  scene-graph 


6
エッジがラップされた世界での移動方向の検索
この質問は、Game Development Stack Exchangeで回答できるため、Stack Overflowから移行されました。 8年前に移行され ました。 2Dワールドのある点から、エッジがラップされている別の点(小惑星など)までの最短距離方向を見つける必要があります。私は最短距離を見つける方法を知っていますが、それがどの方向にあるのかを見つけるのに苦労しています。 最短距離は次のとおりです。 int rows = MapY; int cols = MapX; int d1 = abs(S.Y - T.Y); int d2 = abs(S.X - T.X); int dr = min(d1, rows-d1); int dc = min(d2, cols-d2); double dist = sqrt((double)(dr*dr + dc*dc)); 世界の例 : : T : …
20 c++  algorithm 

3
OBB対OBB衝突検出
2つのバウンディングボックスオブジェクトがあり、それぞれがボックス内の現在の頂点をベクトルに格納し、オブジェクトのすべての頂点が共通の軸に対して回転および変換されているとします。 ここに私の問題を説明するための画像があります: 2つのOBBがリンクをオーバーラップしている場合、どうすれば問題の解決策を説明するのに役立つのでしょうか。複雑すぎることはありません...

5
レベル設計、プレイヤーへの道を暗示する
レベルデザインに関する記事を探しています。特に、プレイヤーが別の方向ではなく進むべき方向を示唆するテクニックを探しています。 どのゲームメカニクスを使用できるかと同様に、グラフィックス、サウンドなどがプレーヤーにどのように影響を与えて好きな場所に行くことができるかなど。 たとえば、ドンキーコングカントリーでは、バナナが他のパスや隠れたエリアを示すために使用されていました。アランウェイクでは、武器のキャッシュを示すためにオレンジ色のマーカーがありました。 誰かがアイデアを持っているなら、私もそれらを聞いてくれてありがとう! 編集: 興味のある人は誰でも、この質問に関する論文やレベルデザインに関連する他の記事を見つけました。幸せな読書! http://guildhall.smu.edu/Level-Design.226.0.html

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