ゲーム開発

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


3
nプレイヤー間で16進グリッドを均等に分割する方法は?
単純な16進グリッドベースのゲームを作成していますが、マップをプレーヤー間で均等に分割する必要があります。マップはランダムに作成され、プレイヤーに比較的小さなエリアでほぼ同じ量のセルを持たせたいです。たとえば、マップに4人のプレーヤーと80個のセルがある場合、各プレーヤーには約20個のセルがあります(スポットオンである必要はありません)。また、各プレイヤーは、隣接するセルを4つ以下にする必要があります。つまり、マップが生成されるとき、最大の「チャンク」はそれぞれ4セルを超えることはできません。 これは2人または3人のプレイヤーにとって常に可能ではないことを知っています(これは「マップの色付け」問題に似ているため)。しかし、4〜8人のプレイヤーの場合、この問題にどのように対処できますか?

6
ワールドアラインされた軸の周りでオブジェクトを回転させる方法は?
各軸にオイラー角を持つVector3があります。 通常、回転行列を作成するときは、上記の回転ベクトルからそれぞれの角度を渡すD3DXMatrixRotationXなどの関数を使用し、行列(ZXY)を乗算して、完全なオブジェクト変換行列を形成するために使用される全体的な回転行列を作成します。 ただし、このメソッドはオブジェクト空間で一連の回転を生成します。つまり、(90、0、90)のベクトルをメソッドに渡すと、効果的に(90、90、0)のワールド空間で回転が作成されます。 回転ベクトルの各コンポーネントが、それぞれのワールド空間に配置された軸を中心に回転することを常に保証する方法はありますか? 編集: これは、現在起こっていることのアニメーションです。赤ではなく、青の軸を中心に回転する方法が必要です。 編集2: ただ、オイラー角を含む解決策を探しているのではなく、単に世界の軸を中心とした複数の回転の変換を表現できる方法を探していることに注意してください。

4
ビデオゲームで3Dモデルはどのように作成されますか?
ゲームの3Dモデルはどのように設計および表示されますか?すべてのコードですか?紙に描かれ、次に3Dグラフィックスソフトウェアに描かれ、それから...何ですか? もちろん、ゲームプログラマーは、描画するすべての形状(/オブジェクト)のすべての頂点を、コード(Direct3DまたはOpenGL)ですべて定義するわけではありません。したがって、ゲームデザイナーはMayaやプロプライエタリな3Dグラフィックソフトウェアのようなもの。彼らはそのソフトウェアでモデルを「描画」し、どんな形式でもエクスポートし、プログラマーはコードを介してそれを解析し、オブジェクト/モデルのデコード/解析された生の頂点を自動的に入力しますか? 私は多くをグーグルで検索しましたが、プロのビデオゲームのこの側面がどのように機能しているかを説明するためのしっかりしたものを見つけることができませんでした。

1
ウィンドウのサイズ変更/移動中にXNAが更新を一時停止しないようにするにはどうすればよいですか?
XNAは呼び出しUpdateを停止Drawし、ゲームウィンドウがサイズ変更または移動されている間。 どうして?この振る舞いを防ぐ方法はありますか? (ネットワークメッセージがポンプされていないため、ネットワークコードの同期が取れなくなります。)
15 xna  c#  xna-4.0  win32 

5
アクセスしやすく、強力で、コードをすばやく記述できるプログラミングシステムをゲームに実装するにはどうすればよいですか?
現在、宇宙ベースのサンドボックスゲームに取り組んでいます。これは、システムをカスタムプログラムする機能を大幅に備えています。私はこれを両方の方法で実装したい アクセス可能、 強力(最低限はチューリング完全性になります) コーディングが速い テキストベースの言語は通常、後者の2つの要件のみを満たします。最初の2つを満たす視覚言語を設計することは難しくありませんが、視覚言語はマウスを大量に使用する必要があるため、プログラムに苦労します。非常にアクセスしやすいテキストベースの言語がいくつかありますが、完全な非プログラマーがプログラミングを簡単にできるようにしたいと思います。

1
手続き的に生成されたトップダウンランドスケープを興味深いものにする
私は、手続き的に生成された世界を持つゲームに取り組んでいます。理想的には、Minecraftの世界と同じくらい美しい風景を生成したいと思います。Minecraftには、割れ目、滝、山、なだらかな丘、海などがあります。しかし、これはトップダウン(実際には3/4の視点)ゲームになるため、そのほとんどは可能だとは思いません。主な理由は、この視点で高さを表現しようとするのがどれほど難しいかです。ゼルダ:過去へのリンクは高さの錯覚をうまく作り出しましたが、これは手続き的に再現するのが非常に難しく、また、最も高い構造が地図の最上部になければならないという事実などのいくつかの問題をもたらします。 ですから、3次元を偽造することなく、トップダウン形式でランドスケープを面白くするためのテクニックをいくつか知りたいと思います。(このゲームでは地形を作成したり破壊したりすることはできません。そのため、もう少し柔軟性が得られます。) 編集:物事をもう少し明確にするために、3次元を必要とする機能を持つ世界を避けようとしています。たとえば、なだらかな丘や山はありません。3次元を偽造する必要がないランドスケープ機能を追加できますか?1つの答えは川を追加することかもしれませんが、それは明らかなものです。

3
ピアツーピアのホストレス競争力のあるゲーム?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 閉じた3年前。 私は疑問に思っています-これまでに作成されたゲームはありますか? 1つのピアがホストとして指定されていないピアツーピア 競争力のある(協力的ではない、プレイヤー同士が対戦する) 証明可能(プレーヤーが不正行為をする可能性はありません) プレーヤーに必要以上の情報を提供しないでください(たとえば、実行中のアプリケーションにも他のプレーヤーの秘密を明かさない) そのようなゲームの例は、各プレイヤーとそのゲームが自分の手しか知ることができず、ゲームのホストであることに依存することなく他のプレイヤーの手ではないポーカーゲームです。確かに公平なゲームがいくつかあることは知っていますが、私が知っていることはすべてサーバーとクライアントの構成に存在します。

5
チャンクサイズが2のべき乗であることが多いのはなぜですか?
そこには多くのMinecraftクローンがあり、私は自分の実装に取り​​組んでいます。テレインレンダリングの原則は、全世界を固定サイズのチャンクでタイリングして、ローカライズされた変更の労力を減らすことです。 Minecraftでは、現在のところ、チャンクサイズは16 x 16 x 256です。また、クローンでは、常に2のべき乗のチャンクサイズを見ました。 その理由はありますか、おそらくパフォーマンスやメモリに関連していますか?2のべき乗はバイナリコンピューターで特別な役割を果たすことを知っていますが、チャンクサイズとは何の関係がありますか?

6
パス(座標のリスト)を歩いているときにキャラクターを滑らかにする方法は?
座標(A *アルゴリズムからの出力)のリストがあり、キャラクターが回転しながらこのパスをスムーズにたどるようにしたいと思います。 だから私はAのようなものを持っており、Cを取得したい これどうやってするの ? 編集 自分をもう少し明確にするために: あるノードから別のノードへの移動方法を既に知っているので、スムーズな方向転換にもっと興味があります。 編集 多くの人々は、この(私も)私は彼がゲームAI(物理学)の多くを論じダニエル・シフマンの「コードの自然」へのリンクを掲載しています便利な問題例えばステアリング行動見つけたようhttp://natureofcode.com/book/chapter- 6-自律エージェント/#chapter06_section8
15 c#  unity  path-finding 

6
開発者は、新しいバージョンでゲームを簡単にする必要がありますか?
ゲームAngry Birdsは新しいバージョンで徐々に簡単になっているようです。おそらく、人々は進歩の幻想と新しい記録を破る満足感を得るのでしょうか? ユーザーの改善と学習の感覚を高めるためのゲームの段階的な小さな修正が、ゲーム開発の既知/一般的/標準的な実践であるかどうかを知りたいです。(私はそのような慣行に何か問題があると言うつもりはありません。)

2
可変線幅のトゥーン/セルシェーディング?
私はセルシェーディングを行うためにそこにいくつかの広範なアプローチを見ています: 法線が反転したモデルの複製と拡大(私にとってはオプションではありません) エッジ検出へのSobelフィルター/フラグメントシェーダーアプローチ エッジ検出へのステンシルバッファアプローチ 面とエッジの法線を計算するジオメトリ(または頂点)シェーダーアプローチ たとえば、ジオメトリ中心のアプローチが照明や線の太さを最大限に制御できると仮定するのは正しいでしょうか。丘のシルエットラインが徐々に平野に合流するのを見るかもしれない地形のために? 地形の表面にピクセル照明が必要ない場合はどうすればよいですか?(そして、セルベースの頂点ベースまたはテクスチャマップベースのライティング/シャドウイングを使用する予定ではないでしょう。)それから、ジオメトリタイプのアプローチを続けるか、代わりにスクリーンスペース/フラグメントアプローチを使用する方が良いでしょうか物事をシンプルに保つために?もしそうなら、メッシュ全体のアウトラインだけではなく、メッシュシルエット内の丘の「インク」をどのように取得し ますか(そのアウトライン内に「インク」の詳細はありませんか?(示唆的な輪郭、折り目))。 最後に、ジオメトリシェーダーを使用して、反転法線アプローチを安価にエミュレートすることは可能ですか?これに関する私の懸念は、すべての頂点を確実に複製し、それに応じてスケーリングできることですが、法線の反転やフラグメントシェーダーの明確な色付けにどのようにアプローチするのでしょうか? 私が欲しいもの-シルエット内の邪魔な線で線の太さを変える... 欲しくないもの... 編集:さらなる研究により、次のことが明らかになりました... 私は地形に大量の頂点を持っているため、距離ベースのLoDを考慮しても、すべての複製とスケーリングに伴う計算の複雑さのために、フリップされた法線もジオメトリシェーダーベースのアプローチも(錐台カリングを使用しても)賢明なオプションになりますアップロードされた頂点。 テレインサーフェス上でソリッドトーンシェーディングの形でピクセル単位のライティングを必要としないことを考慮すると、これらのように、フェース法線ベースのアプローチ(そうでない場合は正しいサーフェスライティングの要件)を検討することも賢明ではなくなります計算するのは当然非常に高価です。しかし、それらが最高レベルの制御を提供することは事実です。たとえば、「芸術的な」ストロークを使用してエッジをシェーディングする機能:美しいですが、非常に複雑なゲーム環境では実際には実行できません。 ステンシルバッファーは、シェーダーですべての作業を行うことを好むため、避けたいものです。(上記の赤いアウトラインの例は、ステンシルバッファーで行われました-古い学校です。) これにより、フラグメントシェーダーのイメージ空間アプローチが残ります。計算の複雑さは、頂点の数ではなくフラグメントの数に削減されます(私の場合、これはジオメトリシェーダーで行う必要がある操作よりも10〜100倍少ない操作です)。これには、不連続フィルター(Sobel演算子など)を適用できるgバッファー(通常バッファーとオプションで深度バッファーで構成される)を生成するために、複数のレンダーパスが必要です。深さの不連続性は、示唆的な輪郭と折り目を可能にします。このアプローチの私の唯一の問題は、インクエッジの幅をより細かく制御できないことですが、フラグメントシェーダーの適切なアルゴリズムを使用すれば、これが可能になると確信しています。 質問はより具体的になりました:フラグメントシェーダーで、特に外側のシルエットで、可変エッジ幅をどのように正確に取得するのですか?

2
DOSゲーム開発の典型的なツールチェーンは何ですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 8か月前に閉鎖されました。 DOSゲーム(Doomなど)をどのように書いていたのか不思議に思っています。これについてはあまりわかりませんが、ゲーム開発の初期の時代についてもっと知りたいと思っています。 主にどの言語が使用されましたか? 私はそれがCだったと思います。それともC ++ですか? どのIDE(またはエディター/コンパイラー)が人気がありましたか? Microsoft Visual C / C ++(または以前はMicrosoft C / C ++と呼ばれていたと思われる)は、当時は存在していませんでした。それで、人々は何を使用しましたか?編集またはIntelからのコマンドラインコンパイラか何か? 使用されているAPI 2Dゲームで一般的なものは何ですか?DoomやTomb Raiderなどの3Dゲームはどうですか? 今日と違うものはありますか? 使用された画像/音声形式など、他の違いを喜んで聞きます。

3
ダブル(またはロング)を使用して、太陽系を3D空間で正確に表現できますか?
太陽系全体を現実的にモデル化することを目的とする3Dゲームで座標を最適に管理する方法を知りたいと思います。フレームの許容可能な動き)。64ビットのdouble(または64ビットのlong)はこれをサポートしますか、それともオーバーフローの問題に遭遇しますか?そうでない場合、longsまたはdoublesを使用する必要がありますか、または使用する場合、3Dゲームで太陽系の位置をモデル化するのに最も適切な代替方法はどれだと思いますか?(つまり、船までの距離に基づいて一度にディスプレイにシステムのビットを保持するか、システムを別の座標空間などで何らかの形で表示させるなど)
15 3d 

1
Kinectの3Dポイントを使用したキーストーン補正
XNAでは、床に投影される単純な長方形を表示しています。プロジェクタは任意の位置に配置できます。明らかに、投影された長方形は、プロジェクターの位置と角度に応じて歪みます。Kinectは床をスキャンして、四隅を探します。ここでの私の目標は、元の長方形を変形して、長方形を基本的にプリワープすることで投影が歪まないようにすることです。 私の最初のアプローチは、すべてを2Dで行うことでした。まずwarpPerspective()、スキャンしたポイントから内部の四角形のポイントへの透視変換(OpenCVを使用)を計算し、四角形に逆を適用します。これは機能しているように見えましたが、GPUでレンダリングできないため遅すぎました。 2番目のアプローチは、XNAのレンダリング機能を使用するために3Dですべてを行うことでした。最初に、プレーンを表示し、Kinectでコーナーをスキャンして、受信した3Dポイントを元のプレーンにマッピングします。理論的には、2Dアプローチで行ったように、透視変換の逆を平面に適用できます。ただし、XNAはビューと投影行列で機能するwarpPerspective()ため、次のような関数を呼び出して目的の結果を取得することはできません。カメラのビューと投影マトリックスの新しいパラメーターを計算する必要があります。 質問:これらのパラメーターを計算し、2つのマトリックス(ビューとプロジェクション)に分割することは可能ですか?そうでない場合、私が使用できる別のアプローチはありますか?
15 xna  2d  3d  projection  kinect 

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