ゲーム開発

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

7
別の近くのライトが1.85の範囲を超えると、ポイントライトが消えるのはなぜですか?
Unity 3Dでダンジョン設定のゲームを作っています。多くの松明が壁を覆っています。炎をシミュレートするために、各トーチにポイントライトを使用しています。ただし、2つのトーチが向かい合っており、一方が1.85の範囲を超えると、もう一方が完全に消え、光が放たれません。 何が原因でしょうか?


1
ターンベースのJRPG戦闘システムアーキテクチャリソース
過去数か月間、SDLライブラリーを使用してC ++で2D JRPG(和風RPG)をプログラミングするのに忙しかった。探索モードは多かれ少なかれ行われます。今はバトルモードに取り組んでいます。 私は、古典的なターンベースのJRPG戦闘システムがどのように構成されているかに関するリソースを見つけることができませんでした。私が見つけるのは、損傷の公式についての議論です。私はグーグルを試し、gamedev.netのメッセージボードを検索し、C ++関連の質問をここでStack Exchangeでクロールしました。また、既存のオープンソースRPGのソースコードを読み取ってみましたが、なんらかのガイドがないと、干し草の山から針を見つけようとするようなものです。 D&Dなどの一連のルールは探していません。私は純粋にコードとオブジェクト構造の設計について話しています。戦闘システムは、メニューを使用してプレイヤーに入力を要求します。次に、ヒーローと敵がアクションを実行するときに、バトルターンが実行されます。 誰かが私を正しい方向に向けることができますか?前もって感謝します。
9 c++  2d  architecture  sdl  rpg 

1
Desuraの販売経験
Desuraを通じてインディーズタイトルを販売した経験を知っている(または経験した)誰かいますか?他の典型的なインディーズゲームの配布方法と比較してどうですか?

2
RPGダイアログツリーの視覚的なコーディング
私は現在、XMLを使用して自分のRPGにダイアログツリーを作成していますが、何百もの異なるディスカッションで手作業でこれを行うと、非常に退屈な作業になりがちです。これらのジオログツリーを視覚的にコーディングするシステムのようなフローチャート/ udk kismetを実装できる方法があるかどうか疑問に思っていました。XMLに関する解析やその他のロジックはすでに記述しているので、最終結果をXMLにしたいのです。 編集:私が探しているもののアイデアを与えるために、ここに例があります。これは私がredditでこれを尋ねたときに私に示されました、そしてそれは基本的に私が探しているものですが、それは限定的です。本当に私が探しているのは、グラフ/フローチャートのようなゲームやソフトウェアですでに使用されており、自分のニーズに合わせて変更できるダイアログソフトウェアです。

2
UnityゲームをAndroidに移植する際の解決の問題
それで、Unity3Dで初めてゲームをAndroidに移植します。途中でいくつかの問題に遭遇しました。私の現在の問題は、解像度が正しくないようで、画面の端が途切れ、画面を左/右にスクロールするためのスクロールストップが正しい場所にないということです。 少し調査した後、多くの人が、すべてのAndroid / Iphone / Ipadで実行できるようにするには、ゲームを解像度に依存しないようにする必要があると言います。これは本当ですか?もしそうなら、私はそれをどうやってやりますか?そうでない場合、どうすれば解像度を修正できるので、モバイルデバイスに移植したときに正しく表示されますか? 編集:私はまだ本当に必要なものを持っていません、解像度はまだ以下にリストされているコードとトリックを使っても正しく機能していません。デバイスに基づいて解像度を調整する方法が必要です。何らかの理由でMungoidのコードを使用してデバイスの解像度を取得しようとすると、0x0が返されます

1
Starcraft 2がマップをレンダリングするのに使用するテクノロジーは何ですか?
実行時に手続き的に生成されるマップがあり、現在このマップをレンダリングする方法を調査しています。私はStarcraft 2の外観に興味を持っており、それを実現するために採用されている方法についてアドバイスをお願いします。第二に、可能であれば、チュートリアル、記事、さらにはソースコードの例を見たいです。 いくつかアドバイスをお願いしたいのですが、私に役立つ他のことをお気軽に提案してください。 スナップ可能なタイルセット-典型的なスタークラフトマップは、一緒にスナップして崖、スロープ、その他の高所の地形を作成できるモデルのタイルセットで構成されているようです。自然に見えるようにするためにどのような方法を採用していますか?つまり、繰り返しを見つけるのは非常に難しいということです。 地形テクスチャ-地形テクスチャは非常に多様でダイナミックです(Zergクリープ)。これにはどのような方法が使用されますか? ありがとう。

3
2Dアイソメトリック:スクリーンからタイルへの座標
等角投影の2Dゲームを作成していますが、カーソルがどのタイル上にあるかを正確に把握するのが困難です。これが描画です: ここで、xsとysは画面座標(ピクセル)、xtとytはタイル座標、WとHはタイルの幅と高さ(ピクセル単位)です。座標の表記は(y、x)ですが、混乱する可能性があります。 これまでに私が理解できた最高のものはこれです: int xtemp = xs / (W / 2); int ytemp = ys / (H / 2); int xt = (xs - ys) / 2; int yt = ytemp + xt; これはほぼ正しいように見えますが、非常に不正確な結果を与えており、特定のタイルを選択するのが難しくなっています。または、クリックしようとしているタイルの隣のタイルを選択する場合もあります。理由はわかりません。この背後にある論理を理解してくれる人がいれば助かります。 ありがとう!

1
複雑な動きの車両をターゲットにしていますか?
既知の一定速度で車両を標的とすることは簡単であり、衝突がある(保証されているオブジェクトがその目標を導く有するために敵の位置を予測する、(一定の)速度と傾きを知ること、(d)に2つのオブジェクトのポイントを満たす検索します)。不正確なAIは、小さな誤差要因を追加することでモデル化できます。 しかし、動きがより複雑な車両をどのようにターゲットにするのでしょうか?おそらく、それはAIまたは別のゲームオブジェクトを回避しています。 私はFPS(弾丸の速度が有限である)で自分でそれをどのように行うかについて考えていましたが、直前の1秒程度のターゲットの動きに基づいて、少なくともいくつかのターゲットモードが必要になる可能性があると思います。 線形モデルで、線形に近い(特定の範囲のピーク加速度)ターゲットの場合 非常に不規則な場合(おそらく、最近の位置のバウンディングボックスのサイズを使用できますか?) 今のところ、私は2D空間を想定できます。AIは静止しており、発射体は誘導されず、直線的に移動します。
9 ai  aiming 

2
複数のアトラクタを処理できる物理エンジン?
主に立体重力でプレイするゲームをまとめています。 つまり、現実的に振る舞う複数の惑星/星/月、および重力場における経路のプロットと経路の予測を意味します。 私はBullet、トカマク、ニュートンなどのさまざまな物理エンジンを見てきましたが、それらのフレームワークで基本的に重力エンジンを書き直す必要があるため、どれも適切ではないようです。 互いに引き付け合う複数のボディを処理できる物理エンジンを知っていますか? シーングラフの管理やレンダリングは必要ありません。コアフィジックスだけです。(剛体ダイナミクスと同様に、衝突検出はおまけです)。 私のバックグラウンドは物理学なので、Verlet統合またはRK4(または必要に応じてオイラー統合)を使用するエンジンを作成できますが、既成のソリューションをかなり適応させたいと思います。 [編集]:n-bodyの問題の物理シミュレーションのための優れたリソースがオンラインおよびスタックオーバーフローにあります

1
画面の読み込み中にガベージコレクターを呼び出す必要がありますか?
だから、私は最近、好奇心からガベージコレクションを少し読みましたが、かなり頻繁に繰り返されることがあります。ガベージコレクションは、コレクションの「深さ」によっては、プログラムの突然のスローダウンにつながる可能性があります。 しかし、ビデオゲームでは、ユーザーが実際に小さなラグに気付かない瞬間があります。それは、ロード画面です。したがって、読み込みフェーズ中に(Collect()を介して)完全なガベージコレクションに進むことが役立つと思いました。ユーザーに実際に影響を与えないように、1〜2秒待つ必要があります。 私の質問は、それは本当に便利ですか、またはこれを行うことには本当に利点がないのですか?
9 c# 

2
キャラクターを高角度の斜面に滑り込ませるにはどうすればよいですか?
現在、Unity3Dでキャラクターの動きに取り組んでいます。私はどうにかして彼をマウスカーソルに対して相対的に移動させました。傾斜制限を45°に設定しました。これにより、キャラクターはより高い角度で山を登ることができなくなります。しかし、彼はまだそれらをジャンプすることができます。 傾斜が高すぎる場所でジャンプしたときに、どうすれば彼を再び滑らせることができますか? 前もって感謝します。 編集:基本的な動きのコードスニペット。UnityEngineを使用します。System.Collectionsを使用します。 public class BasicMovement : MonoBehaviour { private float speed; private float jumpSpeed; private float gravity; private float slopeLimit; private Vector3 moveDirection = Vector3.zero; void Start() { PlayerSettings settings = GetComponent<PlayerSettings>(); speed = settings.GetSpeed(); jumpSpeed = settings.GetJumpSpeed(); gravity = settings.GetGravity(); slopeLimit = settings.GetSlopeLimit(); } void Update() { …


4
XNA ContentPipelineを使用して、完全なXNA GSのないマシンでファイルをエクスポートする
私のゲームは、実行時にコンテンツパイプラインを使用してスプライトシートをロードします。ゲームのアーティストから変更されたスプライトシートが送られてきました。マシンでビルドを行い、更新されたプロジェクトを彼に送ります。そのため、彼が完全なXNA Game Studioをインストールしなくても、彼のマシンでxnbファイルを生成する方法(これはコンテンツパイプラインの出力です)を探しています。 1)私のアーティストにVS + Xnaをインストールしてほしくない(VSの無料バージョンがあることは知っているが、チームに人を追加するとこれは拡張されない)。2)Xboxでこのエディター/ツールを実行することに興味がないので、Windowsのみのソリューションが機能します。3)MSBuildオプションは知っていますが、完全なXNAが必要です 私はShawnのブログを調査したところ、Msbuild Sampleを使用するオプション、またはXNA 4.0の新しいオプションを使用するオプションを見つけましたが、ここでは有望に見えますが、同じ制限があるようです:ContentPipelineはXNA redistの一部ではないため、完全なXNA GSをインストールする必要があります。 だから誰かがこれの回避策を見つけましたか?

2
非常にシンプルな3Dレーシングゲームでは、衝突はどのように処理されますか?
いくつかのシンプルな3Dカーレーシングゲーム(特にOutrun 2 / Motoracerなどのゲーム)で衝突がどのように行われるのか疑問に思いました。 複雑な環境(オープンワールド)のクラシックカーレーシングゲームでは、これは基本的なボックス(車用)から飛行機の衝突(トラック、建物など)で行われると思います。全体は、いくつかのバウンディングボックスを使用して最適化されます(これは、多くのゲームで衝突が行われる方法です)。 Outrun 2 / Motoracerのようなゲームでは、ゲームプレイは非常にシンプルなので、開発者はそれを必要としない可能性があり、すべてが大幅に簡略化されている可能性があります。それをプレイしたことがない人のために、これはとても具体的です: 車/バイクは常に道路に接着されています。 道路は常に同じサイズで、非常にシンプルな形状です。 唯一の可能性は、その道路をたどること、道路を離れること、または他の物と衝突することは不可能です(他の車/バイクを除いて、私たちは気にしません)。 あなたが道路に衝突すると、非常に基本的なアーケードの衝突が行われます(車は単にそこから押し出されます) これが衝突が起こったと思う方法です: トラック全体は、巨大な3Dベジェ曲線と見なすことができます。そのカーブから、道路のポリゴンを生成できます(カーブから生成された前面、左、上方向のベクトルを使用)。他の要素(家、木など)も、この方法を使用して配置および整列できます。 次に、衝突を処理する(そして車を引く)には: 1)現在の車の3D位置から3Dカーブ上の最も近い位置を見つけます。つまり、3D車の位置をベジェカーブの位置に変換します。道路上のすべての3D位置は、3Dカーブに沿った変位(t)+横変位(d)と見なすことができます。はっきりしない場合は、下の画像を確認してください(これは2Dの例ですが、3Dにも簡単に当てはまります)。 t = 0の場合、トラックセクションの先頭にあり、t = 1の場合、末尾にあります。d = -1または1台の車がトラックの境界にある場合、d = 0台の車が道路の真ん中にある場合 2)を用いて道路に車を位置合わせtし、d(非常に簡単:いずれかのt及びd値iは3D位置+アップ/正面/左ベクトルを得ることができます)。車は今道路に接着されています 3)d車の横変位を確認します。値が大きすぎる場合(d > 1)や低すぎる場合は、(d < -1)車が軌道から外れています。クリップして、車を正しい場所に置いてください。 これにより、3Dカリングも非常に簡単になり、現在の車のt位置からまでトラックを描くだけt + some_big_enough_value_to_avoid_visible_clippingです。 あるいは、私が完全に間違っているかもしれません。車の衝突(境界ボックス)と、トラックを表す非常に簡略化されたポリゴンのセット(建物などなし)をチェックするだけの方が、はるかに速く簡単でした。3Dワールド(および結果のコリジョンモデル)は、いくつかのサードパーティツール(ゲームの実行時に3Dカーブはなく、一連のポリゴンのみ)を使用して、以前に単純に生成されていました。

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