ゲーム開発

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

3
クロスプラットフォームのマルチプレイヤーゲームが存在できないのはなぜですか?
少なくとも、なぜそれらを作るのがそれほど難しいのですか?-それがAAAスタジオでさえ、彼らのゲームでこの偉業を成し遂げなかった理由であると仮定します。特に、Xbox、PS4、およびPCで構築できるUnrealやUnityなどの最新のクロスプラットフォームゲームエンジンでは、なぜこれがまだ大規模に行われていないのですか? たとえば、Diablo IIIはさまざまなプラットフォームでリリースされるゲームです。これは、世界で最も裕福なビデオゲーム会社の1つであるブリザードの製品ですが、XboxプレーヤーをPCを使用して誰かとプレイすることはできません。

4
グローバルオークションハウスまたは個別のオークショントレーダーの経済的なデザインの違いは何ですか?
私はThe Elder Scrolls:Tamriel Unlimitedをプレイしていて、そこには地元のオークションハウスがあります。(オークションはありませんが、次のテキストでは混乱しないようにこの用語を使用しています。) ギルド(これらのAHを所有している)が独自の小さな経済を確立できるという利点がわかります。これは素晴らしい機能です。 一方、私は常にいくつかのギルドトレーダーをチェックして、どれが最低価格で私の検索したアイテムを提供しているかを確認する必要があります。 フォーラムでは、グローバルオークションハウスを導入する必要があるかどうかについて、人々が激しい議論を繰り広げています。これには長所と短所もあるかもしれませんが、私はこのゲームデザインにあまり関与していないので、そのための心を実際に設定することはできません。 グローバルAHはより規制された市場につながり、使いやすく、売り手はより広い聴衆に到達するという支持者の主張(読み取り:アイテムを入れると、買い手がいる可能性があることを確信できます。) 一方、これは本当に便利なアイテムだけが大幅に値上がりし、一般的な中古アイテムは通常の販売価格まで値下げされると批評家は言う。 しかし、これらの懸念は本当に本当ですか?グローバルAHの導入は、ゲームの経済に本当に大きな影響を与えるでしょうか?そして、もしそうなら、彼らは価格を均一にする傾向がありますか、それとも本当にほとんどのアイテムを販売するのに役に立たないでしょうか? また、逆も言えます。ゲームにすでにグローバルAHがある場合、ローカルのオークションハウスに置き換えた場合、どのような影響がありますか? グローバルまたはローカルのオークションハウスシステムを導入した場合、ゲームとプレーヤーの経済の違いは何ですか? 明確にするために:私はこれをThe Elder Scrolls:Tamriel Unlimitedの問題について尋ねます。しかし、これを他のゲームの対象にすることもできます。(これは開発者の決定のためのより理論的な質問になるはずです。)

2
特定のピクセルを書き込まないようにフラグメントシェーダーに指示するにはどうすればよいですか?
WebGLでは、フラグメントシェーダーによって処理される画面スペースクワッドを送信しますが、フラグメントシェーダーに特定の条件下でのみピクセルを書き出させます(たとえば...円の中にあるか、ピクセルは、曲線方程式などで定義された半空間の正の側に属しています。 フラグメントシェーダー内で「ピクセルを書き込まない」と言うことは可能ですか? これは、アルファブレンディング、これを最初にレンダリングし、ピクセルを描画したくない場所に背景色を配置したり、深度バッファやステンシルバッファでいくつかのトリックを行うなど、他のさまざまな方法を使用して実現できることを知っています。また、レンダリングしたいものと一致するジオメトリの束を作成できることも知っています。 フラグメントシェーダーにピクセルをまったく書き込まないように選択する方法はありますか?


6
カメラビューの外側にあるゲームオブジェクトは、Unityのコンピューター/モバイルリソースを消費しますか?
一体で、カメラに表示されず、ゲームの実行中にレンダリングされないゲームオブジェクトがシーンにあるとします。 これらのゲームオブジェクトは、ゲームの実行中にコンピューター/モバイルリソースを消費しますか? このような使用法の詳細はどこにありますか?

2
SpriteKitはMVCパターンに従っていますか?
私は現在、Old Frankと呼ばれるiOSプロジェクトに取り組んでおり、MVCのデザインパターンに従っています。 その要点です。 GameObjects(model) <- Scene(controller) -> Sprites "SpriteKit" (View) MVCを正しく理解していると、MVCをフォローしたい場合にSpriteKitが提供する機能の多くを使用できなくなります。たとえば、any SKAction、衝突検出など。 ゲームオブジェクトが配置されているモデルと、他のオブジェクトに触れたときの反応はどうでしょうか?時間の経過とともに位置を決定するのはモデル次第ではありませんか? レンダリング以外にMVCの「ビュー」として使用しても問題ないと思われるSpriteKitの部分はありますか?


2
自然に見えるボクセルを作る方法
ボクセルゲームを開発していますが、間違ったテクニックを使用しているようです。私は現在、ブロックを作成するためにフラットタイルを使用しています。 自然に地形が見えるボクセルゲームを見ました。つまり、非ブロック性です。ゲームは1立方メートルあたり4 * 4 * 4のブロックがあり、土、砂、石などのブロックは丸いエッジを持ち、一種の溶け合いを持っています(通常のゲームのように)。こちらがスクリーンショットです これはどのように達成されますか?

2
幅または高さを満たす塗りつぶしUnity正方形
私はこの要件でボードを作成しようとしています: 正方形である必要があります。 利用可能な幅または高さに合わせる必要があります。 キャンバスの中央に配置する必要があります。 必要に応じて、追加の中間キャンバスにラップできます。 私はアンカーで遊んでいますが、それを行うための組み合わせを見つけていません。私が考えることができる唯一の解決策は、コンテナのある種の「OnResize」をスクリプト化し、ボードのサイズをプログラムで設定することです。 これがオリジナルのレイアウトです。(1)はBoardCanvasです。(2)は取締役会です。 画面が高くなると正方形が大きくなりますが、正方形のままです。 または削減: ただし、上記の例では上端と下端にスナップしていますが、垂直方向のスペースが使用可能な幅よりも高くなる場合、正方形が左と右の境界に応じてサイズを制限することも必要です。 Q1:アンカー/ピボットでこれを行う方法はありますか?動作する場合は、BoardCanvasとBoard自体の間に中間キャンバスを作成してもかまいません。 Q2:その場合、アンカーをどこに配置すればよいですか?中間オブジェクトが必要ですか? Q3:そうでない場合、スクリプトで解決策はありますか?キャンバスに処理するOnResizeはありますか?リストにサイズ変更イベントが表示されませんが、どこを探したらよいかわかりません。すべてのフレームでそれをテストすることは少しやり過ぎに思え、イベント駆動がより良いように思えます ありがとう!

1
GLSLフラグメントシェーダーでこの種のリップルを実装する方法は?
だから私はすでに反射部分を実装しました: uniform sampler2D texture; uniform vec2 resolution; uniform vec3 overlayColor; void main() { vec2 uv = gl_FragCoord.xy / resolution.xy; if (uv.y > 0.3)// is air - no reflection or effect { gl_FragColor = texture2D(texture, vec2(uv.x, uv.y)); } else { // Compute the mirror effect. vec4 color = texture2D(texture, vec2(uv.x, 0.6 …

2
OpenGLのダイレクトステートアクセスメカニズムの利点は何ですか?
私はopengl.orgで OpenGL 4.5ダイレクトステートアクセス(DSA)について読んでいますが、正しく機能しているかどうかはわかりません。 古い方法は効率が悪いことを暗示しているようです: glBind(something) glSetA(..) glSetB(..) glSetC(..) 新しい方法より: glSetA(something, ..) glSetB(something, ..) glSetC(something, ..) その見た目から、それぞれglSetがglBind(something)その内部に含まれている必要があり、OpenGLがまだ状態マシンである場合、単一のに適用されたストリーム化された変更を利用できませんsomething。 新しいDSAの背後にある理由と利点を説明してください。
11 opengl 

2
Phaserを使用してスプライトシートから特定のスプライトを表示する
HTML5 JSフレームワークであるPhaserを使ってカードゲームを作ろうとしています。私はひどいアーティストで自分ではデザインできないので、オンラインで見つけたトランプの画像の無料のスプライトシートを使用しています。問題は、Phaserを使用して個々のカードを表示する方法を理解できないようです。 以前使用していたフレームワークでは、使用した大きなスプライトシートから小さなスプライトを個別に作成できました。しかし、それが可能であれば、私はPhaserでそれを行う方法を理解できません。 したがって、画像をスプライトシートとしてロードすることを検討しましたが、スプライトシートはアニメーションのみに使用されているようで、スプライトシートの特定の「フレーム」を実際に表示することはできません(私が間違っている場合は修正してください)。 私がする必要があるのはタイルマップとして画像をロードすることだと思いますが、私が使用している特定の画像には、レイアウトを指定するjsonファイルが付属していませんでした。javascriptの初心者なので、Phaserのソースコードを読んでjsonファイルのフォーマットを確認するのに問題があります。 要約すると、マップデータを指定するjsonファイルがない場合、Phaserでトランプのスプライトシートの個々のカードを表示する最良の方法は何ですか?

2
完全に動的なKD-Tree対Quadtree?
私のゲームで作業しているときに、私は世界のすべてのユニットを追跡して、最近傍の戦闘をチェックできるようにする必要があります。これはRTSのようなゲームで、数千もの小さな自動化ユニットが動き回る可能性があります。 私はKD-TreesとQuadtrees(特にPoint Quadtrees)を調べてきました。私はまだそれらがどのように機能するかの詳細を学習しようとしていますが、これまでのところポイントクワッドツリーは私にとって最も理にかなっています。ただし、KD-Treeの方が検索が高速であるという印象を得ています。これは、ツリー内に持つポイントの数にとって重要です。 一方、私の場合は、常に動いている多数のユニットを追跡します。フレームごとに、それらの位置は常に異なります。四分木はKD-Treeよりも明らかに高速にリバランスしますが、ツリー内のすべてのポイントをリバランスするときにそれが当てはまるかどうかはわかりません。 この場合、ツリーのすべてのポイントのバランスを再調整するのではなく、各フレームのツリーをスクラップして最初から再構築する方がよいのではないかと思います。クワッドツリーの再バランスが速い場合、ゼロから構築する方が速いということですか?もしそうなら、それは、KD-Treeの検索速度よりもパフォーマンスにとってより重要かもしれません。ツリーを作成することの負担の大きさにもよりますが、私にはわかりません...
11 rts  quadtree  kd-tree 

1
グラフベースのマテリアルシステムで、さまざまな入力および出力タイプをどのようにサポートできますか?
私のようなどのように材料系のまわりで私の頭をラップしようとしているこの、これは実装されています。これらの強力でユーザーフレンドリーなグラフのようなシステムは、プログラマーと非プログラマーの両方がシェーダーをすばやく作成できるようにする方法として比較的一般的であるようです。ただし、グラフィックスプログラミングの私の比較的限られた経験から、私はそれらがどのように機能するか完全にはわかりません。 バックグラウンド: そのため、以前に単純な OpenGLレンダリングシステムをプログラミングしたことがある場合は、通常、手動で作成した静的GLSLファイルからシェーダーを読み込み、コンパイル、リンクするMaterialクラスを作成します。また、通常、このクラスを、GLSLの統一変数にアクセスするための単純なラッパーとして作成します。簡単な例として、基本的な頂点シェーダーとフラグメントシェーダーがあり、テクスチャを渡すための追加の均一なTexture2Dがあるとします。私のMaterialクラスは、これら2つのシェーダーをマテリアルに読み込んでコンパイルし、その時点から、そのシェーダーのTexture2Dユニフォームを読み書きするための単純なインターフェイスを公開します。 このシステムをもう少し柔軟にするために、私は通常、任意の名前/タイプのユニフォームを渡すことができるようにシステムを記述します[ie:SetUniform_Vec4( "AmbientColor"、colorVec4);]。これは均一な材料中に存在する場合、「colorVec4」と呼ばれる特定の4DベクトルにAmbientColorを均一に設定します。]。 class Material { private: int shaderID; string vertShaderPath; string fragSahderPath; void loadShaderFiles(); //load shaders from files at internal paths. void buildMaterial(); //link, compile, buffer with OpenGL, etc. public: void SetGenericUniform( string uniformName, int param ); void SetGenericUniform( string uniformName, float param ); void SetGenericUniform( …


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