ゲーム開発

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

5
ピンボールゲームの2D衝突検出
これまでのゲームでは、ボックスとの単純な2D衝突を使用してから、ピクセルレベルで衝突をチェックしました。 ほぼ多数のフレームでピンボールゲームを作成する場合、ボールは壁または別の表面に接触するため、別のアプローチはありますか?

1
gluLookAtはどのように機能しますか?
私の理解から、 gluLookAt( eye_x, eye_y, eye_z, center_x, center_y, center_z, up_x, up_y, up_z ); 以下と同等です。 glRotatef(B, 0.0, 0.0, 1.0); glRotatef(A, wx, wy, wz); glTranslatef(-eye_x, -eye_y, -eye_z); しかし、ModelViewマトリックスを出力すると、への呼び出しがglTranslatef()正しく機能していないようです。コードスニペットは次のとおりです。 #include <stdlib.h> #include <stdio.h> #include <GL/glut.h> #include <iomanip> #include <iostream> #include <string> using namespace std; static const int Rx = 0; static const int Ry …

2
歩行アニメーションの遷移をどのように扱いますか?
私はこのアニメーションモデル全体に​​かなり慣れています。ロープを学ぶだけです。キャラクターが歩いているときにループできる素晴らしい歩行アニメーションを作成しましたが、歩行を停止するとどうなりますか? つまり、プレーヤーが歩行を停止した時点で、アニメーションのどの時点にあってもかまいません。どのようにすれば、立ち止まることなくスムーズに立ち止まることができますか?立ったままの姿勢から歩き始める場合も同様です。別のアニメーションが必要ですか?これはどのように扱われますか?
9 animation 

2
エンティティまたはコンポーネントの状態変化
私のエンティティの状態管理を処理する方法を理解するのに問題があります。 一時停止やメニューなどのエンティティのコンポーネントシステムとして処理されないため、ゲームの状態管理に問題はありません。エンティティ/コンポーネントの状態のみ。 例としてOrcs Must Dieから描画すると、MainCharacterおよびTrapエンティティがあり、PositionComponent、RenderComponent、PhysicsComponentなどのコンポーネントしかありません。 エンティティは、更新ごとにそのコンポーネントでupdateを呼び出します。また、さまざまなイベントタイプのリスナーを備えた汎用のEventManagerもあります。 次に、トラップを配置できるようにする必要があります。最初にトラップとトラップの位置を選択し、次にトラップを配置します。 トラップを配置するときは、MainCharacterの前に表示され、別の方法でレンダリングされ、それに従って進みます。配置すると、衝突に反応し、通常の方法でレンダリングされます。 これは通常、コンポーネントベースのシステムでどのように処理されますか? (この例は具体的ですが、エンティティの状態を処理する一般的な方法を理解するのに役立ちます。)

2
サーバー側入力
現在私のゲームでは、クライアントはレンダラーにすぎません。入力状態が変更されると、クライアントはサーバーにパケットを送信し、プレーヤーが入力を処理しているかのようにプレーヤーを移動しますが、サーバーは最終的な判断を下します。 これは、1つの大きな問題を除いて、通常は非常にうまく機能します。基本的に、プレーヤーが崖に向かってエッジに向かって歩いていて、エッジから出る直前に停止する場合、場合によっては1秒後に、エッジからテレポートされます。これは、サーバーが情報を処理した後で、「Wを押すのをやめた」パケットが送信されるためです。 ここに私が何を意味するかを理解するのに役立つラグダイアグラムがあります:http : //i.imgur.com/Prr8K.png サーバーが処理するフレームごとに "W Pressed"パケットを送信するだけでもかまいませんが、これは帯域幅のコストがかかるソリューションのようです。 どんな助けでもありがたいです!

1
各文を表示する時間はどれくらいですか?
テキストが自動的に進むシーケンスを作成するときに、各「文」を表示するための妥当な期間を計算できるメトリックはありますか? 私の直感は、私たちが読む方法のために、単語の数はおそらく文字の数よりも関連があると私に教えてくれますが、この問題についてすでに人々が何を考えているのか知りたいです。

2
タイルベースのアイソメトリックゲームでの自由な動き
タイルベースのアイソメトリックゲームで自由な動きを実装する合理的な簡単な方法はありますか?つまり、プレーヤーがタイルからタイルに瞬時にジャンプしたり、グリッドに「スナップ」されないだけではありません(たとえば、タイル間の動きがアニメーション化されているが、アニメーションが完了する前に何もしないようにロックされている場合)。私はゲームプログラミングに関わることは本当に初心者ですが、このサイトや他のリソースの助けを借りて、基本的なことを行うのは非常に簡単でしたが、この特定の問題に役立つリソースを見つけることができませんでした。 現在、私はこれに近いものを即興で作成しています:http : //jsfiddle.net/KwW5b/4/(WASDの動き)。移動のアイデアは、マウスマップを使用してプレーヤーが別のタイルに移動したことを検出し、オフセットを反転することでした。ほとんどの場合、正しく機能します(各コーナーでプレーヤーが間違った場所に移動します。http:を参照してください)。 //www.youtube.com/watch?v=0xr15IaOhrI、これはおそらく、フルマウスマップを適切に機能させることができなかったためと思われます)が、それが良い/正常なソリューションに近いという幻想はありません。とにかく、それはほとんどの場合、私が実装したいものの種類を示すためだけです。

4
2つのオブジェクト間で回転を維持する
XNAゲームでは、2つのオブジェクトが衝突しています。最初のオブジェクトが他のオブジェクトと衝突すると、そのオブジェクトにラッチして、世界中を移動することができます。ここで数学に問題があります(数学は私の強みではありません)。私は現在、2番目のオブジェクトを最初のオブジェクトにラッチして移動しますが、元の方向を維持することができません。そのため、オブジェクトが上を向いている場合は、元のアイテムと一緒に回転している方法に対してこの方向を維持する必要があります。 これを達成するための最善の方法に関するヒントはありますか?
9 xna  rotation 

2
ヘビAIの設計
私はこのgamedev stackechangeを初めて使用しましたが、以前に数学およびcsサイトを使用しました。 だから、私は5ラウンドで他の4つのヘビと競合するヘビのAIを作成するコンテストに参加しています。ルールは、5つのヘビがあり、ボードが30x30であり、フィールド上の小さな障害の数。 ノキアのゲームのように、果物に到達するとヘビが成長し、自分にぶつかった場合、別のヘビまたは壁が死にます。ゲームは移動と移動の間に30ミリ秒の遅延で実行され、サーバーは50ミリ秒ごとに新しいゲームの状態を送信します。 勝者は、ゲームのどの時点でも最長のヘビです。タイブレーカーはキルによって決定されます。 これまでのところ、私のヘビがリンゴに最も近いかどうかを判断するために、各ヘビからのA *グラフ検索が実装されています。それ以外の場合は、次のリンゴを予測するために、ヘビが使用するボードの最も空いている領域を特定するために、きちんとした小さなアルゴリズムを作成しました。 これ以外にも、蛇が抜けないトラップに足を踏み入れていないことを確認するために、いくつかの生存可能性チェックを行っています。引っかかった場合は、抜ける可能性を高めるための何かを用意しています。 ... とにかく、私はテストサーバーでヘビをテストしましたが、非常にうまくいきます。一般的に、リンゴが確実な場合にのみ行き、そうでない場合にスペースを見つけるという私の戦略は、他のどのヘビよりも速く成長します(一部のヘビは同じようなことをしますが、多くの場合、真ん中または隅に行くだけです)。これらのトライアルゲームですが、生存率に優れているように思われる同じヘビに打ち負かされることがよくあります(私のヘビはより速く成長しますが、その後なんとか死に、この他のヘビはゆっくりと増殖し、一貫性に勝ちます。 だから私は誰かが私のヘビを改良しようと試みなければならないアイデアについて疑問に思っていました。それとも、新しいアプローチのアイデアかもしれません。私の関数とクラスは優れているので、劇的に見えるかもしれない変更も悪くないはずです。私はすべてのアイデアを奨励します。 何かご意見は?
9 ai  snake 

3
相互に接続している部屋のリストがある場合、どのようにして孤立した部屋グループを見つけるのですか?
私は小さなローグライクを作成しようとしていて、ランダムに生成する部屋と廊下まで行きました。各部屋はインスタンス化されたオブジェクトであり、廊下で接続された他の部屋の配列リストが含まれています。 接続されていない部屋を選別することはできますが、互いに接続されているだけで他のほとんどの部屋には接続されておらず、島を形成している部屋を知るにはどうすればよいですか? ここで問題をよりわかりやすく説明するために、コンソールからの画像をぼんやりとしたレベルにしています。客室5と6は相互にのみ接続されています。それを検出するためにどのようなアルゴリズムを使用できますか?
9 java  algorithm 

4
openGLでのスプライトアニメーション
openGL ESでのスプライトアニメーションの実装に関する問題に直面しています。私はそれをググってみました、そして私が得ている唯一のものはCanvasを介して実装するチュートリアルです。 私は方法を知っていますが、実装に問題があります。 必要なもの:衝突検出のスプライトアニメーション。 私がしたこと:衝突検出機能は適切に動作しています。 PS:すべてが正常に機能していますが、OPENGLのみでアニメーションを実装したいと考えています。私の場合、キャンバスが機能しません。 ------------------------編集----------------------- これでスプライトシートができました。下にある特定の座標があるとしますが、(u、v)座標はどこから始まるのでしょうか。(0,0)または(0,5)からのu、v座標を考慮し、どのパターンでリストに格納する必要がありますか?---->左から右または---->上から下 スプライトクラスに2D配列が必要ですか?これは、理解を深めるための画像です。 私はNxNスプライトシートがあると仮定しています。ここで、N = 3,4,5,6、...などです。 。 。 class FragileSquare{ FloatBuffer fVertexBuffer, mTextureBuffer; ByteBuffer mColorBuff; ByteBuffer mIndexBuff; int[] textures = new int[1]; public boolean beingHitFromBall = false; int numberSprites = 49; int columnInt = 7; //number of columns as int float columnFloat = 7.0f; …

3
スプライトシートを分解する方法
フォーマットが不十分で、分解したり、スプライトごとに1つずつ多くの小さな画像に分割したりしたいスプライトシートがたくさんあります。それができれば、カスタムテクスチャパッカーツールを使用してゲームアセットを構築できます。 私の開発ツールは、Windowsを対象としたXNAおよびC#です。画像を分解するにはどうすればよいですか?

1
アクション指向のAI:回避アルゴリズムには時間がかかる
回避、つまり回避のプロセスは、追跡の反対です。ターゲットまでの距離を短くしようとするのではなく、最大化しようとします。 複数のオブジェクトを同時に回避している間は時間がかかります。ここではBFSを使用します。より速くするために、どのアルゴリズムを使用すればよいですか?

1
スプライトの回転に使用されるXboxサムスティック。基本的な数式により、90度間隔で「スティック」または「スティッキー」に感じます。どのようにスムーズな回転を得るのですか?
非常に基本的な式を使用して、Xboxコントローラーのサムスティックに基づいてスプライト(宇宙船など)が向いている角度を計算します。つまり、サムスティックを使用して船を回転させます。 私の主な更新方法では: shuttleAngle = (float) Math.Atan2(newGamePadState.ThumbSticks.Right.X, newGamePadState.ThumbSticks.Right.Y); 私のメインの描画方法では: spriteBatch.Draw(shuttle, shuttleCoords, sourceRectangle, Color.White, shuttleAngle, origin, 1.0f, SpriteEffects.None, 1); ご覧のとおり、非常にシンプルなので、現在のラジアンをサムスティックから取り出してフロートに格納します shuttleAngleこれをシャトルを描画するための回転角度(ラジアン)引数として使用します。 どういうわけか、スプリントを回転させると、0、90、180、270度の角度でベタつく感じがします。それらの角度で解決したいと考えています。同様のメカニズムを使用するゲームで感じるようなスムーズで自然な回転は得られません。PS:私のXboxコントローラーは大丈夫です!
9 xna  c#  sprites  rotation  gamepad 

2
実際のシナリオでクワッドベースのレンダリングについて心配する必要がありますか?
ランダム化された本の最初の章では、ほとんどの場合、ラスター化とレンダリングの手法について、三角形ベースのレンダリングシステムと四角形ベースのシステムに関するフレーズを見つけました。 クワッドベースのGPUまたはパイプラインに遭遇したことはありません。OpenGL 3.0+を扱うとき、それについて心配する必要がありますか、それとも単なるレガシーなものですか?
9 opengl  gpu 

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