ゲーム開発

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

2
エンティティIDシステムを使用する利点は何ですか?
現在、Programming Game AI By Exampleという本を読んでいます。 この本では、ゲーム内の各エンティティに一意のID番号を割り当てることに言及しています。場合エンティティしばしばAのニーズコンタクトエンティティにB、Aが参照なるBを送信することによってBへのID番号をEntityDatabaseのクラス。このクラスはID番号を受け取り、エンティティへの参照を返します。 一部のエンティティのID番号は、一部のエンティティ(メインのゲームキャラクター)のIDを含むファイルから取得することもできます。 私の質問は次のとおりです。なぜこれを行うのでしょうか?参照を直接操作できないのはなぜですか?直接参照を取得するのは難しいですか?IDシステムの使用は一般的なアプローチですか?IDを使用しないゲームはありますか? ゲーム開発は初めてです。エンティティIDシステムを使用する利点を説明してください。長所と短所。具体的な例は素晴らしいでしょう。ありがとう

6
APKを実行するとAndroidのパフォーマンスが低下し、ブラウザで正常に実行されます
Phaserエンジンを使用してHTML5で小さなゲームプロジェクトを作成しました(1.1.5と1.1.6の両方を試しました)。次に、モバイルプラットフォームに移植するために、Windows Phone 8、Android、iOSでPhonegap / Cordovaを使用しました。 私のゲームには、アニメーション化された(ポイントaからポイントbに移動し、同時に回転する)約10個の要素があります。iOSおよびWindows Phone 8では、問題は発生しませんでした。 しかし、Androidでは、パフォーマンスは受け入れられません。一方、デバイスブラウザーを介してゲームを実行すると、遅延なくスムーズに実行されます。しかし、コンパイルされたAPKは非常にぎくしゃくして動作し、要素の動きは非常に遅く、ちらつきます。 マニフェストファイルで、Androidハードウェアアクセラレーションフラグが「true」に設定されていることを確認しました。falseに変更しようとしましたが、パフォーマンスの変化は反映されませんでした。 Samsung S2デバイスのAndroid 4.2でも同じことを確認しましたが、そのパフォーマンスは向上しています。しかし、Asus Nexus Tab 7(Android 4.4を実行している)では非常にぎくしゃくしていますが、OSとデバイスはどちらも最新です。また、Android 4.3(Samsung Galaxy Grand Duos)を実行している別のデバイスで確認しましたが、そのパフォーマンスもまったく良くありません。 私のゲームではWebGLとCanvasの両方のレンダリングを試みました(PhaserエンジンはPixi.jsを使用しますが、WebGLがサポートされていない場合は2dキャンバスにフォールバックします)が、変更はありません。イーゼルjsでも同様です。 他の誰かが同様の問題に直面し、ネイティブのようなパフォーマンスを得る方法を提案できる場合。cocoonjsの例を確認しましたが、滑らかで許容できるように見えますが、そのルートに行くことはできません。

1
クリップスペースが常に「同種のクリップスペース」と呼ばれるのはなぜですか?
これまでに読んだほとんどすべてのことに、「クリップスペース」という用語の前に「同種」という語が付いていることに気付きました。今では、おおむね「すべて同じ」という意味であることを理解していますが、「同種のクリップスペース」と言う必要があるのはなぜかわかりません。クリップ空間が均一でないのはなぜですか?なぜ差別化する必要があるのですか?さらに言えば、それを「同種のクリップスペース」と呼んでいるのはどういう意味ですか?何に関して同質ですか?頂点はどのように「すべて同じ」ですか?
12 spaces 

4
LibGDXで透明なPNGをレンダリングするにはどうすればよいですか?
LibGDXを使用して、簡単な三目並べの例を作成しています。シンプルな画像があります:クロス、サークル、ボード、すべてpngGIMPで作成され、背景が透明です。 それらTextureを透明度付きでレンダリングするにはどうすればよいですか? GL10の有効化機能を試しましたが、機能しないようです。

2
「距離フィールド」とは何ですか?また、衝突検出にどのように適用できますか?
「距離フィールド」に出くわしたとき、静的オブジェクトと動的オブジェクトの両方を含むシーンでの衝突検出のためのいくつかの効率的な方法を見ていました。 この概念を検索して理解しようとしましたが、非常に複雑な言語で書かれた論文しか見つけることができませんでした。距離フィールドとは何か、どのようにそれらを衝突検出に使用できるのか、誰かが簡単な言葉で説明できますか?

1
長方形のブロックから曲面を作成するにはどうすればよいですか?
以下のためにダイナマイトゲーム様、私はこのように、曲線をたどるブロックを作りたいです。 ブロックがボールに当たると消えます。 なんとか水平に描くことができましたが、パスをたどることができません。 どうすればいいですか?カスタム頂点を持つBox2Dオブジェクトを作成する必要がありますか?

3
凸多角形を追加および削除するにはどうすればよいですか?
2つの2D凸ポリゴンが互いに重なり合っています。それらを減算して追加するアルゴリズムを探しています。結果は、単一の凹多角形、または(さらに良い)凹結果を形成する最大の凸多角形(三角形など)でなければなりません。 (左:最初に重なり合うポリゴン。中央:追加後の凹型ポリゴン。右:凹型結果を形成する凸型ポリゴンのセット。パフォーマンス上の理由から、三角形よりも大きい凸型ポリゴンを取得することをお勧めします。 2つの重なり合うポリゴンは、左側と同じ画像になりますが、重なり合う領域は結果のポリゴンの一部ではありません。) これどうやってするの?
12 algorithm 

1
さまざまな移動タイプを処理する経路探索アルゴリズムはありますか?
私はBattleTechボードゲームシミュレーターhttp://en.wikipedia.org/wiki/BattleTechのボットを開発しています。これはターンベースです。 ボードは六角形に分割され、それぞれが異なる地形タイプと標高を持っています。他のロボットを破壊するには、それらの上を移動するロボットを運転します。 ダイクストラとA *のパスファインディングアルゴリズムしか知りませんが、問題は3種類の動きがあることです:いくつかの六角形を歩く、走る、ジャンプする(それぞれに独自のルールがあります)。ウォークアンドランはほぼ同じです。 最適なパスは、組み合わせまたは各移動タイプです。マップの例はこちらhttp://megamek.info/sites/default/files/isometric_view.png この複雑な経路探索に適したアルゴリズム、または各運動タイプのA *結果を組み合わせる方法を知っていますか?

1
Substanceのランタイムテクスチャキャッシングを停止するにはどうすればよいですか?
サブスタンスエンジンを使用したプロシージャルテクスチャは、キャッシュをオフにし、公開された変数を一度に1つずつ変更し、頻繁に変更し、さらに2、3回変更を試みた後でさえ、非常に迅速に更新されるようです。 ただし、基本的には反対です。たとえば、ユニットには、ダメージを受けたときに異なる方法で血液を生成する「血液」変数と、傷やへこみを生成するが治癒しても元に戻らない「戦闘服」変数があります。 そのため、変数がキャッシュされないようにするには、変数をダミー値に設定し、通常に戻してからを呼び出す必要がありますRebuildTexturesImmediately。 実行時にSubstanceに変数をキャッシュしないように指示するにはどうすればよいですか?一度変更すると、テクスチャをすばやく再生成できますか?

4
錐台内に収まる最大の球を見つけるにはどうすればよいですか?
遠近法で描くことができる最大の球をどのように見つけますか? 上から見ると、次のようになります。 追加:右側の錐台に、私たちが何か知っていると思う4つのポイントをマークしました。錐台の8つの角すべて、および近端と遠端の中心の投影を解除できます。したがって、ポイント1、3、および4がわかります。また、ポイント2は3から4までの距離と同じ距離であることがわかります。センター?しかし、実際の数学とコードは私を免れます。 モデル(ほぼ球形で、ミニボールの境界球を持っている)をできるだけ大きく描きたい。 更新: boboboboとNathan Reedが示唆するように、 2平面上の円内アプローチを実装しようとしました。 function getFrustumsInsphere(viewport,invMvpMatrix) { var midX = viewport[0]+viewport[2]/2, midY = viewport[1]+viewport[3]/2, centre = unproject(midX,midY,null,null,viewport,invMvpMatrix), incircle = function(a,b) { var c = ray_ray_closest_point_3(a,b); a = a[1]; // far clip plane b = b[1]; // far clip plane c = c[1]; // camera var A …
12 geometry 

1
オブジェクトを保持するためにPoolクラスが必要なのはいつですか?
私はopengl esを研究してきましたが、私が見た例は、「Pool」クラスを使用してタッチイベントとキーボードイベントを追跡することでした。 誰かがプールクラスが必要な方法と理由を説明してください。私が読んでいたことから、それはガベージコレクションと関係があり、作成される入力クラスの数を制限していました。 これはすべて抽象的であるように思えるので、もし誰かが何が起こっているのか説明してもらえたら、ありがたいです。ここにいくつかのコードを貼り付けます。 public Pool(PoolObjectFactory < T > factory, int maxSize) { this.factory = factory; this.maxSize = maxSize; this.freeObjects = new ArrayList < T > (maxSize); } public T newObject() { T object = null ; if (freeObjects.isEmpty()) object = factory.createObject(); else object = freeObjects.remove(freeObjects.size() - 1); return object; …

3
2.5Dゲーム用カメラ
私は5歳のように誰かにこれを説明できることを望んでいます。何時間もこれに苦労してきたし、私が間違っていることを理解できないからです。 Camera2.5Dゲームのクラスを作成しました。意図は、次のようなワールドおよびスクリーンスペースをサポートすることです。 カメラは右側の黒いものです。その画像では、+ Z軸は上向きで、-Zは下向きです。ご覧のとおり、ワールド空間と画面空間の両方の左上に(0、0)があります。 カメラが期待どおりに動作していることを証明するために、いくつかの単体テストを書き始めました。私のテストでは、ワールド、ビュー、およびスクリーンスペースで座標をプロットします。最終的には、イメージ比較を使用してそれらが正しいことを断言しますが、今のところ、テストでは結果を表示するだけです。 レンダリングロジックはCamera.ViewMatrix、ワールド空間を表示空間Camera.WorldPointToScreenに変換し、ワールド空間を画面空間に変換するために使用します。 テストの例を次に示します。 [Fact] public void foo() { var camera = new Camera(new Viewport(0, 0, 250, 100)); DrawingVisual worldRender; DrawingVisual viewRender; DrawingVisual screenRender; this.Render(camera, out worldRender, out viewRender, out screenRender, new Vector3(30, 0, 0), new Vector3(30, 40, 0)); this.ShowRenders(camera, worldRender, viewRender, screenRender); } このテストを実行すると、次のように表示されます。 ワールド空間は問題ないように見えますが、z軸は視聴者に向かうのではなく画面に入ると思われます。 ビュースペースは私を完全に困惑させます。カメラが(0、0)の上に座って、シーンの中心に向かっていることを期待していました。代わりに、z軸は間違った方向にあり、カメラは予想とは反対の角に配置されています! …
12 xna  matrix  projection 


3
デフォルトで高性能GPUで実行するようにアプリケーションを設定するにはどうすればよいですか?
現在、多くのラップトップには2つのGPUが搭載されています。1つは高性能のGPUで、もう1つは省電力のGPUです(それほど強力ではありません)。私のラップトップで使用するほとんどのアプリケーションは、統合された(省電力)GPUで実行されますが、それでも一部は高性能カードで開くように設定されています。デフォルトで高性能GPUで実行するように構築しているアプリを設定しようとしていますが、トピックに関する情報がどこにも見つかりません。誰かがこれに少し光を当てることができることを願っています。NSISインストーラーでアプリケーションを配布しますが、NVidia / ATIカードのアプリケーションのリストにアプリケーションのパスを追加する必要があると思います。アプリケーションはC#でプログラムされています。また、デスクトップPCで物事がどのように機能するかを知っている人はいますか?PCに2つのGPUがあり、より強力なGPUを選択する必要がある場合はどうなりますか? ミルチョ
12 c#  gpu 

2
アメリカのゲーム会社にはどのような法人が必要ですか?
私は、ゲームに貢献している4人のグループのリーダーであり、最終的に何らかの公式タイトルまたはそれらに沿ったものが必要になることに気付きました。私たちは名前について合意しました。また、ドメイン名と、ブランドの下で設定したいくつかのバックエンドリソースもすでに持っています。 私はそれを「公式」にし、資産を保護するために必要な手順について興味があります。これは私がリリースに近づくことを心配するのが一番いいですか? 私はこの投稿を見ましたが、このページも見ていました。しかし、私は過去に同様の道を歩んでいたかもしれない人々からのいくつかのまっすぐな答えが欲しいです。
12 business 

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