ゲーム開発

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

6
手続き型生成を使用して探査メカニズムをサポートするにはどうすればよいですか?
手続き型の生成はオープンアドベンチャーゲームに最適なツールと思われます。これは、無限の世界を提供するためです。しかし、私は最も成功した手続き型生成ゲームがまったく異なるジャンルのものであることに気づきました。特に探索に手続き型生成を使用していると考えることができる唯一のゲームはNo Man's Skyですが、おそらく、手続き型のコンテンツが膨大であるにもかかわらず、探索ゲームのメカニズムに必ずしもそれほど多くの価値を追加しなかったため、期待に応えられませんでした人々はそうするだろうと思った。 手続き型生成ゲームを作成する試みと、他のゲームで目にするものから、アドベンチャーゲームでの手続き型生成を妨げる3つの問題があり、解決策はありません。 手続き型の地形は簡単かもしれませんが、手続き型のストーリーテリングはそうではありません。両方試しました。いくつかの単純なルールは、山や都市に似たものを作ることができますが、何らかのクエストがない限り、その周りでゲームを作ることは困難です。ただし、操作するマップがない限り、クエストを設計することは困難です。存在しないかもしれない場所を見つけるために、どのように探求できますか? 手続き型地形は、密度のないスケールを提供します。確かに、手続き型の山には、実際の山の複雑さを与えるためにすべてのテクスチャと尾根があるかもしれませんが、その山で行うことがたくさんない限り、どこが楽しいのでしょうか。手続き型生成の強みの多くは、何かを巨大にするのが簡単なことです。その世界で体験するのに十分な新しいものを置かずに世界をあまりにも大規模にした場合、それはただ空っぽに感じるでしょう。 経験は一貫していません。アドベンチャーゲームの楽しみの多くは、「その一部」に達しています。ウォークスルー、チュートリアル、Wikiは、通常、プレーヤーがすべて同じゲームを同じ世界でプレイしているという事実に依存しています。エクスペリエンスが非常にパーソナライズされている場合、ゲームの興奮を他の人と共有することはより困難です。同じ場所、キャラクター、またはクリーチャーを使用してゲームをプレイした世界中の他のプレーヤーがいない場合、ゲームについてミームを共有することを想像してください。 これらの問題、そしておそらくあなたが頭に浮かぶことができる他の問題を維持しながら、探査を台無しにせずに手続き型生成をゲームに組み込む方法はまだありますか?たぶん、アドベンチャーゲームが恩恵を受けることができるが、ストーリーの邪魔にならないいくつかの限定された手順のテクニック?

5
経験の向上とプレーヤーのコラボレーションのバランスをとるにはどうすればよいですか?
私は友達とオンラインゲームを開発していますが、現在、ゲームデザインの全体的な問題によってブロックされています。経験値と戦利品/ゴールドでプレイヤーに報酬を与える一方で、特に必ずしもそうでないプレイヤーと一緒にプレイするように奨励する方法彼らのスキルの範囲で? 私たちのゲームの技術的な詳細: グリッドベースのトップダウンの世界地図レイアウト(ゼルダの伝説を考えてください) ランダムに生成されたターンベースのダンジョン(ポケモンミステリーダンジョンを考えてください) 経験曲線、非戦闘スキル、取引、社会的相互作用(ルーンエスケープを考えてください) この計画は、プレイヤーが社交し、クエストの一部を行い、地上でスキルを発揮してから、最大4人の友達のグループと一緒にダンジョンに入り、戦闘をスキルして戦利品を獲得することを目的としています。理想的には、スキルの高いプレーヤーほどハードダンジョンに参加し、ハードタスクを実行できる一方で、平凡でなく、1人のプレーヤーにほとんどの戦闘を行わせることなく、新しいプレーヤーに簡単なダンジョンで参加できます。 可能な修正: あらゆる種類の経験曲線と報酬を削除し、すべてのバランスをとる(欠点:粉砕する理由がない) 「平準化」をより多くのお金とより良い武器を得ることに制限します(欠点:略奪品を実質的に持つことはより高いレベルになります) ダンジョンにいるときに、低レベルのプレイヤーを最高レベルのチームメンバーのレベルまで上げます(欠点:プレイヤーがすぐにスキルを習得できるようにする抜け穴になる場合があります) ユーザーのスキルを必要とするゲームの追加コンポーネントを追加します。これにより、プレーヤーは、ゲームに優れているためにレベルだけに依存することはありません(たとえば、クイックタイムイベント)(欠点:ターンベースのゲームで実装するのが難しい、あいまい) これらはほんの一部のアイデアであり、私はこの問題についてしばらく考えてきました。この問題についてどう思いますか、これを調整するためにどのようなメカニズムを導入できますか?

2
アニメーターでスパゲッティを避けるには?
Unityでアニメーションを操作していますが、これまでに4つ(上下左右)しか作成しておらず、アニメーションウィンドウは次のようになっています... 問題は、私が上に移動している場合、ヒーローが「ニュートラルアイドル」(または彼が開始したもの)に移動しないで上を見続けることを望んでいることですが、それは私が4つのアイドルポジションを持っていることを意味します... 、左または右、彼らは追加の各アクションで指数関数的に行く... これは私が何か間違っているように感じます... 異なるアクション間で遷移するより良い方法はありますか?
9 unity  2d  animation 

2
2D City Builderで高価な関数のパフォーマンスを向上させる方法
すでに回答を検索しましたが、高価な関数や計算を処理するための最良のアプローチを見つけることができませんでした。 私の現在のゲーム(2dタイルベースの都市の建物)では、ユーザーは建物を配置したり、道路を構築したりできます。すべての建物は、ユーザーがマップの境界に配置する必要があるジャンクションへの接続を必要とします。建物がこのジャンクションに接続されていない場合、「道路に接続されていません」の標識が影響を受ける建物の上にポップアップ表示されます(それ以外の場合は、削除する必要があります)。ほとんどの建物には半径があり、互いに関連している可能性があります(たとえば、消防署は半径30タイル以内のすべての家を助けることができます)。これは、道路の接続が変更されたときにも更新/確認する必要があることです。 昨日、パフォーマンスの大きな問題に遭遇しました。次のシナリオを見てみましょう。ユーザーはもちろん、建物や道路を消去することもできます。したがって、ユーザーがジャンクションの直後に接続を切断した場合、同時に多くの建物を更新する必要があります。最初のアドバイスの1つはネストされたループを避けることです(これは間違いなくこのシナリオの大きな理由です)が、私は確認する必要があります... 道路タイルが削除された場合に建物がまだジャンクションに接続されている場合(私はその道路によって影響を受けた建物に対してのみそれを行います)。(このシナリオでは小さな問題である可能性があります) 半径タイルのリストと、半径内の建物を取得します(ネストされたループ-大きな問題!) 。 // Go through all buildings affected by erasing this road tile. foreach(var affectedBuilding in affectedBuildings) { // Get buildings within radius. foreach(var radiusTile in affectedBuilding.RadiusTiles) { // Get all buildings on Map within this radius (which is technially another foreach). var buildingsInRadius = TileMap.Buildings.Where(b …

5
Vector3で演算子 '> ='を使用できないのはなぜですか?
私は私がように参照する2つの位置の間を移動するための四角形を取得しようとしている_positionAとします_positionB。どちらもタイプVector3です。長方形はうまく動きます。ただし、到達_positionBしても、本来のように反対方向に移動することはありません。 コードをもう一度見てみました。オブジェクトが移動ifすると、コード内のステートメントは、rectsの位置がに等しいフレームを逃したという結論に達しました_positionB。rectsの位置がより大きいか等しい 場合は、コードを変更して方向を逆にすることにしました_positionB。私のコードは長すぎないので、以下に表示します。 using UnityEngine; using System.Collections; public class Rectangle : MonoBehaviour { private Vector3 _positionA = new Vector3(-0.97f, -4.28f); //Start position private Vector3 _positionB = new Vector3(11.87f, -4.28f); //End position private Transform _rect_tfm; private bool _atPosA = false, _atPosB = false; public Vector2 speed = new Vector2(1f, 0f); private …
9 unity  c#  vector  mathematics  vector  matrix  unity  c#  transformation  java  3d  terrain-rendering  shading  ios  opengl-es  opengl  rendering  optimization  python  scripting  minecraft-modding  modding  pc  3d-meshes  mesh  culling  point-cloud  networking  interpolation  mathematics  game-design  ai  game-mechanics  animation  unreal-4  skeletal-animation  3dsmax  unity  c#  3d  opengl  c++  textures  unity  ide  cocos2d  cocos2d-x-js  unity  c#  mono  il2cpp  c++  game-loop  timer  linux  flash  actionscript-3  java  glsl  c++  vector  entity-component  c++  directx11  windows  visual-studio  libgdx  mouse  unity  c#  architecture  storage  unity  c#  rotation  coordinates  quaternion  vrpn  movement  vector  unreal-4  unity  shaders  unity  gui  text  bug  shooter  3d  animation  rendering  voxels  c++  mmo  multithreading  linux  textures  procedural-generation  terrain-rendering  multiplayer  mmo  game-state  java  android  libgdx  opengl  procedural-generation  unity  gui  3d  animation  tools  geometry-shader  mobile  advertisements  unity  c#  animation  scripting  unity  animation  unityscript  coroutines  unity  shaders  lighting  camera 

2
iTunes Connectのアプリ分析がなぜ間違っているのですか?
私はモバイルゲームを開発し、Google PlayとApple App Storeの両方に掲載しています。Google Playからのインストール統計は私自身の統計に非常に近いですが、iTunes Connectが示す統計はオフです-約120しかない場合、ほぼ1,000の「アプリユニット」(私はインストールを意味する)を示します。 「インストール」のほとんどは中国からのものです。 私は、1)iTunes Connectがこれらの偽の「インストール」をすべてカウントしている理由と、2)これらのすべての偽のインストールを実行することで得られる可能性のあるメリットを理解しようとしています。 ご理解のほどよろしくお願いいたします。
9 iphone  ipad  appstore 

3
体験を台無しにしないゲームに繰り返しを組み込む方法
私は外国語を教えながら、アドベンチャーRPGの形式に追従しようとする教育技術(Edtech)ゲームを構築しています。 明らかに、EdTechゲームは実際に教える必要があり、習得には繰り返しが必要です。特に、習得するには多くの練習が必要な外国語。ただし、ゲームの目標は、ストーリーラインとゲームの世界が、プレイヤーが夢中になっているポイントに没頭できるようにすることです。繰り返しが多いと、ストーリーの没入型の側面と直線性が失われます。 生徒が情報を保持するだけでなく、ストーリーと一緒に楽しくプレイできるように、必要な繰り返しが行われていることを確認するためのいくつかの戦略は何ですか?いずれかがあります?

2
カラーミキシングゲームをもっと難しくするにはどうすればよいですか?
私は最初のゲームを作っていますが、それはあまりにも簡単です。それをより困難にするための標準的な「テクニック」はありますか? ゲームはかなりシンプルです。ゲーム2048を想像してください。方向にスライドすると、ブロックはすべてその方向にスライドし、衝突またはマージします。ただし、数値をマージする(2048の2 + 2 = 4など)のではなく、色をマージするため、黄色のブロックが青いブロックに当たると、緑になります(そして、赤+黄色=オレンジなど)。次に、原色(青)および新しく作成された二次色(緑)は、三次色(この場合は「青緑」)になります。 その時点で、三次色(私が「三次爆弾」と見なしたもの)をタップすると、その三次色がすべて破壊されるため、「青緑」はすべての「青」ブロックを破壊します。2048と同じように、移動できなくなると負けますが、爆弾を作成することにより、行き詰まらないようにするのは簡単すぎるようです。 経験豊富なゲームデザイナーは、どうすればこのゲームを簡単なものにできないでしょうか。

1
OpenGLでGPUベースの動的ジオメトリLODを実装するにはどうすればよいですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 昨年休業。 ゲームのパフォーマンスを向上させるためにLODを実装しようとしています。とてもいいチュートリアルを見つけました。 私が理解していると思う基本的な概念は、カメラからオブジェクトまでの距離を取得し、適切なLODレベルを確認してから、「適切な量のインスタンス」でオブジェクトをレンダリングすることです。 それをどのように実装しますか?提供されているサンプルコードは私にとって謎です... いくつかの質問: これはLODを実装する良い方法ですか? 誰かが私に詳細、私がそれを実装する方法、クエリなどを説明してくれますか? すべてのオブジェクトをレンダリングしています GL11.glDrawElements(GL11.GL_TRIANGLES, model.getRawModel().getVertexCount(), GL11.GL_UNSIGNED_INT, 0); コード例ではを使用していGL_POINTSます。でも実装できますGL_TRIANGLESか?
9 opengl  java 

1
モデルのアニメーションテクスチャ。シェーダーの書き方は?
ロケットリーグを見ていて、アニメーションのデカールとホイールがあることに気づきました。 。 上の画像の効果に似たものを実装したいと思います。 Unityシェーダーを作成してホイールエフェクトを作成するにはどうすればよいですか? シェーダーについてよく知りませんが、標準のUnityシェーダーを編集してアニメーション効果を実行できますか?

2
コンポーネント間通信を安全かつキャッシュフレンドリーなコンポーネントストレージでサポートするにはどうすればよいですか?
コンポーネントベースのゲームオブジェクトを使用するゲームを作成していますが、各コンポーネントがゲームオブジェクトと通信する方法を実装するのに苦労しています。すべてを一度に説明するのではなく、関連するサンプルコードの各部分について説明します。 class GameObjectManager { public: //Updates all the game objects void update(Time dt); //Sends a message to all game objects void sendMessage(Message m); private: //Vector of all the game objects std::vector<GameObject> gameObjects; //vectors of the different types of components std::vector<InputComponent> input; std::vector<PhysicsComponent> ai; ... std::vector<RenderComponent> render; } GameObjectManagerすべてのゲームオブジェクトとそのコンポーネントを保持しています。また、ゲームオブジェクトの更新も行います。これは、コンポーネントベクトルを特定の順序で更新することによって行われます。配列の代わりにベクトルを使用するので、一度に存在できるゲームオブジェクトの数に実質的に制限はありません。 class GameObject …

2
一定時間の誘導ミサイル
プレイヤーとミサイルでゲームを構築しています。 P1からP2までミサイルを発射したい。ミサイルがP2に到達するには、常に正確に5秒かかる必要があります。ミサイルもP2を追跡する必要があります。P2がさらに離れると、ミサイルはタイミング制約を満たすために速度を上げる必要があります。P2が左に移動する場合、ミサイルは左に移動する必要があります(速度も変更します)。P2がP1に近づくと、ミサイルは減速する必要があります。 これは可能ですか?これを達成するための最良の方法は何ですか? 私は現在Vector2Dクラスを持っていません(これは実際にはゲームではありませんが、類推はうまくいきます)。したがって、可能であれば、それを必要としないソリューションが欲しいです。 編集:これは実際にはミサイルでもありません。:) ありがとう!

1
2D物理エンジンで、オブジェクトが静止したときに不要な衝突解決を回避するにはどうすればよいですか?
love-2dを使用して(学習用に)開発している物理エンジンで、衝突解決を次のように実装しました。 FixedUpdate(dt) // I use fixed timestep foreach collide c1 in allNotStaticColliders c1.integartePhysic // i.e. apply gravitational force.. foreach collider c2 "near" c1 // "near"= I use spatial hashing if collide(c1,c2) resolve collision (c1,c2) // the heavy operation collison callbacks c1 collison callbacks c2 ... gifアニメーションの最後にあるように、すべてのコライダーが静的オブジェクトにほぼ固定されている場合は、FPSの減衰があります。 これは、オブジェクトが落ち着くまでの接触時間を長くすると、衝突解決の数が増えるためです。ただし、オブジェクトはすでに互いに安定した位置に落ち着いているため、計算の多くは「役に立たない」ものです。 これらの「役に立たない」衝突検出を回避するためのベストプラクティスは何ですか(できれば物理学の学位を必要としないでしょう)。 編集:DMGregoryのヒントを受け入れ、この結果になります(まだ最適ではありません) (赤=静的、青=アクティブ、緑=スリープ)

3
チョークポイントで群衆に対処するための戦略
最近、ゲームエンジンをステアリング動作からインパルスベースの動きに切り替え、適切な時間ベースの衝突解決を行いました。これにより、非常に多くの問題が解決され(トンネリングが不要になりました)、シミュレーションが大幅に安定しました。しかし、安定性には新たな問題が生じています。 3つのボールは画像の下部近くで移動を開始しました。ターゲットはピンク色のボールが止まったところです。途中、赤と緑のボールが壁のチョークポイントに引っかかっています。 以前は、浮動小数点エラーとステアリング動作の一般的な不安定性を利用して、緑と赤のボールがチョークポイントを通り抜けるまで互いに揺さぶることができました。これで、適切な衝突解決により、ボールに作用する力が互いに相殺され、その結果、ボールは完全に静止したままになります。 そのような状況を解決するために一般的に使用される方法は何ですか?おそらく、ある種の優先度キューシステムが機能しますが、2つ以上のオブジェクト間の優先度を決定する必要があると、システムが複雑になることがわかります。


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