ゲーム開発

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

4
MMORTSゲームの成功を阻んだものは何ですか?[閉まっている]
私たちは皆、商業的に成功したMMORTSゲームを作成する試みがあったことを知っていますが、すべて失敗しました。失敗したということは、彼らがゲームコミュニティで本当に人気を博しなかったことを意味します。何故ですか? MMORTSとは何ですか? RTS(リアルタイム戦略;ローマ:Total war、Stronghold、StarCraft、WarCraft)のようなものですが、MMOコンポーネントがあります。つまり、経済と産業を構築するだけでなく、それを行う他のプレイヤーと競争することができます。リアルタイムで。 私もMMORTSに似たゲームを作ろうとしているので、これには興味があります。 要約: MMORTSジャンルの進化を妨げている理由は何ですか?
30 mmo  mmorts 

6
MMOでAIを計算するのは誰ですか?
MMOを構築していますが、NPCを追加したいです。問題は、基本的なデザインがわからないことです。計算、クライアントまたはサーバーは何ですか?サーバーがイベントと反応を計算することは理解できますが、経路探索とプレイヤーの位置と動きについては、だれが計算しますか? サーバーまたはクライアントのAIを計算するのは誰ですか?サーバーが経路探索、位置、動きなどを計算することを想像できませんでした。私はこれを理解する助けが必要です、ありがとう、何でも助けます。
30 ai  mmo  server  movement  npc 

7
アーマーポイントはどの目的に役立ちますか?
多くのゲームで「アーマーポイント」と呼ばれるメカニズムを見てきました。Quake、Counter Strikeなどです。一般に、プレイヤーがこれらのアーマーポイントを持っている間、彼はより少ないダメージを受けます。 ただし、ヘルスポイントと同じように機能します。つまり、ダメージを与えることでそれらを失います。 なぜこのような機能を設計するのですか?これは単なるヘルス2.0ですか、それとも何か不足していますか? 私にとって、鎧は、たとえばRPGゲームでのみ意味を持ちます。RPGゲームでは、それはあなたの抵抗を決定する定数です。しかし、なぜ戦闘中に削減可能にする必要があるのか​​わかりません。

2
EA DICEはBattlefield Bad Company 2およびBattlefield 3で破壊可能な環境をどのように作成しましたか?[閉まっている]
EA DICEの人々はどのようにしてBattlefield Bad Company 2およびBattlefield 3で破壊可能な環境を作成しましたか? 彼らは、爆発やそれに類するものがあったときにばらばらになる、事前に定義されたサブリージョンから建物を組み立てただけなのでしょうか?他に何も考えられません。
30 physics 

3
コンポーネントベースのエンティティシステムでメッセージ処理を適切に実装する方法は?
エンティティシステムのバリアントを実装しています。 Entityクラス IDより少しであることが結合コンポーネント一緒に 「コンポーネントロジック」がなく、データのみを持つコンポーネントクラスの束 多数のシステムクラス(別名「サブシステム」、「マネージャー」)。これらはすべてのエンティティロジック処理を行います。ほとんどの基本的な場合、システムは、関心のあるエンティティのリストを反復処理し、各エンティティに対してアクションを実行するだけです。 MessageChannelクラスオブジェクトのすべてのゲームシステムで共有されています。各システムは、特定のタイプのメッセージをサブスクライブしてリッスンし、チャネルを使用して他のシステムにメッセージをブロードキャストすることもできます システムメッセージ処理の最初のバリアントは、次のようなものでした。 各ゲームシステムで順次更新を実行する システムがコンポーネントに対して何かを実行し、そのアクションが他のシステムにとって重要である場合、システムは適切なメッセージを送信します(たとえば、システム呼び出し messageChannel.Broadcast(new EntityMovedMessage(entity, oldPosition, newPosition)) エンティティが移動されるたびに) 特定のメッセージをサブスクライブした各システムは、そのメッセージ処理メソッドを取得します システムがイベントを処理しており、イベント処理ロジックで別のメッセージをブロードキャストする必要がある場合、メッセージはすぐにブロードキャストされ、メッセージ処理メソッドの別のチェーンが呼び出されます このバリアントは、衝突検出システムの最適化を開始するまでは問題ありませんでした(エンティティの数が増えると、本当に遅くなりました)。最初は、単純なブルートフォースアルゴリズムを使用して各エンティティペアを繰り返します。次に、特定のセルの領域内にあるエンティティを格納するセルのグリッドを持つ「空間インデックス」を追加しました。これにより、隣接セルのエンティティのみをチェックできます。 エンティティが移動するたびに、衝突システムはエンティティが新しい位置にあるものと衝突しているかどうかを確認します。そうである場合、衝突が検出されます。衝突するエンティティが両方とも「物理オブジェクト」である場合(両方にRigidBodyコンポーネントがあり、同じスペースを占有しないように互いを押しのけようとしている場合)、専用の剛体分離システムがエンティティを移動するように移動システムに要求しますそれらを分離する特定の位置。これにより、移動システムは変更されたエンティティの位置を通知するメッセージを送信します。衝突検出システムは、空間インデックスを更新する必要があるため、反応するように設計されています。 場合によっては、セルの内容(C#のEntityオブジェクトの汎用リスト)が繰り返し処理されている間に変更され、イテレーターによって例外がスローされるため、問題が発生します。 だから... 衝突をチェックしている間に衝突システムが中断されるのを防ぐにはどうすればよいですか? もちろん、セルの内容が正しく繰り返されることを保証する「巧妙な」/「トリッキーな」ロジックを追加することもできますが、問題は衝突システム自体にあるのではないと思います(他のシステムにも同様の問題がありました)メッセージはシステムからシステムへ移動するときに処理されます。私が必要とするのは、特定のイベント処理メソッドが中断することなく仕事を確実に行うための何らかの方法です。 私が試したもの: 着信メッセージキュー。あるシステムがメッセージをブロードキャストするたびに、そのメッセージは関心のあるシステムのメッセージキューに追加されます。これらのメッセージは、システム更新が各フレームで呼び出されると処理されます。問題:システムAがシステムBのキューにメッセージを追加する場合、システムBがシステムAよりも後(同じゲームフレーム内)に更新される場合、それはうまく機能します。それ以外の場合、メッセージが次のゲームフレームを処理します(一部のシステムでは望ましくありません) 発信メッセージキュー。システムがイベントを処理している間、システムがブロードキャストするメッセージは送信メッセージキューに追加されます。メッセージは、システムの更新が処理されるのを待つ必要はありません。最初のメッセージハンドラが処理を完了した後、「すぐに」処理されます。メッセージの処理によって他のメッセージがブロードキャストされる場合、それらも発信キューに追加されるため、すべてのメッセージが同じフレームで処理されます。問題:エンティティライフタイムシステム(システムでエンティティライフタイム管理を実装)がエンティティを作成した場合、いくつかのシステムAとBに通知します。システムAがメッセージを処理している間、メッセージチェーンが発生し、最終的に作成されたエンティティが破棄されます(たとえば、弾丸エンティティが障害物と衝突する場所で作成され、弾丸が自己破壊します)。メッセージチェーンが解決されている間、システムBはエンティティ作成メッセージを取得しません。したがって、システムBがエンティティ破壊メッセージにも関心がある場合、システムBはそれを取得し、「チェーン」の解決が完了した後にのみ、最初のエンティティ作成メッセージを取得します。これにより、破棄メッセージは無視され、作成メッセージは「受け入れられます」、 編集-質問への回答、コメント: 衝突システムがセルの内容を繰り返し処理している間、誰がセルの内容を変更しますか? 衝突システムが一部のエンティティとその近隣で衝突チェックを行っている間、衝突が検出される可能性があり、エンティティシステムは他のシステムがすぐに反応するメッセージを送信します。メッセージに対する反応により、他のメッセージが作成され、すぐに処理される場合があります。そのため、他のシステムは、以前の衝突チェックがまだ終了していない場合でも、衝突システムがすぐに処理する必要があるメッセージを作成する場合があります(たとえば、衝突システムが空間インデックスを更新する必要があるため、エンティティを移動します)。 グローバルな送信メッセージキューを使用できませんか? 最近、単一のグローバルキューを試しました。新しい問題を引き起こします。問題:タンクエンティティを壁エンティティに移動します(タンクはキーボードで制御されます)。それからタンクの方向を変えることにしました。タンクと壁を各フレームに分離するために、CollidingRigidBodySeparationSystemはタンクを壁から可能な限り最小の距離だけ移動します。分離方向は、戦車の移動方向の反対方向でなければなりません(ゲームの描画が開始されると、戦車は壁に移動したことがないように見えるはずです)。しかし、方向はNEW方向とは逆になり、タンクを壁の最初とは異なる側に移動します。問題が発生する理由:これがメッセージの処理方法です(簡略化されたコード): public void Update(int deltaTime) { m_messageQueue.Enqueue(new TimePassedMessage(deltaTime)); while (m_messageQueue.Count > 0) { Message message = m_messageQueue.Dequeue(); this.Broadcast(message); } } private …

7
小売ゲームは「制御の反転」と「依存性注入」を使用していますか?
私が知っているより勤勉なソフトウェア開発者の多くは、オブジェクトへの参照を処理するために、制御の反転と依存性注入に移行しています。Flashゲームの観点から言えば、私はAAAスタジオのすべてのインとアウトを知らないので、これらは小売ゲームの世界で使用されていますか?

6
Unityの最も深刻な制限は何ですか?[閉まっている]
UnityとUDKとIDについてのこの白熱した質問を読んで、私は知りたがっています:Unityの繰り返しの打撃、最も不自由な制限は何ですか? この質問を主観的ではないようにするために、繰り返しになりますが、Unityで最も繰り返される犯罪者についてです。これは、Unityユーザーとして、使用を開始する前に誰かがあなたに話してくれたことを本当に望んでいるものです。 Unityはバージョン管理をうまく処理できないと聞いたことがあります。これは、Unityが多くのバイナリファイルを生成するためです(差分化はできません)。私にとって、これは私が単独で働いているので、本当に不自由ではありません。 考え?
30 unity 

7
Unityのチームワーク
バージョン管理のないUnityプロジェクトがあり、プロジェクトで作業できるように別の開発者と共有する必要があります。 Unity Assetsでうまく機能する戦略は何ですか?


4
Steamを介して配布するコストはいくらですか?
私たちはゲーム開発プロジェクトのプレアルファ段階にあり、ValveからSteam経由で配信する仕組みについての返信をまだ受け取っていません。このゲームの開発と配布にかかるさまざまなコストをすべて考慮したビジネスモデルを実現するには、この情報が必要です。 私の質問は、価格構造は何ですか?彼らは私たちの売り上げの1パーセントを取りますか?もしそうなら、いくらですか? ありがとう、フェリックス
30 valve  costs  steam 

5
Pythonで書かれた有名なゲーム[終了]
これらの2つ、つまりJavaとC#/ XNAを見てきました...そして最近Pythonを取り上げました。どのようなことを考えさせられました。 PythonでPygame / Pyglet / Pyopenglを使用して作成された(有名な)ゲームは何ですか?
30 python 

11
ゲーム状態システムの代替手段?
私の知る限り、ほとんどのゲームには、異なるゲーム状態を切り替える「ゲーム状態システム」があります。これらは、「Intro」、「MainMenu」、「CharacterSelect」、「Loading」、「Game」などです。 一方では、これらを状態システムに分離することは完全に理にかなっています。結局のところ、それらはバラバラであり、そうでなければ、明らかに乱雑な大きなswitchステートメントである必要があります。そして、それらは確かに状態システムによってうまく表されています。しかし、同時に、「ゲーム」状態を見て、この状態システムのアプローチに何か問題があるのではないかと考えています。それは部屋の象のようなものだからです。それは巨大で明白ですが、ゲームの状態システムのアプローチに疑問を呈する人はいません。 「ゲーム」が「メインメニュー」と同じレベルに置かれているのは馬鹿げているようです。しかし、「ゲーム」状態を解除する方法はありません。 ゲーム状態システムが最善の方法ですか?「ゲームの状態」を管理するための、より良いテクニックはありますか?映画を描いてエンターをリッスンするイントロ状態、リソースマネージャーでループするローディング状態、そして実際にすべてを行うゲーム状態を持つことは大丈夫ですか?これもあなたにとっては不均衡に思えませんか?何か不足していますか?

6
ビデオゲームのデザインで、一様でない乱数を興味深い方法で使用しているものはありますか?
さまざまなビデオゲームは、「50%のヒットチャンス」など、イベントの結果を決定するために均一に分布した数値を使用します。ほとんどの場合、0-1のランダムな浮動小数点数が0.5より大きいかどうかをチェックします。多くのゲームは、これらの均一な割合のいくつかを互いの上に重ねます。たとえば、D&Dヒットロールは、1と20が特別な結果を持つことを除いて、1〜20の均一に分散した数です。私の考えでは、実際にはヒット/ミスまたは勝ち/負けは実際にはバイナリの結果ではないという事実をエミュレートするために、デザイナーによってクリティカルヒットのようなものが追加されているようです。 多くの場合、攻撃による実際の「損傷」の量はガウス/ベル曲線分布に近くなる可能性が高く、多くは中間になりますが、時折非常にエキサイティングな外れ値とそれらを結ぶ滑らかな曲線になります。カタンの開拓者のようなサイコロゲームは、複数の独立したロールを追加することでガウス分布をエミュレートしますが、ビデオゲームでこのメカニズムを見たことはほとんどないように感じます。 Civilization(Sid Meierは、ゲームで使用される実際の数学と一致しないプレイヤーの認識についてGDCで広範に語った)のようなゲームは、現実の世界で物事がどのように機能するかに一致した結果から恩恵を受けるようです。面白い方法で乱数のガウス分布またはその他の不均一な分布を使用したビデオゲームはありますか?

5
乱数生成で「あまりにも」ラッキー/アンラッキーなストリークを回避するにはどうすればよいですか?
私は現在、プレイヤーが与えるダメージに常に0.8から1.2の間のランダムな係数を掛けるマルチプレイヤー戦闘システムを扱っています。 理論的には、真にランダムなRNGは、最終的に同じ数を何度も返す可能性があります(テトリスのジレンマを参照)。これにより、プレイヤーが常に非常に高いダメージを与え、他のプレイヤーが常に非常に低いダメージを与えるマッチになります。 これが起こらないようにするにはどうすればよいですか?一部のRNGは、繰り返しを避ける点で他のRNGよりも優れていますか?

6
スコアを膨らませることでプレイヤーは幸せになりますか?[閉まっている]
これはゲームごと、状況ごとの状況に依存し、これはあまり技術的な問題ではないことを理解していますが、数年前に技術ポッドキャストでポイント数が増えたことを覚えていますポイント対1ポイント)は、標準であるか、ユーザーからより良いフィードバック/経験を生み出すことが示されていたため、ゲームでは好ましいものでした。どちらの場合も、ユーザーがより少ないポイントよりも幸せになるように見えました。 それ以来、スコアを膨らませることでユーザーを引き付けることができるという理論について、どちらの方法でも支持的な証拠を見つけることができませんでした。 この膨張点理論は本当ですか?より多くの情報、特に異なるアプローチとその有効性に関するいくつかの実験データはどこで入手できますか?

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