ゲーム開発

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

3
ユーザーのビデオカードを選択する正しい方法は?
私のゲームはDirectX 10を使用していますが、私のゲームがグラフィックスカードで取得されないというユーザーからの報告がありました。代わりに、統合されたIntelカードで実行することを選択し、パフォーマンスを台無しにします。これはWindows 8に関連している可能性があります。モバイルカードに関連している可能性もあります。 これまで、DirectXが独自のアダプターを選択できるように、アダプターを指定せずにDirectX 10デバイスを作成してきました(これまでのすべての例/デモで見たように)。どうやら私はそれを変えなければならないだろう。 利用可能なすべてのアダプタを実行し、専用メモリの量が最も多いものを選択する関数をすでに持っています。それは問題を修正するためにうまく機能しますが、それは一般的に正しいですか? 残念ながら、この問題の影響を受けるマシンは必要なカードの出力を報告しないため、カードが有効なビデオ出力(つまり、モニターが接続されている)に依存することはできません。 DirectXで使用するアダプターを適切に選択するには、どのアルゴリズムを使用できますか?

1
Box2Dでプレイヤーと発射物の衝突を予測するにはどうすればよいですか?
物理エンジンとしてBox2Dを使用して、リアルタイムのシューティングゲームを作成しています。ゲームプレイは主に、Angry Birdsのような軌道に関するものです。スローモーションエフェクトを作成し、プレーヤーが倒されたときにカメラをプレーヤーに移動したいのですが、実際に衝突が発生する前に、石が空中にあるときにエフェクトを開始する必要があります。 損傷の大きさは衝突時にのみインパルスに基づいて計算されます。これはリアルタイムゲームであるため、プレイヤーはラグなくキャラクターの物理体を動かすことができなければなりません。 どうすれば彼らの死を予測できますか?可能ですか?レイキャストすることはできますが、別のオブジェクトが移動してそのパスをブロックするとどうなりますか?

1
libGdxでグループを作成する方法は?
libGdxでグループを使用する方法について簡単な例を示していただけますか?したがって、親を移動すると、すべての子が一緒に移動し、回転とスケーリングも同じようになります。 オンラインでチュートリアルと例を探しましたが、libGdxの最新バージョンがStageクラスにいくつかの変更を加えたようです。 ありがとうございました
8 libgdx 

1
AnchorPointが「CCLayer」の配置に影響しないのはなぜですか?
AnchorPointを変更すると、CCLayerとCCNodeの動作に違いがあると思います。 私が言っていることを説明し、誰かに説明してください。 シナリオ: まずCCNode CCNode *node = ...; node.setContentSize(ccp(W,H)); // 1. node.setAnchorPoint(ccp(0,0)); node.setPosition(ccp(X,Y); // This line will move the node in a way that its (0,0)-point will be placed at (X,Y). // 2. node.setAnchorPoint(ccp(1,1)); node.setPosition(ccp(X,Y); // This line will move the node in a way that its (0,0)-point will be …

3
その場でスタックチャンクをロードする方法は?
私は現在、Minecraftに触発された無限の世界に取り組んでいます。チャンクは 16x16x16のブロックで構成されています。ブロック(キューブ)は1x1x1です。 これは、私のコンピューターで12チャンク(12x16)のViewRangeを使用して非常にスムーズに実行されます。いいね。 チャンクの高さを256に変更すると、これは-明らかに-途方もない遅延になります。 だから私が基本的にやりたいことはチャンクを積み重ねることです。つまり、私の世界は[∞、16、∞]チャンクが大きくなる可能性があります。 問題は今、その場でチャンクを生成する方法ですか? 現時点では、自分の位置を中心にして(ほぼ遠くに)存在しないチャンクを生成しています。まだチャンクをスタックしていないので、これはそれほど複雑ではありません。 ここで重要な注意点として、私はまた、最小/最大の高さが異なるバイオームを持ちたいと思っています。だから、バイオームに平地ブロックと最も高い層は、8(8×16)になります-バイオームで山脈のブロックと最も高い層は、14(14x16)になります。例として。 私ができることは、例えば私の上と下に1チャンクをロードすることです。 しかし、ここでの問題は、異なるbioms間の遷移がyの1つのチャンクよりも大きくなる可能性があることです。 私の現在のチャンクの読み込みアクションで 完全を期すために、現在のチャンクは「アルゴリズム」をロードしています private IEnumerator UpdateChunks(){ for (int i = 1; i < VIEW_RANGE; i += ChunkWidth) { float vr = i; for (float x = transform.position.x - vr; x < transform.position.x + vr; x += ChunkWidth) { for (float z …

1
高い鏡面反射力を持つ鏡面バンディング
DirectXでのレイトレーシングにいくつかの問題があり、特にスペキュラに関する深刻なバンディングの問題があります。高い鏡面反射力(8以上)でバンディングが始まります。これがHDR / LDRの問題なのか、それとも法線や他のベクトルなど、他の何かに関連している可能性があるのでしょうか。 更新 更新については以下をご覧ください。 これは、球体上のブリンフォンに関連するシェーダーコードです。 float3 hitPoint = thisRay.origin + thisRay.direction * bestHit.hitT; float3 normal = normalize(hitPoint - spheres[bestHit.hitID].center); float3 toLight = pointLights[0].position.xyz - hitPoint; float d = length(toLight); toLight = normalize(toLight); float diffuse = max(dot(normal, toLight), 0.0f); float3 v = normalize(thisRay.origin - hitPoint); float3 h = normalize(v + …

3
Unityが2Dモードである場合、なぜスケーリングとデフォルトのothographicサイズを採用しているのですか?
以前にSFML、XNA、Monogameなどを使用して2Dゲームを作成しました。画面に100pxのスプライトを表示すると、100px かかります。128pxタイルを使用して背景を作成する場合、最初のタイルは(0、0)にあり、2番目のタイルは(128、0)にあります。 一方、Unityには独自の奇妙な単位系があり、すべての変換、ピクセルから単位への変換、オソグラフィックサイズなどでスケーリングされます。つまり、私の質問は2つあります。 Unityがデフォルトで2Dのこのシステムを持っているのはなぜですか?モバイル開発用ですか?私には見られない大きなメリットはありますか? Photoshopに128x128のスプライトがある場合、ゲームを実行するとUnityで128x128のスプライトとして表示されるように、環境を設定するにはどうすればよいですか? デスクトップのみをターゲットにしていることに注意してください。
8 2d  unity  sprites  camera 

2
キャラクターを斜面に立てるにはどうすればよいですか?
まず第一に、私は原則を理解したいので、私は平易な英語での説明を好むことに注意してください(もちろん、私はこれらの説明を補足するコードに対して何もありません)。 私は私が何を意味するかをお見せするために、斜面に正しくゲームリンボの2つのスクリーンショットとレッツ・スタートを文字ステップを作るための方法は何か疑問に思って: だから、あなたはこれらの写真で見ることができるように、それはの背骨のように見えます性格は実際には地表ではなく地平線に垂直であり、この観察は私に私の疑問を導きます: スプライトキットでそのような動作をどのように再現できますか?物理的なボディをノードにアタッチすると、それを回転させる可能性があるので、次のようになります。 ローテーションを無効にすると、次のような 結果が得られます。これらの方法の両方を実行すると、重要な問題が発生し、自然に見えなくなります。それで、それを自然に見えるようにするにはどうすればよいですか?いくつかのスプライトといくつかの物理ボディを作成し、それらをすべてジョイントで結合することを考えたのですが、これを見ると、 これらのノードを物理的にリンクすることはできますが、どのようにしてそれらを作成するのですか?グラフィカルに見える?たとえば、現実では、太ももとふくらはぎは膝でつながっています... 何か案は ?
8 spritekit 

1
ゲームのマイクロペイメントにユニコインを受け入れることはできますか?
AndroidとiOSとFacebookで無料でプレイできるゲームを開発しています。Unicoinはさまざまな方法で購入でき、自分で実装できるものよりもはるかに多くあると思います(Paypal、Bitcoins、Gold、Redditカルマ!つまり、すごい!)。 それらをマイクロペイメントとして受け入れ、実際のお金に戻す方法はありますか?

1
SpriteBuilderのSmart Sprite Sheetをメモリにロードする必要がありますか?
SpriteBuilderを使用してスマートスプライトシートフォルダーを作成して公開する場合、そのSpriteSheetをコードを使用してメモリ "FrameCache"にロードする必要がありますか、それともSpriteBuilderがこれを自動的に実行します(つまり、SpriteSheet内の任意の画像にアクセスする必要がありますか?)

2
shmupでの2D Bulletの一定の動き
pixelnestチュートリアルに従って2D shmupを作成しました(http://pixelnest.io/tutorials/2d-game-unity/player-and-enemies/)。 これに取り組んでいる間、弾丸の連続的な流れを得るために発射率を上げることを実験しました、そして船が後方に動かされると弾丸はより間隔が空いていて、船が前方に動かされるときそれらは塊になることに気づきました。プレーヤーの動きに関係なく、弾丸間の距離を一定に保つ方法はありますか? 私も気にする必要がありますか?プレイヤーが後方に移動した場合、発射率は本質的に遅くなり(少なくとも画面の端に到達するまで)、前方に移動すると逆になります。
8 2d  unity 

1
正射投影カメラを使用して上と下からレンダリングされた画像が一致しない
正射投影カメラを使用して、モデルのスライスをレンダリングしています(ボクセル化するため)。各スライスの内部を確認するために、各スライスを上と下の両方からレンダリングします。 私がレンダリングするモデルは、2つの立方体から構成される単純な「T」字型です。立方体は同じ次元を持ち、同じY(高さ)座標を持っています。Blenderでのレンダリングは次のとおりです。 このモデルを一度上から直接レンダリングし、一度下から直接レンダリングします。私の期待は、まったく同じ画像を取得することでした(y軸でのミラーリングを除く)。ただし、非常に低い解像度のレンダリングターゲット(25x25)を使用してレンダリングする場合、「T」の位置(ピクセル単位)は、下からレンダリングするのではなく、上からレンダリングしたときと異なります。図2と3を参照してください。ピンクのブロックは元のレンダリングの一部ではありませんが、簡単に数えたり、違いを確認したりできるように追加しました。 上からレンダリング 下からレンダリング これはおそらく私が読んだことによるものです 、カメラから見て左上にバイアスされている可能性のあるピクセル座標とテクセル座標についてです。私は両方のカメラに同じ「上」ベクトルを使用しているため、バイアスはx軸にのみ表示されます。私はカメラの位置を変えようとしました、そして、それは私が思っていたように、半ピクセルであるはずだと見ています。1台のカメラと両方のカメラの両方をシフトしてみましたが、一部の効果が表示されているのに、両方のカメラからピクセル単位の完全なコピーを取得できません。 ここで私はカメラを初期化し、私が信じているもの、ハーフピクセルを計算します。boundsDimXとboundsDimZは、モデルの周囲をわずかに拡大した境界ボックスで、正射投影カメラのビューボリュームの幅と高さとしても使用します。 Matrix projection = Matrix.CreateOrthographic(boundsDimX, boundsDimZ, 0.5f, sliceHeight + 0.5f); Vector3 halfPixel = new Vector3(boundsDimX / (float)renderTarget.Width, 0, boundsDimY / (float)renderTarget.Height) * 0.5f; これは、カメラの位置とカメラの視点を設定するコードです // Position camera if (downwards) { float cameraHeight = bounds.Max.Y + 0.501f - (sliceHeight * i); Vector3 cameraPosition = …
8 xna  c#  directx  texel 


4
Unityの無限3D洞窟
友人と私は、Unityでゲームを作って、無限の3D洞窟を飛んで、あらゆる方向にねじれたり曲がったりできることを望んでいます(ただし、ターンが不可能になるほどで​​はありません)。私たちは、それぞれが一定量曲がるトンネル「ピース」をいくつか作成し、前に来たものの最後にそれぞれを生成することを考えていました。 しかし、1つのトンネルピースの口が常に前のトンネルピースの端と完全に(位置と回転の両方で)整列することを確認する方法はわかりません。これを達成する方法について誰かがアドバイスを提供できますか? 私たちもそれを正しい方法で行っていますか、それとも手続き的に洞窟を生成するより良い方法がありますか?ボーナスポイント:洞窟の直径や形が変わる可能性があれば素晴らしいでしょう。

4
ランダム分布関数を変更する::シーケンスで複数の類似した値を取得する可能性を低くする
銀河セクターで手続き的に惑星を生成するための数列を生成したいと思います。各惑星はランダムに配置する必要がありますが、2つの惑星が互いに直接隣接していることはほとんどありません。どうすればそれを達成できますか? 分布関数を適用することで可能性を変更できることを知っていますが、特定の値をより多く/より少なくするためにそれらをどのように制御できますか?

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