ゲーム開発

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


1
「ライトを焼く」とはどういう意味ですか?
lightmapをベイクするとはどういう意味ですか?Unity3dでこれを聞いたところ、ライトマップを焼くスケッチアップ用のこのLightUpプラグインを再び見つけました。 私が観察したことから、ベイクされたライトマップは3Dオブジェクトにはるかにリアルな感触を与えます。オブジェクトに光を焼き付けて、そのcgアニメーションを事前にレンダリングされたアニメーションで見るようにする目的はありますか?
36 lighting 

4
ゲームの主人公の性別は売上に影響しますか?
ゲームのほとんどの主人公は男性です。従来の知恵は、これは 特にゲーム開発に関しては、家父長制の社会に住んでいます。 ターゲット層は主に男性です。 フィクションでは、女性は男性よりも男性の方が共感できると聞いたことがあります。したがって、フィクションの性別の大きな不均衡は必ずしも家父長制によるものではなく、金銭的な観点から理にかなっています。購読するかどうかはわかりませんが、面白いです。 そして、ゲームが超ハードコアなオタクの男性向けであった時代がありましたが、今ではほとんどすべての人がゲーム機を持っています。もっと。 私の質問は、ジェンダーのステレオタイプを減らすことを試みるべきかどうかという質問はさておき、特に小さなインディーズゲームの売上に実際に影響を与えるのでしょうか?この質問に関連する実験、統計、または研究はありますか?最近のゲーマーの実際の人口統計の内訳は何ですか? 私はこれが炎症性の主題であることを理解しているので、ここで私は意見を求めていないことを強調します 確かな事実とデータを探しています。


1
XNAでSVGアートを直接レンダリングする
SVGなどのベクトル化された形式の2Dアートがたくさんあるとします。完全なSVGレンダラーを自分で実装することなく、それを直接レンダリングする簡単な方法はありますか? もちろん、さまざまな解像度/ズームレベルに合わせてオフラインで(たとえば、コンテンツパイプラインで)ラスタライズできますが、ベクターグラフィックスが提供する連続ズームレベルで鮮明なビジュアルを維持したいと思います。
36 xna  2d  graphics  art  vector-art 


4
OpenGLの頂点配列オブジェクトの目的は何ですか?
OpenGLを始めたばかりですが、Vertex配列オブジェクトとは何か、どのように使用できるかをまだよく理解していません。 頂点バッファオブジェクトを使用して頂点データ(位置やテクスチャ座標など)を保存し、VAOにステータスフラグのみが含まれている場合、どこで使用できますか?彼らの目的は何ですか? (非常に不完全で不明瞭な)GL Wikiから理解した限りでは、VAOは、要素配列バッファーで説明されている順序に従って、すべての頂点にフラグ/状態を設定するために使用されますが、Wikiについては本当にあいまいでしたVAOが実際に何をするのか、そしてどのようにそれらを採用できるのか、本当によくわからない。
36 opengl 

9
ゲームプレイ機能に特化した手続き型の世界世代
大規模な手続き型のランドスケープゲームでは、土地は鈍いように見えますが、それはおそらく、現実の世界がほとんど鈍く、風景が劇的または戦術的な場所に限られているためです。 この観点から世界の世代を見ると、ゲームのランドスケープジェネレーター(つまり、風景のためではなく、ゲームプレイのため)は、造園のルールに従う必要はありませんが、代わりに、ゲーマーの期待。たとえば、山や降雨パターンによって生成されるリソースまたは条件に基づいて都市に自然に散在するのではなく、都市間に丘、渓谷、川、山を作成するチョークポイント/ルートジェネレーターがあります。 このように行われている既存の作業はありますか?都市または人口の中心から始めて、その後地形を追加しますか? 私が求めている理由は、ファンタジーフィクション(自分と他の人)から既存のマップを取得し、情報をベースポイントとしてシステムに入力し、そこからプレイするための良い世界を生成することを以前考えていたからです。これは既存の技術、つまり都市の人口、資源、バイオーム、道路網、河川などの必要な情報をすべて入力し、PCGがギャップを埋めることができるようになっているようです。 しかし、今では、コンテンツジェネレーターで全体的なデザインも生成できるかどうか疑問に思っています。自然に見える商業の必要性があるように都市と人口センターを生成し、バランスを取り、位置と接続性を生成し、都市のタイプから近くにある必要があるリソースのリストを生成します。信じられないほど興味深い都市間の旅を作るためのいくつかのルールは、道路、チョークポイント、橋とトンネル、フェリー、必要なバイオームと海岸線を含む地形を含む最終コンテンツを生成します。 これが以前に行われたことがあれば、私は知りたい、そして何がうまくいかなかったかを知りたいです。

5
爆発からの現実的なカメラ/スクリーンシェイク
爆発の際にカメラを少し揺らしたいのですが、それを揺り動かすためにいくつかの異なる機能を試してみましたが、その「うわー、なんてバン!」私が探しているタイプの感じ。方形波タイプのパターンと同様に、線形減衰を少し加えた任意の比較的高い周波数の正弦波パターンをいくつか試しました。1つの軸、2つ、および3つすべてを移動しようとしました(ただし、この場合、台車の効果はほとんど目立ちませんでした)。 誰でも良いカメラの揺れのパターンを知っていますか?
36 camera 

9
Unityで、シングルトンパターンを正しく実装するにはどうすればよいですか?
主に、Unityでシングルトンオブジェクトを作成するためのいくつかのビデオとチュートリアルを見てきましたGameManager。これらは、シングルトンのインスタンス化と検証にさまざまなアプローチを使用しているようです。 これに対する正しい、またはむしろ好ましいアプローチはありますか? 私が遭遇した2つの主な例は次のとおりです。 最初 public class GameManager { private static GameManager _instance; public static GameManager Instance { get { if(_instance == null) { _instance = GameObject.FindObjectOfType<GameManager>(); } return _instance; } } void Awake() { DontDestroyOnLoad(gameObject); } } 第二 public class GameManager { private static GameManager _instance; public static GameManager Instance …

4
非シューティングゲームの動きの予測
私は、中規模のマルチプレイヤー、約20〜30人のプレイヤーが一度に永続サーバーに接続する等尺性2Dゲームに取り組んでいます。適切な動き予測の実装を適切に行うのに苦労しました。 物理学/運動 このゲームには真の物理学の実装はありませんが、基本原理を使用して動きを実装します。入力を継続的にポーリングするのではなく、プレーヤーが制御しているキャラクターエンティティの状態を変更するために、状態の変更(つまり、マウスのダウン/アップ/移動イベント)が使用されます。プレイヤーの方向(つまり、北東)は一定の速度と組み合わされ、エンティティの速度である真の3Dベクトルに変換されます。 メインゲームループでは、「更新」が「描画」の前に呼び出されます。更新ロジックは、速度がゼロ以外のすべてのエンティティを追跡する「物理更新タスク」をトリガーし、非常に基本的な統合を使用してエンティティの位置を変更します。例:entity.Position + = entity.Velocity.Scale(ElapsedTime.Seconds)(ここで、「Seconds」は浮動小数点値ですが、ミリ秒の整数値に対して同じアプローチが機能します)。 重要な点は、動きに補間が使用されていないことです-初歩的な物理エンジンには「前の状態」または「現在の状態」という概念はなく、位置と速度のみがあります。 状態変更および更新パケット プレイヤーが制御しているキャラクターエンティティの速度が変化すると、エンティティのアクションタイプ(スタンド、ウォーク、ラン)、方向(北東)、および現在位置を含む「アバターの移動」パケットがサーバーに送信されます。これは、3D一人称ゲームの仕組みとは異なります。3Dゲームでは、プレイヤーが動き回るにつれて、速度(方向)がフレームごとに変化します。すべての状態変更を送信すると、フレームごとにパケットが効率的に送信され、コストがかかりすぎます。代わりに、3Dゲームは状態の変化を無視し、一定の間隔(たとえば80〜150ミリ秒ごと)で「状態更新」パケットを送信するようです。 私のゲームでは速度と方向の更新の頻度がはるかに低いため、すべての状態変更を送信する必要はありません。すべての物理シミュレーションは同じ速度で行われ、確定的ですが、レイテンシは依然として問題です。そのため、通常の位置更新パケット(3Dゲームに似ています)を送信しますが、頻度はずっと低くなります-現在は250ミリ秒ごとですが、良い予測では500ミリ秒に簡単にブーストできると思います。最大の問題は、私が現在標準から逸脱していることです。他のすべてのドキュメント、ガイド、およびサンプルはオンラインで定期的に更新を送信し、2つの状態間を補間します。それは私のアーキテクチャと互換性がないようで、(非常に基本的な)「ネットワーク化された物理」アーキテクチャに近い、より良い動き予測アルゴリズムを考え出す必要があります。 サーバーはパケットを受信し、スクリプトに基づいてその移動タイプからプレーヤーの速度を決定します(プレーヤーは実行できますか?プレーヤーの実行速度を取得します)。速度が得られると、それを方向と組み合わせてベクトル(エンティティの速度)を取得します。いくつかのチート検出と基本的な検証が行われ、サーバー側のエンティティが現在の速度、方向、および位置で更新されます。基本的な調整も実行され、プレイヤーが移動要求でサーバーをあふれさせるのを防ぎます。 自身のエンティティを更新した後、サーバーは範囲内の他のすべてのプレーヤーに「アバター位置更新」パケットをブロードキャストします。位置更新パケットは、リモートクライアントのクライアント側の物理シミュレーション(ワールドステート)を更新し、予測と遅延補正を実行するために使用されます。 予測とラグ補償 前述のように、クライアントは自分の立場に対して権威があります。不正行為や異常の場合を除き、クライアントのアバターはサーバーによって再配置されることはありません。クライアントのアバターには外挿(「今すぐ移動して後で修正」)は必要ありません-プレイヤーが見るものは正しいです。ただし、移動しているすべてのリモートエンティティには、何らかの外挿または内挿が必要です。クライアントのローカルシミュレーション/物理エンジン内では、何らかの予測および/または遅延補償が明らかに必要です。 問題点 私はさまざまなアルゴリズムに苦労してきましたが、いくつかの質問と問題があります。 外挿、内挿、またはその両方を行う必要がありますか?私の「直感」は、速度に基づいた純粋な外挿を使用する必要があるということです。状態の変化はクライアントによって受信され、クライアントは遅延を補正する「予測された」速度を計算し、通常の物理システムが残りを行います。ただし、他のすべてのサンプルコードや記事とは相反するように感じられます。これらはすべて、多くの状態を格納し、物理エンジンなしで補間を実行するようです。 パケットが到着したとき、パケットの位置を、一定時間(たとえば200ms)にわたってパケットの速度で補間しようとしました。次に、補間された位置と現在の「エラー」位置の差を取り、新しいベクトルを計算して、送信された速度ではなくエンティティに配置します。ただし、別のパケットがその時間間隔で到着するという前提があり、次のパケットがいつ到着するかを「推測」することは非常に困難です。特に、すべてのパケットが一定の間隔で到着するわけではないためです。概念に根本的な欠陥があるのか​​、それとも正しいのか、いくつかの修正/調整が必要なのか? リモートプレーヤーが停止するとどうなりますか?エンティティをすぐに停止できますが、再び移動するまで「間違った」スポットに配置されます。ベクトルを推定するか、補間しようとすると、以前の状態を保存しないため問題が発生します。物理エンジンには「位置Xに到達した後に停止する必要がある」と言う方法がありません。速度を理解するだけで、それ以上複雑なことはありません。「パケット移動状態」情報をエンティティまたは物理エンジンに追加するのは嫌です。これは、基本的な設計原理に違反し、ゲームエンジン全体でネットワークコードを流出させるためです。 エンティティが衝突するとどうなりますか?3つのシナリオがあります-制御プレイヤーがローカルで衝突する、2つのエンティティが位置更新中にサーバーで衝突する、またはリモートエンティティ更新がローカルクライアントで衝突します。すべての場合において、衝突の処理方法は不確かです-不正行為は別として、両方の状態は「正しい」が、異なる期間にあります。リモートエンティティの場合、壁を歩いて描くのは理にかなっていないので、ローカルクライアントで衝突検出を実行し、「停止」させます。上記のポイント#2に基づいて、エンティティを「壁を通り抜けて」継続的に移動しようとする「修正されたベクトル」を計算することがあります。ポジション。ゲームはこれをどのように回避しますか?

1
SoCは何を表していますか?
…そしていいえ、私はシステムオンチップを意味するものではありません。 私はグラフィックスの文脈で頭字語を使用していたこの質問につまずき、その意味について疑問に思っていました。質問も回答も頭字語をそれ以上説明しなかったので、グーグルでの検索では「システムオンチップ」(私はすでによく知っていました)と「セキュリティオペレーションセンター」しか知りませんでした。 SoCは、ゲーム開発(および/またはソフトウェアエンジニアリング)のコンテキストで何を表しますか?

2
不規則な形状のヘルスバーを手続き的にレンダリングするにはどうすればよいですか?
従来の長方形または心臓ベースのヘルスバーの問題は、十分に理解されており、簡単に解決できます。しかし、以下で作成したモックアップのように、より「創造的に形作られた」ヘルスバーに受け入れられるソリューションは何ですか? これを行う明白な方法は、「中間の」スプライトを使用することです。したがって、3番目の画像は、さまざまなレベルの健康のための他の多くのトランジションとともに、独自のスプライトになります。しかし、それは実に洗練されていないようであり、健康状態間のスムーズな移行を作成するために必要な中間者の数は多くなります。 私が思いつく他の唯一のアイデアは、「空の健康」スプライトの上に「完全な健康」スプライトをオーバーレイし、健康の各目盛りを表すピクセル座標のセットをプリベイクし、健康として不透明または透明にすることです上下します。 この質問は言語やプラットフォームにとらわれないことを意図していますが、回答に役立つ場合は、任意の言語/ライブラリ/フレームワークで具体的なサンプルを提供してください。
35 2d  graphics 

6
開発者がゲームについて矛盾するフィードバックを受け取った場合、開発者は何をすべきですか?
私は最初のモバイルゲームに取り組んでいます(以前に多くのWebゲームやPCゲームをやったことがあります)。 アイデアはシンプルだが楽しいものにしたかった。問題は、友人や家族からフィードバックを受け取り、自分のゲームについて多くの矛盾した意見を聞いたことです。このゲームは中毒性があり、やりがいがあり、楽しいと言う人もいれば、楽しいゲームとは見なさず、退屈だとか、本当に十分ではないという人もいます。 私はこれら2つの反対意見を持っているので、私のゲームが良いかどうかわかりません。 どんな意見に耳を傾ける必要がありますか?また、人々の意見が混ざり合ったときにゲームが楽しいかどうかをどのように知る必要がありますか?

7
ブラウザ/ HTML5ゲーム用のチート対策Javascript
私はjs / html5でシングルプレーヤーアクションRPGを作成することを計画しています。不正行為を防止したいと思います。マルチプレイヤーゲームにはならないため、100%の保護は必要ありませんが、ある程度の保護が必要です。 それでは、縮小と難読化以外にどのような戦略を提案しますか? サーバー側で簡単なチェックを行うことはありませんが、サーバー側ですべてのゲーム状態の変更を維持したまま、Diablo 3のパスに行きたくありません。 それは一種のRPGになるので、値の急激な変化をチェックする統計インスペクターを作成するというアイデアを思いつきましたが、それがどのように一貫性と信頼性があるかはわかりません。 変数と関数のスコープについてはどうですか?可能な限り小さいescopeで作業する方が安全ですが、努力する価値はありますか? とにかく、javascriptがチェックサムのようにテキストを自己検査することはありますか? ブラウザー固有のソリューションはありますか?初期ビルドでのみChromeでそれを制限することはありません。

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