ゲーム開発

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

2
ゲームオブジェクトの下の地形を平坦化するにはどうすればよいですか?
地形オブジェクトを作成してテクスチャでペイントするスクリプトを入手しましたが、問題があります。ゲームオブジェクト(Unityが提供する単純な水オブジェクトなど)を配置しようとするときは、レイキャストを使用してゲームオブジェクトを配置するための正しい高さを決定しますが、これにより、オブジェクトが特定のポイントに正しく配置されるようになります。 ゲームオブジェクトの下の地形を平坦化して、地形に進入したり、丘の場合は薄い空気にぶら下がったりしないようにするにはどうすればよいですか?
10 unity 

1
box2dで羽毛の落下をシミュレートする方法は?
私はBox2d拡張機能を備えたAndEngineを使用していますが、一般的な回答やコンセプトのアイデアも高く評価されます。 物理シミュレーションの一部にしたい2D側面図の世界に羽のようなオブジェクトがあります。「羽」をゆっくりと落とすために、線形減衰を使用しています。これは良い考えではないかもしれませんが、更新のたびに力を加える必要があるかもしれませんが、それでも機能し、オブジェクトが「軽く」見えるようになり、抵抗のある空気があるように感じます。 次に、オブジェクトを実際に羽毛のように見えるようにするにはどうすればよいですか? 具体的には、次の2種類のオブジェクトを探しています。長い低密度のオブジェクトは、ゆっくりと揺れる動きで下に移動する必要があり、四角形のオブジェクトは軌道をランダムに変化させるだけです。これが1つのシミュレーションであり、長さがパラメータであるとよいでしょう。オブジェクトが長いほど、より大きく振れます。現在、漫画の世界で羽、葉、雪片をシミュレートしたいと思います。
10 box2d  physics 

6
原作者のクレジットを取得している限り、クレジットで特定の曲を使用できますか?
私は商用ゲームに取り組んでおり、クレジットに特定の曲を使用したいのですが、それは私の特定のゲームに非常に適しているためです。 あなたのゲームで作った他の人が違法である可能性のある音楽を使用することは知っていますが、これはかなりマイナーなものであり、私が彼を信用している限り、彼の曲の1つを使用することはどれほど合法であるのかと思っていました(私はあなたのほとんどが理解していない)弁護士ではありませんが、確かにあなたはいくつかの例を提供したり、しっかりとした助言を与えることができます)
10 music  copyright 

3
エンティティコンポーネントシステムで「ブロブシステム」を回避する方法
現在、私は次の問題に直面しています: エンティティコンポーネントシステム(ECS)を使用してポンクローンを作成しようとしています。「フレームワーク」はすべて自分で書きました。したがって、すべてのコンポーネントでエンティティを管理するクラスがあります。次に、コンポーネントクラス自体があります。そして最後に、システムが必要とするコンポーネントを持つすべてのエンティティを取得する私のシステムがあります。 たとえば、私の移動システムは、位置コンポーネントと移動コンポーネントを持つすべてのエンティティを探します。位置コンポーネントは位置を保持し、移動コンポーネントは速度を保持します。 しかし、実際の問題は私の衝突システムです。このクラスは論理ブロブのようなものです。このクラスには特別なケースがたくさんあります。 例:パドルがボーダーと衝突する可能性があります。この場合、速度はゼロに設定されます。私のボールも国境にぶつかることがあります。しかし、この場合、その速度は境界線の法線でミラーリングされるだけなので、反映されます。これを行うために、私はボールに追加の物理コンポーネントを与えました。したがって、実際には、物理​​コンポーネントには実際のデータはありません。これは、オブジェクトが反射または停止したかどうかをシステムに通知するために存在する空のクラスです。 次に、これが発生します。ボールがパドルまたは境界に衝突したときに、いくつかのパーティクルをレンダリングしたいと思います。したがって、ボールは、衝突時にパーティクルを作成するように衝突システムに指示する別のコンポーネントを取得する必要があると思います。 次に、パドルと衝突するが境界とは衝突しないパワーアップが必要です。それが起こった場合、パワーアップは消えなければなりません。したがって、さらに多くのケースとコンポーネントが必要になります(一部のエンティティは特定のエンティティとのみ衝突できることをシステムに伝えるために、他の一部が実際に衝突できるとしても、すべてではなくボット、さらに衝突システムはパワーアップを適用する必要がありましたパドルなどなど)。 エンティティコンポーネントシステムは柔軟性があり、継承に問題がないので、良いことだと思います。しかし、私は現在完全に行き詰まっています。 複雑すぎると思いますか?この問題にどのように対処すればよいですか? もちろん、私は実際に「衝突後」の原因となるシステムを作成する必要があります。そのため、衝突システムは「はい、最後のフレームに衝突があります」とだけ表示し、次に「衝突後」システムがたくさんあります。すべて異なるコンポーネント(の組み合わせ)を必要とし、コンポーネントを変更します。たとえば、衝突が発生したときに停止する必要があるものを停止する衝突後移動システムがあります。次に、物事を反映する物理衝突後システムなど。 しかし、これは私にとっても適切な解決策ではないようです。たとえば、 私の移動後衝突システムには、位置コンポーネント、移動コンポーネント、および衝突コンポーネントを持つエンティティが必要です。次に、エンティティの速度をゼロに設定します。 物理衝突後システムには、位置コンポーネント、移動コンポーネント、衝突コンポーネント、および物理コンポーネントを持つエンティティが必要です。次に、速度ベクトルを反映します。 問題は明白です。衝突後の動きには、物理​​衝突後システムのエンティティのサブセットであるエンティティが必要です。したがって、2つの衝突後システムは同じデータで動作し、その効果は次のとおりです。エンティティには物理コンポーネントがありますが、衝突後の速度はゼロです。 これらの問題は、エンティティコンポーネントシステムで一般的にどのように解決されますか?それらの問題はいつものことですか?それとも私は何か間違っていますか?はいの場合、代わりに何をどのように行う必要がありますか?

6
色覚異常を説明するために、色付きのタイルに代わるものは何ですか?
タイルを使ったゲームがあります。各タイルは番号であり、各番号は6色のいずれかです。色はゲームのプレイにとって重要であり、色覚異常の人にもゲームを利用できるようにしたいと考えています。 色覚異常の人も遊ぶことができるように、これらの色の良い表現は何でしょうか?

1
「8ビットグラフィックス」の外観を実現するにはどうすればよいですか?
私はゲーム開発だけでなく、強力なプログラミングのバックグラウンドを持っています。私は高校でいくつかのピンポンとヘビだけを作り、大学でいくつかのOpenGLを作りました。 自分でゲームエンジンを作りたい。単純な2Dゲームエンジンだけを空想することはありません。しかし、私はちょっと古い学校で、レトロな感じなので。グラフィックを古い8ビットゲーム(メガマン、コントラ、スーパーマリオなど)のように見せたいです。 では、当時の古いゲームはどのようにして作られたのでしょうか?私は最も単純なアプローチを求めています。新しいエンジンのようにアセット(画像)も使用していたのでしょうか?OpenGLを使用してこの種のレンダリングをどのように実現しますか? 覚えておいてください。最も簡単なソリューション。それが当時どのように作られたのか、そしてそれをどのように複製できるのか知りたいです。OpenGLでなくてもかまいません。ウィンドウキャンバスに描けます。基本的に一から作りたいです。

1
std :: vector実装を使用してスペルとアイテムを保存するにはどうすればよいですか?
私は現在GameInstituteの本をフォローしていますが、それは私に次のことを求めています: プレイヤーがヒーリングポーションとファイアボールのポーションを購入して運ぶことを許可します。アイテムクラスを定義した後、アイテム配列をプレーヤークラスに追加して保存するか、std :: vectorを使用して保存できます。 std::vector実装を使用したいと思います。これは、アイテムクラスを作成するより混乱しないようですが、その方法がわかりません。ベクトルは動的な値(アイテム、武器など)を格納するための優れた方法であると多くの人から聞いたことがありますが、それが使用されるのを見たことはありません。
10 c++  text-based 

3
リソースが多すぎるゲームで、リソースをどのようにパックしますか?
最近、Allegro 5フレームワークを使用して、C ++で基本的なSpace Invadersクローンを作成しました。終了後、約10個のスプライトと13MB相当のDLLがあることに気付きました。一部のプレイヤーはmingW DLLさえ持っていなかったため、ゲームが非常に混乱していました。 ゲームにデータを簡単に追加したり削除したりできるようにすべてのリソースをパックし、リソースのサイズを縮小して、基本的に1つの場所に配置するにはどうすればよいですか?コードブロックを使用しています。
10 c++  assets 

6
Visual Studio 2012とゲーム開発[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 5年前休業。 わかりました。簡単な質問だと思いますが、いくつかの回答を見つけるのが難しくなりました。 XNAはVisual Studio 2012にはないことを既に読みました。最近XNAの使用方法を学びましたが、ゲームで作業したいので、Visual Studio 2012でC#を使用してゲームを開発する方法があるかどうか知りたいです。 、またはC ++とDirect3Dを使用してすべてをもう一度学ぶ必要がある場合はどうなりますか? C#は私が大好きな言語なので、C#でそれを行う方法がなくても、ゲーム開発にJavaを使用するのが非常に簡単なものであれば、私も興味があります。 どうもありがとう!
10 xna  c#  3d  directx  .net 

4
2つの異なる2D座標系間で変換するにはどうすればよいですか?
画像に座標を描画できるように、ある座標系から別の座標系に座標を変換しようとしています。 基本的に、宛先座標系は次のとおりです。 X range: 0 to 1066 Y range: 0 to 1600 (私が1066 x 1600のサイズで描いているちょうど標準的な画像) 画像上に描画しようとしている位置は実際には同じサイズですが、座標系が異なります。すべての座標のスパンは1066x1600です。 しかし、座標の例は次のようになります。 (111.33f, 1408.41f) (-212.87f, 1225.16f) この座標系の範囲は次のとおりです。 X range: -533.333 to 533.333 Y range: 533.333 to 2133.333 これは非常に単純な数学だと思いますが、何らかの理由で理解できません。 提供された座標を最初の座標系に変換するにはどうすればよいですか?
10 2d  coordinates 

4
低電力ハードウェアでの円運動
古い2Dゲームでプラットフォームと敵が円を描くように動くことを考えていました。パラメトリック方程式を理解しています。sinとcosを使用してそれを行うのは簡単ですが、NESまたはSNESがリアルタイムのトリガー呼び出しを行うことはできますか?私はかなりの無知を認めていますが、それらは高価な操作だと思いました。そのモーションをより安価に計算するための巧妙な方法はありますか? 私は、事前計算されたトリガーのみを使用するアルゴリズムをトリガー合計IDから導出するよう取り組んでいますが、複雑なようです。
10 algorithm 

1
通常のn辺のポリゴンのコーナーを作成するアルゴリズム
私は多くのキーワードの組み合わせを使用してこれをグーグルで調べましたが、驚いたことに、通常のn辺のポリゴンを特定の円に構築するためのアルゴリズム、つまりn個のコーナーポイントの座標を見つけることができませんでした。私が見つけることができたのは、物理的なコンパスと定規、またはソースのないインタラクティブなブラウザプラグインでそれを行う方法の説明だけでした。 では、そのようなアルゴリズムはどこにありますか?

2
レンダリング前のオブジェクトの並べ替え
私はシーングラフを実装しようとしています。出会ったすべての記事で、オブジェクトの並べ替えについて話しています。たとえば、オブジェクトを「マテリアル」で並べ替えます。さて、私が座ってそれを実装し始めるまで、これは当然のことと思っていました。しかし、今私はソートが実際に何を変えるのかと思っていますか? 私のエンジンには、UBOのマネージャーがいます。プログラム間で共有されるデータを保存するためにそれらを使用します。現時点では、時間、カメラ、投影行列、ライトのみが関係します(影響するライトの管理については心配していません) ATMを対象としています)。 ここで、各モデルについて、モデルをワールドマトリックスユニフォームに変更する必要があります。並べ替えによって変更されることはありません。それで、このマトリックスを変更することから、各オブジェクトのマテリアルを設定することへのジャンプは悪いのでしょうか? パイプラインで何かを変更するたびにフラッシュする必要があり、それがパフォーマンスの問題を引き起こす可能性があることをどこかで読んだことを漠然と覚えています。しかし、描画を呼び出すたびに、とにかくモデルをワールドマトリックスに設定しているので、これについて心配することにはどのような意味がありますか? ところで、ユニフォームを変更してglBufferSubDataを呼び出す方がコストが高い(または低い)かどうかについての情報があります。

3
慣性テンソルの計算
少し複雑で長い質問ですが、認めますが、まだよく理解できていないので、できる限り説明していきます。 ショートバージョン:オブジェクトの形状に基づいて慣性テンソルを計算するための一般的なc ++ / physx式はありますか? ロングバージョン: 物理学では、x、y、zの慣性テンソルを指定する必要があります。現在、それを行う方法は、質量に基づいた比率にすぎません。したがって、オブジェクトがX軸で長く、YとZで細く、質量が10000の場合、ZとYを7000に、Xを3000に設定します(これは正確ではありませんが、あくまでも参考です)。 これは比較的うまく機能しますが、最大の問題は、どこかに関節の不安定性がある場合、何が最もうまく機能するかを理解するまでテンソルで推測し続けなければならないことです。非常に大きな物理シミュレーションがあり、20以上のジョイントのうち1つが他のすべてのジョイントの安定性を失わせている場合、これは非常に時間がかかる可能性があります。 私が取り組んでいるのは、オブジェクトの境界ボックスを取り、うまくいけば比較的正確なテンソルを計算する関数です。私はhttp://en.wikipedia.org/wiki/List_of_moment_of_inertia_tensorsから数学の一部を取り、基本的に以下のようなローテーションで以下のように機能する関数を作成しました。 または、次のように回転が端にある場合: したがって、これは私たちが行ってきた方法と同様の結果を私に与えるようですが、それが一般的な使用で機能することを確認せずにこの方法に切り替えたくありません。以下は、立方体と中央のピボットを含む最初の画像に基づく関数のコードです。 NxVec3 CalculateInertiaTensor( VisBoundingBox_cl boundingBox, float m ) { float width = boundingBox.GetSizeX(); float height = boundingBox.GetSizeZ(); float depth = boundingBox.GetSizeY(); float xTensor = 0.083f * m*(height*height + depth*depth); float yTensor = 0.083f * m*(width*width + depth*depth); float zTensor = …

4
ゲームの時間逆メカニズム
ゲームの時間操作メカニズムが一般的にどのように設計されているのか疑問に思っています。私は特にタイムリバースに興味があります(最新のSSXやPrince of Persiaのようなものです)。 ゲームは2Dトップダウンシューティングゲームです。 私が設計/実装しようとしているメカニズムには、次の要件があります。 1)プレイヤーキャラクター以外のエンティティのアクションは完全に確定的です。 エンティティが実行するアクションは、レベルの開始以降に進行したフレームおよび/または画面上のプレーヤーの位置に基づいています エンティティは、レベルの設定された時間に生成されます。 2)時間逆転は、リアルタイムで逆転することで機能します。 プレーヤーのアクションも逆になり、プレーヤーが実行したものとは逆に再生されます。リバースタイム中はプレイヤーはコントロールできません。 リバースに費やす時間に制限はありません。必要に応じて、レベルの最初までリバースできます。 例として: フレーム0-50:プレイヤーはこの時間内に前方に20ユニット移動します。敵1がフレーム20でスポーンします。フレーム50 これを逆にすると、リアルタイムで再生されます。この間、プレーヤーは20ユニット後方に移動します。敵1はフレーム50で復活します。弾丸はフレーム50で再出現します。フレーム20。 動きを見るだけで、これを実現する方法についていくつかのアイデアがありました。時間を進めたり、逆転させたりするときの動作を変えるインターフェースを持つことを考えました。このようなことをする代わりに: void update() { movement += new Vector(0,5); } 私はこのようなことをします: public interface movement() { public void move(Vector v, Entity e); } public class advance() implements movement { public void move(Vector v, Entity e) { e.location += …

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