ゲーム開発

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

4
ラインコリジョンで2Dラインを検出する方法
私は数学が少し後戻りしているFlash ActionScriptゲーム開発者ですが、物理学は面白くてクールです。 参考のために、これは私が作っているものと類似したゲームである:Untangledフラッシュゲーム 私はこのもつれのないゲームをほぼ完全に論理的に完成させました。しかし、2本の線が交差する場合、異なる色を表示するために、交差または「もつれた」線が必要です。赤。 線分衝突を検出するためのアルゴリズムを提案できれば、本当に親切な人になります。私は基本的に「算術的」よりも「視覚的に」考えるのが好きな人です:) 編集:アイデアをより明確に伝えるために、いくつかの図を追加したい PS私は次のような関数を作成しようとしています private function isIntersecting(A:Point, B:Point, C:Point, D:Point):Boolean 前もって感謝します。

2
エレベーター付きの家の地図の迷路が解決できることを確認しますか?
私のゲームでは、家の床を横から見ることができ、ヒーローはリフトを取ることができます-リフトは、矢印に応じて、上昇(次のリフトまで)、または下降(次のリフトまで)します示されており、接続されているちょうど2つのリフトのペアが常にあります。主人公が垂直方向に移動できる唯一の方法ですが、水平方向に自由に移動できます。家の地図はランダムな11x5グリッドで、さまざまなアイテムと、左端、右端、時には2つの中央の位置のいずれかに通過できない壁があります。 私の質問:マップが常にランダム化され、常に解決可能であり、ヒーローが最下階の左側から開始して、最上階にある上向きのリフトを介して常にマップから離れることができるようにするにはどうすればよいですか? 価値があるのは、開発にLua言語を使用することです。本当にありがとう!
13 2d  maze 

5
ゲームディレクターとゲームプロデューサーの違いは何ですか?
私は坂口博信が取り組んでいるゲームのリストを閲覧していましたが、彼はゲームごとにクレジットが異なることに気付きました。そのリストからいくつかのゲームを引用するだけで、彼は次のように信じられています: ファイナルファンタジー1〜5、最後の物語の監督 ファイナルファンタジー6、7、9およびTacticsのプロデューサー、ロストオデッセイ Xenogearsのエグゼクティブプロデューサー、Vagrant Story、Final Fantasy 8 これにより、これらのポジションの違いがわからず、ゲーム開発プロセスにどのように貢献しているかがわかりました。

3
偏った保守的なランダムウォーク
とのどちらかとして保存されたスプライトがVelocityありPositionますVector2。各Updateサイクルで、速度が位置に追加されます。 スプライトに3番目のベクトルを与えたいと思いTargetます。新しいターゲットは、どの反復でも指定できます。スプライトが本質的にランダムウォークパターンで移動するようにしたいのですが、2つのパラメーターを公開する必要があります。 典型的なランダムウォークは、任意の距離までの距離を増加または減少させる可能性がありますTarget(さらに、接線方向の動きのわずかな可能性)。私はランダムウォークにバイアスをかけることができなければなりませんが、それでもランダムではありますが、スプライトが「決定する」方向がより近くなるようにする必要がありますTarget。 ランダムウォークは「スムーズ」である必要があります。スプライトの方向が急激に変わることはありません。これは、プレイヤーにとって「ちらつき」または「震え」のように見えるためです。平均化するとゆっくりと近づきながら、ランダムに移動しながら、このように、または徐々に変化します。 これを行うための良い、簡単な方法は何ですか?可能であれば、答えをVector2 RandomWalk(Vector2 target)メソッドとして提供します。 NextGaussian(mean, stdev)役立つ方法があれば、すでに利用可能なメソッドがあります。

2
リアルなメタルシェーダー
優れた金属シェーダーをどのように作成しますか? さまざまな金属の場合、多かれ少なかれ侵食/さびなどを言います。 通常の素材との違いの1つは、金属が鏡面反射光を「着色」することですが、たとえば金でそれを行うと、金属ではなく「黄色」に見えることを知っています。 どんな助けも感謝します!

4
Windows用のゲームを作成してお金を稼ぐ方法は?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 6年前に閉鎖されました。 ゲームを作成します。まあ、ゲームのセットですが、それらは少しずつ発生します。そのため、最初に1つのゲームがあります。 ゲームは、サーバー側のゲーム処理、統計などを含む、WPFおよびWCF技術を使用してC#で記述されます。 そして、ええ、私はちょうど1つの会社で私の現在の仕事を辞めたので、私は生きなければなりません。 だから、この素晴らしい開発でお金を稼ぐ方法は?これらのゲーム(五目並べ、海戦など)を開発して実際にプレイするのが好きになり次第、私にとって大きな喜びになるでしょうか? 私は2つの方法しか見ていません。1つは投資家を見つけることで、もう1つは100%のサーバー稼働時間で少なくとも1つのゲームを完了して配信を開始することです。 しかし、勧告が必要です。実際、私は助けが必要です-このことすべてをどのように正確に行い、飢えないようにするかの説明:)。

1
タイルマップの上に複雑な衝突領域を定義するにはどうすればよいですか?
多くの人が推奨しているように、私はTiledマップエディターを使用してゲーム用のマップを作成していますが、特にlibgdxフレームワークはTiledのマップ用のAPIを提供しているので素晴らしいです。 マップエディターで衝突可能なタイルを定義できるかどうかを定義できるため、コード内の衝突に対処できます。しかし、現在、タイルを衝突可能領域と衝突不可能領域に分割する必要がある状況にあります。手動で、2つの領域の境界のポイントとラインを定義し、プログラムでそれを処理できると思います。しかし、それは多くの時間のかかる仕事です。 それで私はたくさんのグーグルでこの物理ボディエディタを見つけました。これは、上記のプロセスを自動化するための素晴らしいツールのようです。ただし、システムは展開された各イメージで動作し、その操作のためにイメージを展開しても動作するかどうかはわかりません。 衝突領域を定義するこのプロセス全体を実行するより良い方法があるのだろうか。どんな提案も大歓迎です。

2
WoWのグロー効果に似たグロー効果を実現するにはどうすればよいですか?
最近、ガウスフィルターを使用してグロー効果を実装しましたが、望んでいた効果をすべて得ることができませんでした。WoWで特定のグロー効果がどのように行われるかを知りたいです。この画像のように: 剣の周りには本当に素晴らしいグロー効果があります。これはどのように行われますか?また、WoWでは、これらのグローエフェクトが独自の生活を送ることがあります。この写真の紫色の輝きのように: これらはパーティクル効果で達成されていますか?これらの効果の実行方法を学ぶのに役立つ良いリソース/チュートリアルはありますか?
13 particles  glow 

2
近くのクリッププレーンよりも目に近いクリッピング頂点をどのように処理すればよいですか?
JavaScriptで独自の3Dエンジンを展開し、キャンバス描画のみを使用し、WebGLは使用していません。これは別のMinecraftクローンです。私は箱が大好きです、私を判断しないでください。 これまでのところ、すべてが素晴らしく機能しますが、1つのことを除いて:3Dでは、いくつかの頂点が近くのクリッピングプレーンの背後に移動すると、画面上の投影が奇妙になります(プレーンをトレースするために使用される他の頂点が前面にあると仮定)。 これらのポイントをクリップしてみましたが、これらの頂点を使用するサーフェスの谷を見ることができます。WebGL / OpenGLでは、グラフィックカードがこれらのポイントを処理し、プレーンが正しくレンダリングされますが、ハードウェアにアクセスできないため、これを自分でコーディングする必要があります。 私はそれをどうすればよいのかよく分かりませんが、現在最後に思いついたのは、プレイヤーの近くのクリッピング平面の後ろにあるポイントの投影を逆にすることです。これは、正面にあるスクリーンにポイントを投影する必要があるため、論理的に思えます頂点の。 私の考えは次のとおりです。 以下は、何が起こるかを説明するための画像です。 遠くから見ると、青いボックスは完璧にレンダリングされます。 頂点のいくつかがプレイヤーのクリッピングプレーンの背後にある場合、逆投影を行いますが、正しく見えません。 focalLength *= -1; 2d.x = x*focalLength/z; 2d.y = y*focalLength/z; 顔の描画に使用されるすべての頂点がプレーヤーの背後にあるため、背後の灰色のボックスは完全に削除されます。 これは、ルックアップまたはダウンしたときに起こることです。 私はこの背後にある数学をどうすればいいのかわかりません。誰かがすでに同じ問題に遭遇し、助けてくれることを望んでいます。

2
プレーヤーがアチーブメントを完了したかどうかを確認するにはどうすればよいですか?
MMOゲームを作成していますが、成果を実装する必要があります...どうすればよいですか?最も簡単なことは、これを100msごとに1回実行することです。 for a in achievements for p in players if a.meetsRequirements(p) then p.completeAchievement(a) しかし、それはさらに複雑な問題を引き起こします。たとえば、アチーブメントが実際に完了したかどうかを確認するにはどうすればよいですか?プレイヤーは特定の成果のためだけにカスタムプロパティを持っていますか?私はクエストでこの種のことをしました。なぜなら、それらは主に「100個の木材を収集する」からです。また、それをチェックするより良い時間があるはずです、これは私のサーバーを定期的に遅くするでしょう、と思います。

5
コンピュータゲームのサイズが大きく異なるのはなぜですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 2年前に閉店。 ほぼ同じグラフィックス(バンプマップ、シェーダーなど)、サウンドの複雑さ、およびプレイスルー時間を(見たところ)持っているPCゲームがたくさんありますが、そのうちの1つは4 GBのスペースを必要とし、他の13 GBは必要です。 何故ですか?なぜサイズが大きく異なるのですか?
13 optimization  pc 

3
外部コンポーネントマネージャーでエンティティシステムを整理しますか?
トップダウンマルチプレイヤー2Dシューティングゲーム用のゲームエンジンを設計しています。これは、他のトップダウンシューティングゲームで合理的に再利用できるようにしたいものです。現時点では、その中のエンティティシステムのようなものをどのように設計すべきかを考えています。最初に私はこれについて考えました: EntityManagerというクラスがあります。UpdateというメソッドとDrawという別のメソッドを実装する必要があります。ロジックとレンダリングを分離する理由は、スタンドアロンサーバーを実行している場合、Drawメソッドを省略できるためです。 EntityManagerは、BaseEntityタイプのオブジェクトのリストを所有しています。各エンティティは、EntityModel(エンティティの描画可能な表現)、EntityNetworkInterface、EntityPhysicalBodyなどのコンポーネントのリストを所有しています。 EntityManagerは、EntityRenderManager、EntityNetworkManager、EntityPhysicsManagerなどのコンポーネントマネージャーのリストも所有しています。各コンポーネントマネージャーは、エンティティコンポーネントへの参照を保持します。このコードをエンティティ自身のクラスから移動し、代わりにまとめて実行する理由はさまざまです。たとえば、ゲームには外部の物理ライブラリ、Box2Dを使用しています。Box2Dでは、最初にボディとシェイプをワールド(この場合はEntityPhysicsManagerが所有)に追加し、コリジョンコールバック(システムのエンティティオブジェクト自体にディスパッチされる)を追加します。次に、システム内のすべてをシミュレートする関数を実行します。このような外部コンポーネントマネージャーで行うよりも、これを行うための優れたソリューションを見つけるのは難しいと思います。 エンティティの作成は、次のように行われます。EntityManagerが登録方法のRegisterEntity(entityClass、工場)を実装する方法を、そのクラスのエンティティを作成することを。また、BaseEntity型のオブジェクトを返すメソッドCreateEntity(entityClass)も実装します。 ここで私の問題が起こります:コンポーネントへの参照はどのようにコンポーネントマネージャーに登録されますか?ファクトリー/クロージャーからコンポーネントマネージャーをどのように参照するかわかりません。

3
いくつの成果を含める必要があり、どのような課題がありますか?
この質問は非常に広く主観的であることがわかっていますが、成果の最適数とは何か、またどのような課題を提示すべきかについての研究が公開されているのではないかと思っています。この質問が直接関係するゲームはシュートエムアップですが、理想的な答えはかなり理論的です。 実績が少なすぎる場合、または挑戦的でない場合は、人々がプレーし続けるという目標に失敗することを期待します。数が多すぎる場合、またはそれらが不当に難しい場合は、人々がすぐにgiveめることを期待します。私は個人的に後者がStarcraft 2で起こっているのを目撃しました。成果のセクションあなたが彼らのAIを相手にゲームの何百も勝つだろう(退屈!)

2
射撃でインテリジェントな敵を実装する方法は?
誰もが知っている、非常に単純なシューティングを想像してください。 あなたはプレイヤーです(緑)。あなたの動きはX軸に制限されています。私たちの敵(または敵)は画面の上部にあり、彼の動きもX軸に制限されています。プレイヤーは敵に弾丸(黄色)を発射します。 プレイヤーの弾丸を回避するのに本当に優れているはずの敵にAIを実装したいと思います。私の最初のアイデアは、画面を個別のセクションに分割し、それらに重みを割り当てることでした。 2つの重みがあります。「弾丸の重量」(灰色)は、弾丸によって課される危険です。弾丸が敵に近ければ近いほど、「弾丸の重量」0..1が高くなります(ここで、1が最も危険です)。弾丸のないレーンのウェイトは0です。2番目のウェイトは「距離ウェイト」(ライムグリーン)です。すべての車線に0.2移動コストを追加します(この値は現在では任意であり、調整可能です)。 次に、重みを追加し(白)、重みが最も小さいレーンに移動します(赤)。しかし、このアプローチには明らかな欠陥があります。最適な場所は、 2つの入ってくる弾丸の間(白い矢印で示されているように)であるため、極小値を簡単に見落とす可能性があるからです。 だからここに私が探しているものがあります: 弾丸の脅威を課す場所がない場合でも、弾丸嵐を乗り越える方法を見つける必要があります。 敵は、最適な(またはほぼ最適な)ソリューションを選択することで、確実に弾丸をかわすことができます。 アルゴリズムは、弾丸の移動速度を考慮できる必要があります(異なる速度で移動する可能性があるため)。 さまざまなレベルの難易度を適用できるようにアルゴリズムを微調整する方法(超知能の敵には馬鹿です)。 敵は弾丸を避けたいだけでなく、プレーヤーを撃つこともできるため、アルゴリズムはさまざまな目標を許可する必要があります。つまり、弾丸をかわすときは、敵がプレイヤーを射撃できる位置が優先されるはずです。 それでは、これにどのように取り組みますか?このジャンルの他のゲームとは対照的に、私は少数の、しかし非常に「熟練した」敵を大勢の愚かな敵の代わりに持ちたいです。

5
カードゲームでカードのドロップシャドウ効果を描画するために、どのレンダリングテクニックを使用しますか?
どのような種類のシェーディングアルゴリズムを使用して、これらのような影を作成できますか? 私が作っているものは似ていますが、すべてOpenGLを使用した2D描画APIで行われているため、Z座標はありません。 さらに、手自体については、次のような陰影を付けたいと思います。 それに近い影付きの外観を実現する方法がわかりません。 カードの数は変化するはずであり、カードはテーブルに投げられるので、どのような種類のライトマップも使用できません。 どのような種類のアルゴリズムを検討する必要があります(実行する必要があるとわかっているぼかしは別ですか?) ありがとう 更新 2Dカードゲームを作っています。私は、カードからドロップシャドウのオフセットを少し追加します: 私がそれをすることを考えている方法は次のとおりです。 バックバッファと同じサイズのテクスチャを保持します。 そのテクスチャの間に合わせのカードとして暗い長方形を描きます。 そのテクスチャをぼかします。 そのテクスチャにカードを引きます。 カードをさらに照明します。 このテクスチャをバックバッファに描画します。 私の質問は: これは正しい方法ですか? テクスチャにレンダリングせずにそれを行う方法はあり ますか(バックバッファと同じ大きさのビットマップを保持します)? バックバッファサイズが最大テクスチャサイズを超えないと想定しても安全ですか?(つまり、バックバッファ が2000x3000 であれば、 そのサイズのビデオメモリにテクスチャを作成できると言っても安全ですか? ありがとう

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