ゲーム開発

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

1
ウィンドウが接続されていないDirectX11
オフスクリーンレンダリングのみにDX11またはDX9を初期化して使用することが可能かどうか、つまりウィンドウが接続されていないことを意味します。私の意図は、実際のウィンドウを開く前にGPUベンチマークを行うことです。このベンチマークでは、いくつかのテストシーンがレンダリングされますが、表示されるべきではありません。(実際には、ベンチマークスコアに応じて異なるウィンドウが開きます)
13 c++  directx11 

2
単語を最も認識されない形式にスクランブルする
私の目標は、プレーヤーにスクランブルされた単語を提示し、それを元の形式に並べ直す必要があることです。 OELHL->ハロー 任意の単語(3文字または4文字以上、スペースが含まれる場合もある)を受け取り、認識されにくい形式に変換するスクランブルアルゴリズムが必要です。 すべての文字をランダムに移動することは確かに機能しますが、すべてのシャッフルが等しいわけではなく、一部のシャッフルは他のシャッフルよりも認識しやすいことがわかりました。誰かが、おそらく最も認識できない形式を保証するより良いアルゴリズム(おそらく言語学に基づいている)を知っている場合に、この質問を投稿しています。

3
.sln / .csprojはUnityプロジェクトを共有するのに便利ですか?
GITとUnityでいくつかの問題が発生しています。ファイル.sln / .csprojが問題を引き起こすことがよくあるので、ウェブ上でしばらく検索した後、このファイルはプッシュする必要がないことがわかりました。誰かフィードバックがありますか?https://gist.github.com/hw/1234398たとえば、.gitignoreに含まれていますが、この種のファイルが何をするのかは正直わかりません。 リポジトリからそれらを除外できますか、またはこのファイルはゲーム内の一部の参照に関連していますか?

3
HLSLピクセルシェーダーでNESの色の制限を再現するにはどうすればよいですか?
256色モードは減価償却され、Direct3Dモードではサポートされなくなったため、代わりにピクセルシェーダーを使用して、可能なすべての色のNESパレットをシミュレートして、フェードオブジェクトやアルファチャネルによるスムーズフェードアウトがないようにするというアイデアを得ました。(オブジェクトがNESで実際にフェードアウトできないことはわかっていますが、パレットの交換で可能になる、黒一色の背景でフェードインおよびフェードアウトするすべてのオブジェクトがあります。また、一時停止すると画面がフェードインおよびフェードアウトします。いくつかのMega Manゲームで行われていたように、パレット交換でも可能だったことはわかっています。)問題は、HLSLシェーダーについてほとんど何も知らないことです。 どうすればいいのですか?
13 shaders  pixel 

2
宇宙船のプラズマトレイルを作成する方法
似たような効果を使用する見栄えの良い宇宙ゲームをたくさん見ました。私はこれらの効果のいくつかが一般的に行われる方法を見つけることに本当に興味があります。 特に、利用可能なすべてのリソースを使用せずに、宇宙船またはミサイルの背後にあるトレイルがどのように達成されるかを知りたいと思います。 エフェクトの例については、ジンバルのスクリーンショットと、同じリンクのビデオをご覧ください。また、Ether Vaporのミサイルトレイル。 これらは両方とも同じテクニックですか?私は主に2Dに興味がありますが、あまりにも違うとは思いません。 それでは、このような効果をどのように作成すればよいでしょうか?私たちはピクセルシェーダー、ブレンドモード/フィルター、ビットマップ効果、パーティクルシステム、または何を話しているのですか?プラットフォーム固有ではありません。私は理論を探していますが、具体的な例やリンクは素晴らしいでしょう。そして、詳細が良いほど。

4
クライアントとサーバーの両方で物理シミュレーションを実行しますか?
ゲームのクライアント/サーバーネットワークアーキテクチャについて学ぶために、マルチプレイヤーの小惑星クローンを実装しています。クライアント/サーバーテクノロジーに関するGafferOnGamesとValveの出版物を読むのに時間を費やしました。2つの概念に問題があります。 現在、私はbox2dで物理学をシミュレートし、世界の状態をクライアントに毎秒約20回送信する権威あるゲームサーバーを持っています。各クライアントは、受信した最後のいくつかのスナップショットを追跡し、2つの状態間で急いでスプライトの動きを滑らかにします。ただし、それほどスムーズではありません。それはしばらくの間滑らかになり、それから少しぎくしゃくした後、滑らかに戻るなどです。私はTCPとUDPの両方を試しましたが、どちらもほぼ同じです。私の問題が何であるか考えていますか?(注:最初にこれをシングルプレーヤーに実装しました。物理世界を1秒あたり20回のみ更新すると、スプライトの動きは60fpsで完全にスムーズになります)。 最初の問題を解決するために、クライアントがbox2dシミュレーションも実行し、一致しない場合はサーバーのスナップショットに一致するようにスプライトの位置を更新する必要があると考えました。私のシングルプレーヤーの実装はスムーズなので、これはもっとスムーズだと思いました。これはいいアイデアですか? 上記の問題が解決しない場合でも、クライアント側の予測に必要ですか?たとえば、プレイヤーが船を動かそうとすると、物理シミュレーションなしで小惑星、壁、または敵の船にぶつかったかどうかをどのように知ることができますか?彼らの船は、衝突するはずのオブジェクトを通過したように見え、サーバーからオブジェクトに衝突したというスナップショットを受け取る前に見えます。 ありがとう!

3
ゲームループ、条件を1回確認し、何かをしてから、もう一度やる方法
たとえば、ゲームクラスがありint、プレーヤーの生活を追跡するを保持しています。条件付き if ( mLives < 1 ) { // Do some work. } ただし、この状態は引き続き発火し、作業は繰り返し行われます。たとえば、5秒でゲームを終了するタイマーを設定したいです。現在、フレームごとに5秒に設定し続け、ゲームは終了しません。 これはほんの一例であり、ゲームのいくつかの領域で同じ問題を抱えています。何らかの条件を確認してから何かを1回だけ実行し、ifステートメントのコードを再度確認したり実行したりしないようにします。頭に浮かぶ可能性のある解決策のいくつかboolは、条件ごとにを持ちbool、条件が発生するタイミングを設定します。しかし、実際には、これはboolsクラスフィールドとして、またはメソッド自体内に静的に格納する必要があるため、大量のを非常に扱いにくくなります。 これに対する適切な解決策は何ですか(私の例ではなく、問題の領域のために)?ゲームでこれをどのように行いますか?
13 c++  game-loop 

5
Unity3dでアウトラインを描画するにはどうすればよいですか?
任意の高さの長方形をハイライトしようとしています。これを行う最も簡単な方法は、長方形の輪郭を描く別の「ボックス」ゲームオブジェクトを作成することだと思いました。 MeshRenderer + Transparent TextureとLineRendererの両方を使用して、四角形の4つのポイントの輪郭を描きました。どちらも非常に満足のいくものではありません。 (中央にラインレンダラー、右側にスケーリングされたキューブ) これについて正しい方法は何ですか?私は左の長方形のようなものを得ようとしています-私が選んだ4つのポイントを通して固定幅のシンプルな境界線。
13 unity  graphics 

1
滑らかなボクセル地形
個人的なプロジェクトとして、私はCastle Storyの滑らかな地形のような地形を作成する地形ジェネレーターを作成しようとしています。 あなたがそれを見たことがないなら、ここに: ご覧のとおり、ブロックと「スムーズ」ブロックの組み合わせです。 この外観をエミュレートするために私が試みたのは、各サーフェスブロックにミニハイトマップを与えることです。これは通常は機能しますが、いくつかの問題があり、次のような地形が生じます。 問題は、各ブロックが1x1x1であるが、特定の場所の高さがマイナスまたは> 1である場合があることです。その場合、クリップして、高さを0または1に設定します。 私が意味することをよりよく説明するために、図を示します。 高さを生成するために、基本的に次のことを行います。 genColumn(int x, int z) { int highestBlockY = (int)noise2d(x, z); bool is_surface = true; for(int y = max_height - 1; y >= 0; y--) { Block b; if(is_surface) { b = Block.Grass; b.HasHeightMap = true; // generate heightmap for(int ix = …

3
高速サイドスクローラーの問題に対処するにはどうすればよいですか?
私は横スクロールの飛行機ゲームを作っています。非常に速く動き始めると、プレイヤーとしていくつかの問題を経験し始めます。 弾丸からのパワーアップなど、要素は区別できません めまいや不快感を感じるようになる 何が来るのかを見るのに十分な時間がありません どうすればこれを整理できますか?すべての写真で詳細を使用しませんか? Tiny Wingsの水平方向の移動速度は私のゲームと同じですが、これらの問題はありません。参考にできる他の非常に高速なサイドスクローラーはありますか?

4
より高速な2D衝突検出
最近、ペースの速い2Dシューティングゲームに取り組んでいますが、大きな問題に遭遇しました。衝突検出。確かに、動作していますが、非常に遅いです。私の目標は、画面上に多くの敵を配置し、お互いに触れないようにすることです。すべての敵がプレイヤーエンティティを追いかけています。それらのほとんどは同じ速度を持っているので、遅かれ早かれ、プレイヤーを追いかけている間にすべて同じスペースを取ることになります。プレイヤーにとっては、1人の敵だけに追われているように見えるので、これは本当に楽しい要素を減らします。彼らが同じスペースを取るのを防ぐために、衝突検出(非常に基本的な2D検出、私が知っている唯一の方法)を追加しました。 Enemy class update method Loop through all enemies (continue; if the loop points at this object) If enemy object intersects with this object Push enemy object away from this enemy object これは正常に機能します。敵のエンティティが200未満である限り。300〜350の敵エンティティに近づくと、フレームレートが大幅に低下し始めます。最初にレンダリングが悪いと思ったので、描画呼び出しを削除しました。これはまったく役に立ちませんでしたので、もちろん、それが更新方法であることに気付きました。更新方法の唯一の重い部分は、この各敵ループから全敵の部分です。300人の敵に近づくと、ゲームは90000(300x300)ステップのイタレーションを行います。私の〜 私はこの衝突検出にアプローチする別の方法があるに違いないと確信しています。方法はわかりませんが。私が見つけたページは、2つのオブジェクト間の衝突を実際に行う方法、またはオブジェクトとタイル間の衝突をチェックする方法に関するものです。私はすでにこれらの2つのことを知っています。 tl; dr?エンティティのロット間の衝突検出をどのようにアプローチしますか? クイック編集:助けになる場合は、C#XNAを使用しています。

2
XNAで効果パラメーターを設定するためのベストプラクティス
EffectXNAでパラメーターを設定するためのベストプラクティスがあるかどうかを確認したいと思います。または、言い換えると、を呼び出すと正確に何が起こるのかpass.Apply()。複数のシナリオを想像できます。 Apply呼び出されるたびに、すべてのエフェクトパラメーターがGPUに転送されるため、パラメーターを設定する頻度に実際の影響はありません。 Apply呼び出されるたびに、リセットされたパラメーターのみが転送されます。したがって、新しい値を実際に設定しないSet-operationsのキャッシュは避けてください。 Apply呼び出されるたびに、変更されたパラメーターのみが転送されます。したがって、セット操作のキャッシングは役に立たない。 言及された方法のいずれもゲームのパフォーマンスに顕著な影響を与えないため、この質問全体はブートレスです。 最後の質問です。次のような集合演算のキャッシュを実装することは有用ですか? private Matrix _world; public Matrix World { get{ return _world; } set { if (value == world) return; _effect.Parameters["xWorld"].SetValue(value); _world = value; } } 期待してありがとう。
13 xna  directx  effect 

5
HTML5ゲームからサーバーへのスコアの送信を保護するにはどうすればよいですか
バックエンドでは、Javaを使用しています。HTML5でゲームをしています。ユーザーが完了したら、Ajax呼び出しを送信して、スコアをデータベースに保存します。これで、誰かがFiddlerやfirebugなどのツールを簡単に使用して、このajaxリクエストを変更し、より良いスコアをサーバーに送信できるようになりました。ユーザーがスコアを操作できないようにするにはどうすればよいですか?


3
Unityで単体テストを実行するにはどうすればよいですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 Unity3Dで単体テストを実装する方法。 Unityエディターを拡張して、何らかのテストフレームワークを含めることが可能になるのではないかと思います。 それを実装するためのガイドラインはありますか? 本、ブログのような参照? 実例やプロジェクトはありますか?

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