ゲーム開発

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


5
優れた2Dプラットフォーマー物理学[終了]
Box2Dで2Dプラットフォーマー用にセットアップされた基本的なキャラクターコントローラーがあり、気分を良くするために微調整を始めています。物理エンジンには微調整するための多くのノブがあり、物理エンジンで初めて書くのは私にはわかりません。ジャンプはいくつかのティックに力を加える必要がありますか?衝動?速度を直接設定しますか?アバターをすべての摩擦を取り除くことなく壁にくっつかないようにするにはどうすればよいですか(または、すべての摩擦を取り除きますが、空中でのみ)。カプセルとしてキャラクターをモデル化する必要がありますか?角の丸い箱?車輪が2つある箱?ただ一つの大きな車輪?誰かが前にこれをやったに違いないように感じます! 「赤ちゃんの最初の物理学」ではないウェブ上で利用可能なリソースは非常に少ないようです。これらはすべて、誰かがすでに問題を解決したいと思っている場所で途切れています。プラットフォーマー用の物理エンジンのほとんどの例には、浮遊感のあるコントロール、空中ジャンプ、または一時的な侵入が高すぎる場合の容易に悪用可能な動作などがあります。 私が意味するいくつかの例: ジャンプの短いタップは短い距離をジャンプします。長いタップは高くジャンプします。 高速で方向を停止または反転するときの短い横滑り。 傾斜の上に安定して立っている(ただし、ダッキングするときに傾斜を下る)。 アナログコントローラーを使用する場合のアナログ速度。 良いプラットフォーマーと悪いプラットフォーマーを区別する他のすべてのこと。 安定した移動プラットフォームをお勧めしますか? 「ほら、これをやる」を本当に探しているのではありません。明らかに、正しいことはゲームで何をしたいかによって異なります。しかし、誰かが可能性を経験して、「テクニックAはXをうまく機能し、テクニックBはYをうまく機能させるが、それはCでは機能しない」、または「if(key = =スペース)character.impulse(0、1) "
76 box2d  physics  input 

5
手続き的に生成された巨大な「荒野」の世界
ドワーフ要塞のようなゲームはご存知だと思います-大規模で手続き型に生成された荒野と土地。この非常に有用な記事から取られたこのようなもの。 しかし、これをもっと大規模にどのように適用できるのか疑問に思っていました。Minecraftの規模が思い浮かびます(これは地球の表面の8倍の大きさではありませんか?)。擬似無限、最良の用語は次のとおりだと思います。 この記事では、フラクタルパーリンノイズについて説明しています。私はそれに関する専門家ではありませんが、一般的なアイデアを得ることができます(それは、ランダムなピクセル値だけでなく、ある程度コヒーレントなランダムに生成されたノイズの一種です)。 リージョンXごとにサイズを定義し、リージョンをロードするタイプのものを追加し、1ビットのノイズでリージョンを生成できます。しかし、これは膨大な量の島になります。 もう一方の極端な例では、パーリンノイズの超巨大シートを実際に生成できるとは思いません。そして、それはただ一つの大きな島になると思います。 Perlinノイズ、または何らかのノイズが何らかの方法で答えになると確信しています。つまり、地図は本当に見栄えがいいです。そして、アスキーをタイルに置き換えて、見栄えの良いものを手に入れることができます。

6
Minecraft風のボクセルの世界を最適化するにはどうすればよいですか?
Minecraftの素晴らしい大きな世界は、クアッドコアと肉付きのグラフィックカードを使用しても、ナビゲートが非常に遅いことがわかりました。 Minecraftの遅さは次の原因によるものと思われます。 Java。空間分割とメモリ管理がネイティブC ++で高速であるため。 弱い世界分割。 私は両方の仮定で間違っている可能性があります。しかし、これは大きなボクセルの世界を管理する最良の方法について考えさせられました。それは、ブロックは、世界の任意の部分に存在することができる真の3D世界は、であるように、それは大きな3Dアレイ基本的には[x][y][z]世界の各ブロックタイプを有する(すなわちBlockType.Empty = 0、BlockType.Dirt = 1等) このような世界をうまく機能させるには、次のことが必要だと思います。 さまざまなツリー(oct / kd / bsp)を使用して、すべてのキューブを分割します。三角形ごとではなくキューブごとにパーティション分割できるため、oct / kdの方が適しているようです。 ユーザーに近いブロックが背後のブロックを難読化し、それらをレンダリングすることを無意味にする可能性があるため、いくつかのアルゴリズムを使用して、現在どのブロックが見えるかを判断します。 ブロックオブジェクト自体を軽量にしておくと、ツリーにすばやく追加したり削除したりできます。 これに対する正しい答えはないと思いますが、このテーマに関する人々の意見を見てみたいと思います。 大きなボクセルベースの世界でパフォーマンスをどのように改善しますか?

4
ゲームを完全にダウンロードする前に、どのようにしてゲームをプレイ可能にしますか?
Diablo 3とStarCraft 2には素晴らしい機能があります。ゲーム全体またはアップデートのダウンロードが完了する前にプレイを開始できます。 Diablo 3は、UIアセットや、いくつかのレベルで使用されるいくつかのメッシュやテクスチャなどの必須ファイルを最初にダウンロードすると思います。ただし、ゲームを開始するときに、適切なセーブがあれば、好きなレベルを選択できます。プレイ中にこのような遅れは一度も経験していません。開始は常に非常にスムーズです。 これはどのように作動しますか?同様の機能をどのように実装できますか?

11
リプレイシステムの設計方法
それでは、リプレイシステムをどのように設計しますか? Warcraft 3やStarcraftのような特定のゲームでは、ゲームが既にプレイされた後に再び見ることができます。 比較的小さなリプレイファイルになります。だから私の質問は: データを保存する方法は?(カスタム形式?)(小さなファイルサイズ) 何が救われるのでしょうか? 期間を記録するために他のゲームで使用できるように汎用化するにはどうすればよいですか(たとえば、完全一致ではありません)? 早送りと巻き戻しを可能にします(WC3は覚えている限り巻き戻しできませんでした)

4
手続き…ルームジェネレーターのある家
私は、ダンジョンを手続き的に生成することに関するいくつかのアルゴリズムと記事を見てきました。問題は、部屋のある家を作ろうとしているのに、部屋が私の要件に合わないようだということです。 たとえば、ダンジョンには廊下があり、家にはホールがあります。最初は同じように見えるかもしれませんが、ホールは部屋ではないエリアにすぎませんが、廊下はあるエリアを別のエリアに接続するように特別に設計されています。 家とのもう1つの重要な違いは、特定の幅と高さがあることです。また、ダンジョンでは空間が空いているのに対して、部屋全体やホールで物全体を埋める必要があります。 家のホールは、ダンジョンの廊下(他の部屋に行く)とダンジョンの空きスペース(コードで明示的に定義されていない)の間にあるものだと思います。 具体的には、要件は次のとおりです。 すぐに壁やドアを作成できない定義済みの部屋のセットがあります。 部屋は回転することはできますが、サイズを変更 することはできません。部屋の定義済みのセットがあるため、サイズを変更することはできません。 家の寸法は設定されており、部屋(またはホール)で完全 に埋める必要があります。つまり、空きスペースがないことを確認して、利用可能な部屋で14x20の家を埋めたいと思います。 これをもう少し明確にするいくつかの画像を次に示します。 ご覧のとおり、家の中では、「空のスペース」はまだ歩きやすく、ある部屋から別の部屋に移動できます。 したがって、これらすべてを言ったとしても、家は廊下のある非常にぎっしり詰まったダンジョンです。または、ダンジョンよりも簡単なものです。たぶんそこに何かがあり、何を検索すればよいかわからないので見つけられませんでした。 これがあなたの助けが欲しいところです:このアルゴリズムを設計する方法についてのポインタを教えてもらえますか?どのステップを踏むかについての考えはありますか?ダンジョンジェネレーターを作成した場合、要件に合わせてどのように変更しますか?好きなだけ具体的または汎用的にすることができます。本当にあなたの頭脳を探しています。

5
ゲームループでの独立したレンダリングの更新のポイントは何ですか?
ゲームループに関する記事、書籍、ディスカッションは多数あります。しかし、私はかなり頻繁にこのようなものに出くわします: while(running) { processInput(); while(isTimeForUpdate) { update(); } render(); } このアプローチについて基本的に私を悩ませているのは、「更新に依存しない」レンダリングです。たとえば、まったく変更がないときにフレームをレンダリングします。だから私の質問は、なぜこのアプローチが頻繁に教えられているのですか?

7
最新のOpenGL(3.0以降)を学習するための優れたリソースですか?[閉まっている]
OpenGL(3.0以降)から始めるのに適したリソースの検索を見つけました。まあ、私はたくさんの本を見つけましたが、それらのどれも良いリソースと考えることができません! 以下に2つの例を示します。 OpenGLプログラミングガイド(第7版) http://www.amazon.com/exec/obidos/ASIN/0321552628/khongrou-20 これは非推奨の資料でいっぱいです!ほぼすべての章は、それに関するメモから始まります。 OpenGL Superbible(第5版) http://www.amazon.com/exec/obidos/ASIN/0321712617/khongrou-20 この本は、著者が作成したライブラリを使用して、主な議論を説明し、学習したいことを隠しています。ライブラリの使用方法を学びたくありません!OpenGLを学びたい! これが「ちょっとGoogleを使えない... OpenGLの学習方法を教えてください」のような質問ではないことをご理解ください。完全かつ詳細な検索を終了しましたが、廃止されたトピックを避けて「新しい」OpenGLを学習するための優れた完全なリソースが見つかりません。 誰かが正しい方向に向かってくれますか?私はC ++を知っており、開発に10年の経験があります...良いリソースを見つけることができますか?!私はそれに時間を費やし、深く学びたいです。
73 opengl  assets 

6
ネットワークゲームの書き方 [閉まっている]
基づいて、なぜそれがMMOを開発するのは難しいのですか?: ネットワーク化されたゲーム開発は簡単ではありません。遅延だけでなく、チート防止、状態管理、および負荷分散においても克服すべき大きな障害があります。ネットワークゲームを作成した経験がない場合、これは難しい学習課題になります。 ソケット、サーバー、クライアント、プロトコル、接続などに関する理論を知っています。 今、私はどのようにネットワークゲームを書くことを学ぶことができるのだろうか: 負荷の問題のバランスをとる方法は? ゲームの状態を管理する方法は? 物事を同期させる方法は? 通信とクライアントをリバースエンジニアリングから保護する方法 遅延の問題を回避する方法は? ローカルで計算する必要があるものとサーバー上のもの ... これに関する良い本、チュートリアル、サイト、興味深い記事、またはその他の質問はありますか? 幅広い答えを探していますが、違いを学ぶには特定の答えでも構いません。

9
C ++ゲーム開発用の使いやすいクロスプラットフォーム3Dエンジン?[閉まっている]
3Dゲームの作成に手を取りたいです。ただし、個々の三角形を描画し、独自の3Dオブジェクトローダーを作成するなどの低レベルから始めたいとは思いません。Irrlicht、Crystal Space 3D、Cafuのようなことを聞​​いたことがありますが、私はそれらのどれにも経験がありません。これらのエンジンや他のエンジンを使いこなしており、3D数学理論やGPUが内部でどのように機能するかを学ぶ必要なしに使い始めやすいエンジンの経験がある人からの提案を探しています。
73 c++  3d  cross-platform 

10
生きることの目的は何ですか?
ゲームデザインでは、すべて、特に生活のように標準になったものについて、なぜ質問するのは非常に重要だと思います。だから私は、人生の概念を持つゲームの目的は何ですか?なぜ生きているのですか?

11
ゲームの最小ハードウェア/ソフトウェア要件を判断するにはどうすればよいですか?
開発に単独で使用する場合、利用できるリソースは限られています。つまり、ゲームの開発とテストに使用する1台のPCのみです。そのため、私は自分のゲームがそのセットアップで動作することを確信しています。 多くの異なるハードウェア/オペレーティングシステムの組み合わせでゲームをテストする場合、どのようなオプションがありますか?そのWindowsデスクトップゲーム。

6
RPGがレベルアップに必要なXPの量を知らせるのはなぜですか?
Behavioral Game Designと呼ばれるこの記事を読んでいて、次のように書かれています。 ...どのようにしてプレーヤーに高い一貫した活動率を維持させるのですか?...答えは可変比率のスケジュールであり、各応答には報酬が発生する可能性があります。 RPG(私はファイナルファンタジー1-6のような伝統的なJRPGを考えています)は、キャラクターのレベルアップに関してはこれを行いません。いつでもゲームを一時停止して、レベルアップに必要なXPの量を確認できます。これまでにWoWをプレイしたことはありませんが、レベルアップするために必要なXPの量がわかると思います。WoWには、ゲーム内の他の場所に「可変比率スケジュール」の例がたくさんあります。XPに関しては、レベルアップする必要があるのはなぜですか。 ほとんどのプロのゲームデザイナーは、この記事の教訓を知っていると思います。では、なぜ次のレベルを知るために必要なXPの典型的なのでしょうか?次のレベルで何人の敵を倒す必要があるかがわからないランダムなゲームを設計できます。それで、なぜ彼らはこれを「可変比率スケジュール」を持つ機会として使わないのでしょうか?


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