ゲーム開発

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

3
Unityスキルは譲渡可能ですか?
現在、Unityを学び、ビデオゲームの数学入門書のテキストを学習しています。 私の目標は、WebGL用のレーシングゲームを作成することです(Three.jsおよび場合によってはPhysic.jsを使用)。 Unityプログラムは、あなたが何が起こっているのか、そして単純なビデオゲームを開発するのに付随する多くの不愉快な仕事からあなたを保護することをよく知っていますが、多くのUnityチュートリアルを通して力を尽くすと、私が学んだスキルは他のフレームワーク/エンジンに翻訳されますか? 私はWebGLを使用したレベル設計にかなり精通しており、優れた3Dモデラーです。私の弱点は間違いなくAIと物理学です。 私は急速に数学を急いでいますが、物理学は紛れもなく興味深いのですが、その時間はたった1時間しかなく、この種のことを処理するためのエンジンがたくさんあります。 AIは私にとってより魅力的であり、より必要です。AIはゲームごとに劇的に変化し、開発中に大幅に調整され、物理学はずっと一定です。 UnityのAIコンセプトを活用することで、この知識をどこにでも転送できるようになりますか?または、これらのスキルでUnityクリークをパドリングするだけですか?
16 unity  career 

4
Unityを使用してプレーヤーの動きを3Dオブジェクトの表面に制限するにはどうすればよいですか?
マリオギャラクシーやジオメトリウォーズ3に似たエフェクトを作成しようとしています。プレイヤーが「惑星」の重力を歩き回ると、重力のようにオブジェクトの端から落ちません。一方向に修正されました。 (ソース:gameskinny.com) 私は、重力を持たなければならないオブジェクトが他の剛体を引き寄せるアプローチを使用して、探しているものに近いものを実装することができましたが、Unityの組み込みの物理エンジンを使用して、AddForceなどで動きを適用し、運動を正しく感じることができませんでした。プレイヤーがオブジェクトの表面から飛び始めない限り、プレイヤーを十分に速く動かすことができず、これに対応するために加えられた力と重力の良いバランスを見つけることができませんでした。私の現在の実装は、ここで見つかったものの適応です ソリューションがおそらく物理学を使用して、プレイヤーがサーフェスを離れる場合にオブジェクトに接地するようにしますが、プレイヤーが接地されたら、プレイヤーをサーフェスにスナップして物理学をオフにし、他の方法でプレイヤーを制御しますが、私には本当にわかりません。 プレーヤーをオブジェクトの表面にスナップするには、どのようなアプローチをとるべきですか?ソリューションは(2Dではなく)3D空間で動作し、Unityの無料バージョンを使用して実装できる必要があることに注意してください。
16 unity  physics  control 

5
リアルタイム戦略ゲームのネットワーキング
私は自分が取っているコンピューターサイエンスコースのリアルタイム戦略ゲームを開発しています。それのより難しい側面の1つは、クライアントとサーバーのネットワーキングと同期であるようです。このトピック(1500人の射手を含む)を読みましたが、他のモデル(たとえばLAN経由)とは対照的に、クライアント/サーバーアプローチを採用することにしました。 このリアルタイム戦略ゲームにはいくつかの問題があります。ありがたいことに、プレーヤーが行うすべてのアクションは決定論的です。ただし、スケジュールされた間隔で発生するイベントがあります。たとえば、ゲームはタイルで構成されており、プレイヤーがタイルを取得すると、そのタイルの値である「エネルギーレベル」は取得後1秒ごとに増加します。これは、私のユースケースを正当化する非常に簡単な説明です。 現在、サーバーにパケットを送信して応答を待つシンクライアントを実行しています。ただし、いくつかの問題があります。 プレイヤー間のゲームがエンドゲームに発展すると、毎秒50を超えるイベントが発生することが多く(前述のスケジュールされたイベントにより、蓄積されます)、同期エラーが発生し始めます。私の最大の問題は、クライアント間の状態のわずかな逸脱でさえ、クライアントが異なる決定を意味する可能性があり、それが完全に別個のゲームに雪だるま式になるということです。もう1つの問題(現時点ではそれほど重要ではありません)は、待ち時間があり、結果を確認するために移動してから数ミリ秒、さらには数秒待つ必要があることです。 これをエンドユーザーにとってより簡単に、より速く、より楽しくするためにどのような戦略とアルゴリズムを使用できるのだろうかと考えています。これは、1秒あたりのイベント数が多く、ゲームごとに複数のプレイヤーがいることを考えると、特に興味深いものです。 TL; DRが1秒あたり50イベントを超えるRTSを作成している場合、クライアントを同期するにはどうすればよいですか?

6
ユニット選択サークルをマージする方法は?
サークル選択をマージすることでこの効果をどのように実現するか知りたい 説明する画像は次のとおりです。 基本的に私はこの効果を探しています: サークルのマージ効果はどのように達成できますか?この効果に関する説明は見つかりませんでした。これらのテクスチャを投影するために、デカールシステムを開発できることは知っていますが、マージエフェクトを作成する方法はわかりません。 可能であれば、純粋なシェーダーソリューションを探しています。

1
Google Playで購入したものをモックするにはどうすればよいですか?
ユーザーがGoogle Playを介してアイテム/パワーアップを購入し、実際のお金で購入した場合、機能をテストするためのベストプラクティスを教えてください。 たとえば、基本的に、ゲームマネーを使用して、ゲーム中にインベントリに格納されたアイテムを購入および保存する簡単なテストを作成します。(たとえば、Final FantasyシリーズのGil や、PlayStation 1のTron Bonneの Zenny)、Unity3DまたはEclipse w / LibGDXライブラリでプログラミングしているときに、ゲームマネー経由でのみお金を購入する方法を知っています。 さて、実際にお金を使ってパワーアップアイテムを実際に購入するかどうかをユーザーに確認するプログラムを作成しなければならないとしましょう。次に、システムはオンライン状態を確認する必要があります。接続されている場合、単にGoogle Playダイアログに移動し、ユーザーにアイテムの購入を続行するかどうかを尋ねます。はい、クレジットカードの残高が十分な場合、ゲームアプリに戻り、ブール値がtrueを返すかどうかを確認します。ユーザーが購入したアイテムは保存されます。 もう1つの例は、実際のお金の量がプログラミングを介して計算され、不十分な場合、ユーザーはGoogle Playで購入することでより多くの実際のお金の価値を追加するように要求することです。trueを返す場合、リアルマネーの値がリロードされます。 この概念は、基本的にゲーム開発者に必要です。ただし、この機能とともにGoogle Playでゲームアプリを実際に公開する前に、クレジットカードの値などを使用せずに、実際のお金の購入テストをテストする安全な方法はありますか?このためのチュートリアル、スタートアップガイド、推奨事項などはありますか?どうやって始めればいいのか知りたいです。ありがとうございました。

2
画面を回転させてもAndroidアプリケーションが回転しないのはなぜですか
LibGDXでゲームを構築していますが、ゲーム画面の向きは横向きです。横向きにしたいのですが、ユーザーがデバイスを反対側にひっくり返せるようにして、画面がそれに合わせて回転するようにします。私のアプリケーションはそれを拒否し、それを修正するために何をすべきかわかりません。加速度計とコンパスをオンにしてみました(コンパスには何も期待していませんでした)が、何も変わりませんでした。何か案は?
16 android  libgdx 

3
照明計算のための二乗半径と逆二乗半径の有用性は何ですか?
「DirectX 11 Rendering in Battlefield 3」PowerPointのスライドの1つで、次のコードに気付きました。 struct Light { float3 pos; float sqrRadius; float3 color; float invSqrRadius; } 単に半径を保存するのではなく、なぜ半径の2乗、さらには逆2乗(単に1の2乗の半径)を保存するのか理解できません。彼らは計算でこのデータをどのように使用していますか?さらに、コーンライトとラインライトはどうですか?この構造体はポイントライト専用である必要があります。他のタイプでは機能しないことがわかります-データが十分ではありません。それでも、私は彼らがその正方形とinvSquareをどのように使用しているかを知りたいです。 更新: OK これは、ネット上で簡単に見つけられる古典的な光減衰方程式です。 float3 lightVector = lightPosition - surfacePosition; float attenuation = saturate(1 - length(lightVector)/lightRadius); これをlength(lightVector)実際に行っているので、比較的コストがかかります。 length(lightVector) = sqrt(dot(lightVector, lightVector); さらに、分割操作(/lightRadius)も非常にコストがかかります。 この方法で光の減衰を計算する代わりに、次の方法で計算できます。これははるかに高速です。 attenuation = saturate(1 - dot(lightVector, lightVector)*invRadiusSqr); invRadiusSqrはCPUレベルで事前に計算され、シェーダー定数として渡されます。 さらに、結果として(前者の場合は線形ではなく)2次光減衰が得られます。これは、IRL光が2次減衰を示すため、さらに優れています。 皆さん、助けてくれてありがとう!
16 lighting 

2
ドット積を使用して2つのベクトル間の角度を取得するにはどうすればよいですか?
ゲームで正規化されたベクトルを使用することを学んでいます。 2つのベクトル間の角度を知るために、ドット積を使用できることを学びました。これにより、-1〜1の値が得られます。 1は、ベクトルが平行で同じ方向を向いていることを意味します(角度は180度です)。 -1は、それらが平行で反対方向を向いていることを意味します(180度のまま)。 0 それらの間の角度が90度であることを意味します。 2つのベクトルのドット積を実際の角度(度単位)に変換する方法を知りたい。たとえば、2つのベクトルの内積がの0.28場合、対応する角度は0〜360度ですか?

2
OpenGLで制限された(256)カラーパレットをシミュレートするにはどうすればよいですか?
Twitterで、開発中のゲームの次のスクリーンショットを見つけました。 上の画像には色の制限がないようです。しかし、下部にある他の2つの画像には256色のパレットがあります。 私はで同様の効果を達成したい私のゲームを(私はOpenGLを使用しています)。どうすればできますか?
16 opengl  webgl 

2
ゲーム開発には独自の種類のモデリングがありますか?
この投稿を改善したいですか?引用や回答が正しい理由の説明など、この質問に対する詳細な回答を提供します。十分な詳細のない回答は、編集または削除できます。 UMLなど:一般的なコンピュータサイエンスでは、「言語」(標準作図テクニックを読んで)モデリングがある1、2 ERDのようなものがあるデータベースでは、3をビジネスにBPMNなどの他の種類があり、4、5。ゲームデザイン固有のこれらのようなものはありますか?

1
Unity 2Dを使用してピクセルアートゲームを作成できますか?
Unity 4.3で導入された新しい2D機能を検討していますが、何か不足している可能性があります。 私には、スプライトのスケーリングは問題ない高解像度2Dゲーム用に設計されているように見えますが、ピクセルアートゲームには適していません。 ピクセルアートスプライトは、画面上に正確に1:1ピクセルで表示されるように設計されています。スケーリングによって破壊されます(リニアアップスケーリングは例外です。つまり、2x、3x、4xなどにスケーリングできます)。 しかし、私は「そのまま表示する」方法を見つけられませんでした、明らかにUnityはそれが適切だと思う解像度にスケーリングすることを主張しています:Camera.sizeパラメータとスプライトの「pixels to units」パラメータを制御することができます、しかし、私はこの結果を得ることができませんでした。
16 2d  unity  sprites  pixel  pixel-art 


1
最新のシャドウレンダリングテクニック?
シャドウレンダリングの観点から見た最新技術とは何ですか?私のターゲットは、OpenGL 3.2です。それが重要な場合、遅延レンダリングパイプラインを使用します。 シャドウレンダリングを検討してから何年も経ちましたが、当時はステンシルからさまざまなシャドウマッピング手法まで、数多くの手法が利用可能でした。当時、レンダリングシャドウには、CPUによって制御される個別のレンダリングパスが必要でした。しかし、最近、シャドウを含めてシーンが完全にGPUでレンダリングされるデモを見ました。それがどのように達成されたのか、あるいは(技術デモを超えて)それを行うのが妥当なことであるかどうかはわかりません。 インターネット上の古い情報が大量にあることを考えると、最近人々がどのような方法を使用しているか、そしてどのくらいGPUにプッシュできるかを知りたいと思います(私のOpenGLバージョンがサポートしていると仮定して)。
16 opengl  shadows 

3
CPU-GPUメモリデータフロー[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 6年前に閉鎖されました。 私は初心者のグラフィックプログラマで、最近疑問に思っています-モデルデータ(メッシュとマテリアル)はアプリケーション(CPUメモリ)からグラフィックカード(GPUメモリ)にどのように流れますか?静的モデル(建物など)があり、一度ロードしてセットアップすると、アプリの有効期間中は変更されません。 そのデータはGPUメモリに一度だけ送信され、永遠にそこに座っていますか? モデルが各フレームで実際にレンダリングされるとき、GPUプロセッサはGPUメモリから毎回そのデータをフェッチする必要がありますか?つまり、2つのモデルをそれぞれ複数回レンダリングした場合、最初のモデルを複数回レンダリングしてから2番目のモデルを複数回レンダリングするか、最初のモデルを1回だけレンダリングし、2番目のモデルを1回だけレンダリングして、そのようにインターリーブし続けましたか?この意味で、この質問を「内部GPUデータフロー」と呼ぶことができます。 明らかにグラフィックカードのRAMは限られています-1フレームのレンダリングに必要なすべてのモデルデータを保持できない場合、フレームごとにCPU RAMから(一部)を取得し続けると思いますが、それは正しいですか? インターネットにはこれに関する本や資料がたくさんあることは知っていますが、このデータフローを管理する方法に関する簡単な一般的なガイドラインがあります(何をいつ送信し、いつ、どのようにレンダリングするか)。 編集: 私は1つの区別をするのを忘れ:ありますGPUにデータを送信し、そこの設定/電流としてバッファを結合。後者はデータフローを引き起こしますか? Edit2: Raxvanの投稿を読んだ後、いくつかのアクションを区別したいと思います。 初期化によるバッファ作成 バッファデータの更新(データがCPUラムに保持されている場合は簡単で、GPUラムに保持されている場合はGPUからCPUラムにフェッチする必要があります) バッファをアクティブとしてバインドします(これは、次の描画呼び出しでこのバッファをレンダリングすることをAPIに伝える方法であり、それ自体では何もしませんか?) API draw call(ここで実際に何が起こるかをお聞きしたい)

2
ベアOpenGLは、小規模開発者にフレームワーク/エンジンに対してどのような利点を提供しますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 私は、インディー開発者がフレームワークとエンジンから離れ、ベアOpenGLを使用するか、SDL / SFML2と組み合わせて使用​​する傾向にあることに気付きました。インディー開発者として、低レベルのOpenGLが個別のエンジンまたはフレームワークで提供できるものがわかりません。 ほとんどのきちんとしたエンジンとフレームワークは、必要な機能を提供し、邪魔をしません。また、OpenGLを直接処理するオプションを開く場合があります。クロスプラットフォームをコンパイルする機能を提供するものさえあります! 私はボンネットの下で何が起こっているかを学ぶという願望を理解していますが、OpenGLがエンジンやフレームワークを介してインディー開発者に提供するかもしれない利点を見ることができません。 OpenGLを使用してゼロからゲームを構築する背後にある理由を説明できますか?
16 opengl  c++ 

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