ゲーム開発

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

3
コンポーネントベースの設計:オブジェクトの相互作用の処理
コンポーネントベースのデザインで、オブジェクトが他のオブジェクトに対してどのように正確に機能するかはわかりません。 Objクラスがあるとしましょう。私がやります: Obj obj; obj.add(new Position()); obj.add(new Physics()); 次に、ボールを動かすだけでなく、物理を適用する別のオブジェクトを作成するにはどうすればよいでしょうか。実装の詳細ではなく、オブジェクトの通信方法を抽象的に探しています。エンティティベースのデザインでは、次のようになります。 obj1.emitForceOn(obj2,5.0,0.0,0.0); コンポーネント駆動の設計と基本的なことを行う方法をよりよく理解するための記事や説明は、非常に役に立ちます。

5
直線はポリゴンと呼ばれますか?
ポリゴンの定義によれば、ポリラインの最初と最後のポイントが接続されている場合、それはポリゴンと呼ばれます。下の画像を参照してください。P1、...、P5ポリラインがあります。P5からP1に線を引くと、ポリゴンと呼ばれますか?私はここで混乱しています。

2
モデルで照明が連続しないのはなぜですか?
Blenderで基本的なテクスチャキューブモデルを作成してモデリングを練習し、それをUnityにインポートしました。照明をつけた後は見苦しいように見えます。ライトは、テクスチャキューブの行で連続的ではありません。 さらに奇妙なことに、床を構成するブロックの光は連続しています。何が悪いのですか? これは、テクスチャがない場合の外観です。 これらが完全な立方体であることを知らなかった場合、表面にわずかな曲線があると思います。テクスチャを明るくしてみましたが、効果もありませんでした。 Blenderからモデルをエクスポートするだけで、法線やそのようなものは設定しませんでした。ただし、床レンガモデルについても特別なことはしていません。 法線を確認したところ、正しい方向を指しているようです。 また、2つのモデルの違いは実際にはわかりません。テクスチャパネルで、プロジェクションをフラットに設定します。 Blenderでさまざまなパネルをチェックしましたが、[オブジェクトデータ]パネルの通常の関連オプションはこの[自動スムーズ]だけで、デフォルトではオフになっています。

2
他のエンジンでPortal 2のlinked_portal_doorに相当するものはありますか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 3年前休業。 ポータル2にあるlinked_portal_doorの機能が必要です。UDKで少し検索しましたが、ほとんどの場合、ポータルガンの複製を試みています。UDK、CryEngine、Unity3D、または他のエンジンが同様のものを持っているかどうか誰かが知っていますか?私はソースを使用することに反対しているのではなく、私のオプションが何であるかを知りたいだけです。
9 portals 

5
正しいmultiTouch IDを返す
チュートリアルを読んだり、multiTouchに関連するすべての質問をここやStackoverflowから調べたりするために、数え切れないほどの時間を費やしてきました。しかし、これを正しく行う方法がわかりません。私はループを使用してを取得してpointerIdいますが、多くの人がこれを行っているのを見ることはできませんが、それをいくらか機能させるには、これが唯一の方法です。 私の画面には2つのジョイスティックがあります。1つは移動用、もう1つはモンスターシューターのようにスプライトの回転と彼が撃つ角度を制御するためです。これらは両方とも正常に動作します。 私の問題は私の、私はイム撮影と同時に私のスプライトを移動したときにということでtouchingPoint、私の移動のために設定されてtouchingPointいるので、私の撮影のxとyで高くなっているtouchingPoint(私の撮影のmoving-stick画面の左側に、shooting-stick右側) 、私のスプライトはスピードアップし、これは私のスプライトのスピードに望ましくない変化を引き起こします。 これが私があなたの助けを借りて解決した方法です!これは、同様の問題に遭遇する可能性がある人のためのものです: public void update(MotionEvent event) { if (event == null && lastEvent == null) { return; } else if (event == null && lastEvent != null) { event = lastEvent; } else { lastEvent = event; } int action = event.getAction(); int actionCode = action & …

3
アニメーションライブラリ(IK&FK)を作成するために必要なノウハウは何ですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 2年前休業。 アニメーションに適したライブラリを見つけることができません。見つけたライブラリは本当に古く、廃止されていますが、ライブラリが比較的小さいことに気付いたので、自分でコーディングすることを考えています。どこから始めればよいですか?これの基本は何ですか?これに関する本はありますか? アニメーションに適したファイル形式についてのいくつかの追加のメモも高く評価されています。 C ++を使用しています。

4
クライアントから受信したGPS位置データを確認する方法はありますか?
この質問への答えは「いいえ」かもしれませんが、それは非常に重要なので、私は質問した方がよいと思います。 これは、世界中のプレーヤーの位置がゲームプレイの中心であるすべてのクライアントサーバーの位置認識ゲームで問題になるはずです。クライアントから取得される位置データが本物であることを確認する方法はありますか(つまり、プレーヤーは実際にそこにあります)。 クライアント/サーバーゲームに取り組んでいる私たちは、クライアントからの情報を信頼してはならないことを知っているため、重要なゲームロジックはすべてサーバー側で実行する必要があります。ただし、位置情報については、クライアントからこれを受け取る必要があります。不正行為を防ぐためにこれを再確認する方法はありますか?

3
Minecraftのようなブロックワールドを処理する方法
Minecraftのようなブロックの世界で簡単なゲームを書きたいです。私の理論的な質問は、再生中にこのブロック情報を処理する最良の方法は何ですか。私の最初のアイデアは巨大な配列でしたが、これはメモリ不足を引き起こすと思います。多分私はプレーヤーの近くのブロックをロードする必要があるだけです。 ファイルから必要なブロック情報をロードし、必要なものだけをメモリに保持するにはどうすればよいですか?

1
同じプロセス内でサーバーとクライアントの両方を実行する
質問 Lidgrenとネットワーキングを初めて使用し始めたばかりで、同じプロセス内でサーバーとクライアントの両方を実行することが可能であることに気付きました。 何らかの理由でこの習慣は推奨されませんか? 環境 私が尋ねている理由は、この概念によって、シングルプレイヤーモードとマルチプレイヤーモードの両方を同じものとして扱うことができると理論的に考えたからです。これは非常に役立ちます。 私の考えに従って、これは私が考えていたディストリビューションです: シングルプレイヤー-同じプロセスで1つのサーバー+ 1つのクライアント。通信速度はどれくらいですか? マルチプレーヤー-ホストのシングルプレーヤー+ 他の各プレーヤーの1つの追加クライアントと同じです。 私が描写している実行フローは、クライアントがユーザー入力を受け取り、サーバーに通知を送信するためのものです。次に、サーバーはそれを検証し、すべてのクライアントによって実行されるアクションをブロードキャストします。クライアントが1つ(つまり、シングルプレイヤー)であっても、複数のクライアント(つまり、マルチプレイヤー)であっても、問題にはなりません。

3
ナラティブ(または少なくとも時空間的でない)に焦点を当てたエンジン/フレームワークはありますか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 2年前休業。 編集(2):2つの答えがあり、それらのいずれも受け入れていないので、私はここで答えを検討することを動機づけると思いました:そのようなアプローチを強く示唆する何かが不可能/まったく役に立たないか、あるいは、テキストアドベンチャーゲーム/インタラクティブフィクションを超えた、少なくともある程度一般的なそのようなシステムの研究(フィールド)または例への言及。 詳細な調査を行ったふりはしませんが、調べたすべてのゲームエンジン/フレームワークは、形やエンティティを2つに分けて表現しているという意味で、美化されたグラフィックエンジンのようなものであることに気付きました。または、多分ある種の並行処理モデルが「組み込まれた」3次元ユークリッド空間で、これらの「エンティティ」に接続されたロジックの形式を指定できるようにします。 ゲームの「ルール」とナラティブは、これらのプリミティブの上に(エンジンに関して)アドホックな方法で書かれています。 明らかに、上記の説明はかなり単純化されています(何らかの形のクエスト/ナラティブシステムを含む無限エンジンなどのより専門的なエンジンを使用します)。 。 しかし、ゲームルール/ロジックの説明(または高レベル)(または少なくともゲームの非空間的な側面)などの概念を取り入れたエンジン/フレームワークを作成するためにどのような試みが行われたのでしょうか。基礎? 編集(4):これは、ゲームに空間的/グラフィック的側面が含まれないことを意味するのではなく、ロジックを関連付ける空間エンティティーではなく、プロット(またはゲームプレイまたは「ボードゲームルール」)の概念があります。 )次に、グラフィカルインターフェイスを実現するために記述します。 特に私は、実際の実装に役立つ方法で(たとえば、専用のフレームワークとは対照的に)ある程度大きなクラスのゲームのある種の(半)形式的なセマンティクスをキャプチャしようとする宣言的アプローチに興味がありますゲーム/ナラティブの定性分析)。 私が見たのは、ペトリネットベースのモデルを使用した物語のモデリング/分析に関する調査と、インタラクティブフィクションを作成するための言語における興味深いアプローチです。 編集(1):説明するためにおもちゃの例を追加すると思いました。 ポイントアンドクリックスタイルのアドベンチャー(SCUMMゲームなど)の作成に興味があったとしましょう。これらは、開始状態から終了まで、ほぼ線形で離散的な進行の概念に基づいていると分析することができます。 離散的な進行の概念に焦点を当て、ある程度の非直線性を考慮に入れて、基本的な理論として(制限された)DAGの理論を選択できます。したがって、このタイプのゲームを(この理論に対して)最も抽象的な形式で指定することは、この理論に公理を追加することに相当します(理論が特定のグラフを指定するか、単純に、グラフをキャプチャするために必要と思われるものをキャプチャするのに十分です) "プロット")。 これを実際のゲームに変えると、この理論を再生可能なものに埋め込むというHCI /インターフェース設計の問題に変わります(つまり、理論のモデルを構築する/遷移のあるユーザーインターフェースの状態のコレクションからグラフのホモ(イソ?)モルフィズムを見つける) DAGに「ゲームを指定する」)。 上記の架空のシナリオでは、ライブラリに取り込むことができるはずの少なくとも3つのことがわかります。まず、DAGまたはグラフ全般に​​関する変換/推論のためのツールが必要です。次に、プレイ可能なゲームとしてのグラフの表現が実際にグラフをモデル化していることを確認するのに十分なほど巧妙なユーザーインターフェイスライブラリ(たとえば、少なくとも部分的または非公式に、境界条件により、ゲームにスタック状態がないことを証明します) 。最後に、グラフを指定するためのより高レベルのライブラリのコレクションを指定できます。キャラクターとその相互作用を表現し、そのような観点からグラフ(の一部)を生成するためのライブラリーなど。 いくつかのヘルプライブラリを上にして低レベルの実装を行うだけでなく、DAGの「中間」理論を維持する理由は何ですか。答えは、正式なセマンティクスのすべての通常の理由です。正式な基盤を決めたので、ゲームの特定のプロパティを確認して、低レベルのインターフェイスライブラリの最適化などについて推論できるようにします(DAGをモデル化している限り、必要なことを実行できます)。それらの記述自体がそのような構造を記述しなければならないので、(文字/ダイアログなどの)高レベルの記述との比較ができないことを心配します。 私は上記のアプローチが具体的に機能することを決して意味していませんし、DAGが実際にメモリに保持されるものである必要はないということではありません(ラムダ計算などの計算形式に似たものを形成します)。しかし、これが私が興味を持っている種類のアプローチを示すことを願っています。 要するに、私はこの質問の代わりのタイトルがあったかもしれないと思います:どのようにダイクストラはコンピュータゲームを書いたでしょうか?


4
可変長ループがGPUシェーダーに与える影響
デモシーンなど、GPU内で手続き型コンテンツをレンダリングするのが一般的です(画面いっぱいに1つの四角形を描画し、GPUにピクセルを計算させる)。 レイマーチングが人気です: これは、GPUがピクセルごとに不明な数のループ反復を実行していることを意味します(ただし、のような上限を設定できますmaxIterations)。 可変長ループがあると、シェーダーのパフォーマンスにどのような影響がありますか? 単純なレイマーチングの擬似コードを想像してみてください。 t = 0.f; while(t < maxDist) { p = rayStart + rayDir * t; d = DistanceFunc(p); t += d; if(d < epsilon) { ... emit p return; } } さまざまな主流のGPUファミリ(Nvidia、ATI、PowerVR、Mali、Intelなど)はどのように影響を受けますか?頂点シェーダー、特にフラグメントシェーダー? どのように最適化できますか?

2
再生システム:入力またはイベントを記録しますか?
私はこれを読みました:再生システムを設計する方法しかし、それは私の質問に実際には答えません。 私のゲームは、サーバーの「モデル」および「コントローラー」とは別のプログラムとして、ゲームのクライアントの「ビュー」で構築されています。(mmoのように、またはこの方法で構築されたマルチプレイヤーゲーム)。サーバー側は常にゲームの「真実」であり、クライアントからの入力としてアクション要求を受け入れ、イベントと「現在の状態」メッセージを出力するだけです。 ゲームモデルとルールは固定の「ティック」更新サイクルで完全に決定的であるため、サーバー側では、クライアントビューに送信されたイベントとアクションリクエストの両方を記録できます。どちらも特定のサイクル番号に関連付けられています。 問題は、この場合、再生システムをセットアップするには、入力、またはユーザーアクション要求(そこで提案されている)またはイベントを使用する必要があるかどうかです。 どちらもまったく同じ出力を生成するように思えます。私が見ることができる唯一の違いは: イベントは実際の出力を提供しますが、イベントを発生させるにはアクション要求を処理する必要があります。 アクションリクエストは、記録するデータがはるかに少ない場合があります。 他に考慮すべきことはありますか?

3
QuadTree:ポイントまたはリージョンのみを保存しますか?
衝突検出のために動いているオブジェクトを追跡する四分木を開発しています。各オブジェクトには境界形状があり、すべてが円であるとしましょう。(2Dトップダウンゲームです) 各オブジェクトの位置のみを格納するのか、境界形状全体を格納するのかわかりません。 ポイントを操作する場合、オブジェクトが複数のノードにまたがることはないため、挿入とサブディビジョンは簡単です。一方、オブジェクトの近接クエリでは、オブジェクトの寸法が考慮されないため、衝突を見逃す可能性があります。ポイントしかない場合のクエリ領域の計算方法は? リージョンを操作する場合、複数のノードにまたがるオブジェクトをどのように処理しますか?ノードの容量を超えている場合でも、完全に含まれている最も近い親ノードに挿入する必要がありますか? ありがとう。
9 quadtree 

3
実行時に動的環境で2Dナビゲーションメッシュを生成するにはどうすればよいですか?
A *をパスファインディングに使用する方法を理解したので、グリッドで使用できます。しかし、私のゲームの世界は巨大で、多くの敵がプレイヤーの方に向かって動いています。これは移動するターゲットであるため、グリッドシステムはパスを見つけるには遅すぎます。ナビゲーションメッシュを使用してノードグラフを簡略化する必要があります。 メッシュの「しくみ」の概念(頂点のノードやポリゴンのエッジの中心、あるいはその両方を通るパスを見つける)の概念を理解しています。 私のゲームは、実行時に手続き的に生成される動的な障害物を使用しています。 次の図のように、複数の障害物がある平面を取り、プログラムで歩行可能領域をナビゲーションメッシュのポリゴンに分割する方法に頭を悩ませることはできません。 どこから始めますか?アルゴリズムがマップを「ウォーク」するときに、以前に定義されたウォークアブルエリアをさらに分割する必要があると気付いたときに、ウォークアブルエリアのセグメントがすでに定義されているとき、またはさらに悪いことに、どうすればわかりますか? 必要に応じて、nodejsでJavaScriptを使用しています。

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