ゲーム開発

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

5
2Dでは、ポイントに最も近いオブジェクトを効率的に見つけるにはどうすればよいですか?
かなりのゲームエンジンを持っているので、ポイントのリストの中で最も近いものを見つける機能が欲しいのですが。 ピタゴラスの定理を使用して各距離を見つけ、最小距離を選択することができますが、それにはすべての距離を反復する必要があります。 衝突システムもあり、基本的にはオブジェクトを小さなグリッド(ミニマップのようなもの)上の小さなオブジェクトに変え、同じグリッド空間にオブジェクトが存在する場合にのみ衝突をチェックします。グリッド間隔を大きくするだけで、近接性を確認できます。(すべての単一オブジェクトをチェックするのではなく。)ただし、それは私の基本クラスで追加のセットアップが必要になり、既に散らかったオブジェクトを散らかします。その価値はありますか? ポイントとサイズのリストに基づいて、最も近いオブジェクトを検出するために使用できる効率的かつ正確なものはありますか?
35 c++  2d  algorithm  vector  picking 

7
ゲーム開発における自動テストはどのくらい一般的ですか?[閉まっている]
ゲーマーの開発者は単体テストと統合テストの作成に使用しますか?パズル開発者の間ではどれくらい一般的ですか?そして、MMORPGとFPSの開発者の間で? (私はゲーム開発には、バックグラウンドを持っていないどちらも私はそれでの作業についてcogitatingています-それは私に起こっただけで疑問であるので、しようとしているの必要はありません。納得それらを書くために私は、私すでになどが自動化されたテストを書くことさえあるため。 )

2
2Dスプライトの回転力の計算
誰かが次のシナリオを計算するエレガントな方法を持っているかどうか疑問に思っています。 私は(n)個の正方形、ランダムな形状のオブジェクトを持っていますが、それらはすべて長方形のふりをします。 私たちは重力を扱っていないので、空間内のオブジェクトをトップダウンの観点から検討します。下の図のように、特定の正方形のオブジェクトに力を加えています。 適用されている場所で、適用されている力に基づいて回転角度を計算する方法を教えてください。中央の正方形に適用すると、まっすぐになります。中心からさらに移動すると、どのように動作しますか?回転速度の計算方法は?
35 2d  rotation  physics  vector 

7
ボクセル/マインクラフトタイプのゲームのレンダリング速度を改善するにはどうすればよいですか?
Minecraftの独自のクローンを作成しています(Javaで作成されています)。今はうまく機能します。40メートルの視聴距離で、MacBook Pro 8,1で60 FPSを簡単に達成できます。(Intel i5 + Intel HD Graphics 3000)。しかし、視距離を70メートルにすると、15〜25 FPSにしか達しません。実際のMinecraftでは、問題なく遠方(= 256m)に表示距離を置くことができます。だから私の質問は、ゲームをより良くするために何をすべきですか? 私が実装した最適化: ローカルチャンクのみをメモリに保持します(プレーヤーの視聴距離に応じて) 錐台カリング(最初にチャンクで、次にブロックで) ブロックの実際に見える面のみを描く 可視ブロックを含むチャンクごとのリストを使用します。表示されるチャンクは、このリストに追加されます。それらが非表示になると、このリストから自動的に削除されます。ブロックは、隣接するブロックを構築または破壊することにより、見えなくなります。 更新ブロックを含むチャンクごとのリストを使用します。表示可能なブロックリストと同じメカニズム。 newゲームループ内ではステートメントをほとんど使用しません。(私のゲームは、ガベージコレクターが呼び出されるまで約20秒実行されます) 現在、OpenGL呼び出しリストを使用しています。(glNewList()、glEndList()、glCallList())ブロックの種類の各側に。 現在、私は照明システムを使用していません。私はすでにVBOについて聞いたことがあります。しかし、私はそれが何であるかを正確に知りません。ただし、それらについてはいくつか調査します。パフォーマンスが向上しますか?VBOを実装する前にglCallLists()、呼び出しリストのリストを使用して渡したいと思います。代わりに千回使用しglCallList()ます。(実際のMineCraftはVBOを使用していないと思うので、これを試してみたいと思います。正しいですか?) パフォーマンスを改善する他のトリックはありますか? VisualVMプロファイリングはこれを私に示しました(わずか70フレームのプロファイリング、70メートルの視聴距離): 40メートル(246フレーム)のプロファイリング: 注:別のスレッドでチャンクを生成しているため、多くのメソッドとコードブロックを同期しています。ゲームループでこれを行う場合、オブジェクトのロックを取得することはパフォーマンスの問題だと思います(もちろん、ゲームループのみがあり、新しいチャンクが生成されない時間について話します)。これは正解? 編集:いくつかのsynchronisedブロックといくつかの他の小さな改善を削除した後。パフォーマンスはすでにはるかに優れています。70メートルの新しいプロファイリング結果は次のとおりです。 それがselectVisibleBlocksここの問題であることはかなり明らかだと思います。 前もって感謝します! マルティン 更新:いくつかの追加の改善(for eachの代わりにforループを使用する、ループ外で変数をバッファリングするなど)後、60の距離を表示できるようになりました。 できるだけ早くVBOを実装するつもりだと思います。 PS:すべてのソースコードはGitHubで入手できます:https : //github.com/mcourteaux/CraftMania

6
ゲームのクローンを作成することは法的に可能ですか?
「モノポリー」、「ドミノ」、「チェッカー」、「チェス」などのボードゲームで、ゲーム開発者はクローンを作成して販売できますか?また、ZX Spectrumゲームのクローンを作成できますか?同じことができるゲームの多くの部分がありますか?
35 legal 

9
Unityや他のツールよりもC / C ++の方が好きです。ゲーム開発者にとってこれは非常に大きなダウナーですか?[閉まっている]
学校でUnityを使用した大きなゲームプロジェクトがあります。私たちのうち12人がそれに取り組んでいます。私の先生は、生徒を教えるのに重要なツールであると確信しているようです。なぜなら、生徒を高レベルから低レベルに見せるからです。 私は彼の見解を理解することができ、私は疑問に思っています:ゲーム開発会社で団結はそのような重要なエンジンですか?彼らは他のものを使用する余裕がないので、それを使用している多くの企業がありますか?彼はUnityがゲーム制作の大きなプレーヤーであるように話しているが、私はそれができるだけ早くゲームをしたい小さなインディーズゲーム会社に適合すると見ている。 Unityは業界でそれほど重要だと思いますか?C ++スキルの価値を危険にさらしていますか? 私はUnityが好きではないということではなく、単にUnityで何も学んでいないというだけではなく、OgreまたはSFMLで少しのステップを達成することを好みます。 また、C ++の練習問題もありますが、それらは理論に基づいた練習にすぎず、あまり意味がありません。
35 unity 

9
2Dタイルベースのマップを作成するためのツール[終了]
2Dタイルベースのマップを作成するために使用できるツールは何ですか? 以下の情報を提供し、回答ごとに1つのツールに制限してください。 名 ウェブサイトへのリンク 一般的な機能 エクスポート形式 あなたが注目に値すると思われる他のもの
35 tools 

11
不正行為のためのメモリエディタを無効にする戦略-デスクトップゲーム[終了]
私たちはデスクトップゲームについて話していると仮定しています-プレーヤーがローカルコンピューターでダウンロードして実行するものです。多くのプレーヤーは、プレーヤーの健康状態など、値を検出して凍結できるメモリエディターです。 メモリ変更による不正行為をどのように防止しますか?この種の不正行為と戦うにはどのような戦略が効果的ですか? 参考のために、プレイヤーができることを知っています:-値または範囲で何かを検索-値を変更したものを検索-メモリ値を設定-メモリ値を固定 良いものを探しています。私が使用している平凡な2つは次のとおりです。 数値ではなくパーセンテージとして値を表示(例:46/50 = 92%ヘルス) 配列内の値を保持し、変更のたびに値を移動する低レベルのクラス。(たとえば、intの代わりに、intの配列であるクラスがあり、値が変更されるたびに、ランダムに選択された別の配列項目を使用して値を保持します) ゲームはオフラインで、無料でシングルプレイヤーです。 編集:後世のために、私は(C#で)これを解決し、私の解決策を掲載ここに私のブログ上で、。
35 anti-cheat 


11
色覚異常の問題を回避する最良の方法は何ですか?
男性の約5〜10%が何らかの形の色盲を持っています。男性人口の5〜10%をゲームから追い出さないようにするための最良の方法は何ですか? 色覚異常に注意することは、人々が白黒で見ることを意味しません。通常、緑が少なく見え、赤/緑が混同されやすくなります。色覚異常には度があります。いくつかの形式は穏やかで、いくつかは極端です。

5
OpenGLでたくさんのタイルを描く、最新の方法
私は小さなタイル/スプライトベースのPCゲームをチームで作業していますが、パフォーマンスの問題に直面しています。前回OpenGLを使用したのは2004年頃でしたので、コアプロファイルの使用方法を自分で教えてきましたが、少し混乱しているように感じます。 フレームごとに250〜750の48x48タイルと、約50のスプライトを画面に描画する必要があります。タイルは新しいレベルがロードされたときにのみ変化し、スプライトは常に変化しています。タイルの一部は4つの24x24ピースで構成されており、ほとんどの(ただしすべてではない)スプライトはタイルと同じサイズです。多くのタイルとスプライトはアルファブレンディングを使用します。 現在、私はこれらすべてを即時モードで行っていますが、これは悪い考えです。それでも同じように、チームメンバーの1人がそれを実行しようとすると、非常に悪いフレームレート(〜20-30 fps)を取得します。さらに多くのタイルがある場合、特にこれらのタイルの多くが切り分けられます。これはすべて、私が問題が行われている描画呼び出しの数であると思うようになります。 私はこれに対するいくつかの可能な解決策を考えましたが、私は愚かなことに時間を無駄にしないように、彼らが話していることを知っている一部の人々によってそれらを実行したかったです: タイル: レベルがロードされたら、すべてのタイルを一度大きなホーンテクスチャにアタッチされたフレームバッファに描画し、各フレーム上にそのテクスチャを含む大きな長方形を描画します。 レベルがロードされたら、すべてのタイルを静的な頂点バッファーに入れて、そのように描画します。glDrawElementsを1回呼び出すだけで、異なるテクスチャのオブジェクトを描画する方法があるのか​​、それとも私がやりたいことなのかわかりません。たぶん、すべてのタイルを大きな巨大なテクスチャに配置し、VBOで面白いテクスチャ座標を使用しますか? スプライト: glDrawElementsを個別に呼び出して、各スプライトを描画します。これには多くのテクスチャ切り替えが関係しているようですが、これは悪いと言われています。ここでテクスチャ配列は便利でしょうか? 動的VBOを何らかの方法で使用します。上記の番号2と同じテクスチャの質問。 ポイントスプライト?これはおそらくばかげています。 これらのアイデアのいずれかが理にかなっていますか?私が見渡せるどこかに良い実装はありますか?
35 opengl 

3
ゲーム開発者がソースコードを公開しないのはなぜですか?
AAAゲームの開発者は、ゲームが完売し、サポートがなくなってからソースコードをリリースしないのはなぜだろうと思っていました。 もちろん、このリストがあります。そこには、利用可能なソースコードを備えた多くのAAAゲームがあります。 なぜ他の会社が古いゲームでこれを行わないのか理解していないようです。彼らは確かにもはやそれをサポートしておらず、販売はごくわずかです。ソースのリリースがゲームの販売に悪影響を与えるかどうかさえ、私にはわかりません。 ソースコードが公開されていれば、gamespyの閉鎖によって運命づけられた多くのゲームがコミュニティによって保存されると確信しています。

2
壁の上を歩くことができるキャラクターを作成するにはどうすればよいですか?
キャラクターがクモのように動くようにしようとしています。通常、ボールがロールアップできない傾斜が上昇すると、クモはゆっくりとupい上がります。 同様に、空中に長方形のプラットフォームがある場合、クモはエッジに到達したときに倒れるのではなく、エッジを包み込み、プラットフォームの側面と下側に続きます(最終的にプラットフォームの周囲を歩きます)。 さまざまなUnity 2Dコンポーネントを調べましたが、ほとんど成功していません。:( 私の世界の衝突境界のほとんどは、Collider 2Dコンポーネントによってマークされています(重力の影響を受けた単純なボールではうまく機能しますが、このスパイダーキャラクターではそれほど効果がありません)。

6
マップエディターが含まれているゲームが公開されないのはなぜですか?
15年前、2002年、Warcraft 3がリリースされました。素晴らしいRTSゲームであることに加えて、開発者が開発プロセス中に開発者が持っていたすべてのツールをプレイヤーに提供する、完全に機能する工業用のマップエディターであるWorld Editorにより、リリースから何年も生き続けてきました。何百万ものカスタムマップ、映画、キャンペーン、および最初のMobAの作成につながりました。 それ以来、ごく少数の企業が自分のゲームで独自のエディターをリリースしています。Blizzardでさえ、新しいStarcraftのリリースではそれをやりませんでした(最終的にリリースされたバージョンは、Warcraftのリリースほど強力ではありませんでした)。歴史からわかるように、これは一見些細なことで、ゲームの寿命を大幅に延ばすことができます。では、開発者がゲームと一緒に使用したWorld Editorをリリースしないのはなぜですか?

1
「レベル設計クリープ」への対処方法
レベルデザインクリープは、一連のレベルを構築し、すべてのレベルが前回よりも少し見た目やデザインが優れていることに気づいたとき、または異なるスキルレベルを持つ複数の人と一緒に作業したときに起こることを私が呼び始めたものです。放っておくと、プレイヤーがゲームを進めていくと、レベルが構築された順序に従ってレベルの品質が上下します。私たちは本来よりも多くの時間を費やしているようです。 本当に良いレベルと本当に悪いレベルを切り取ることに加えて、詳細が「忍び寄る」ことのないように制作を計画したり管理したりする方法はありますか。同じ作業を何度も再検討する必要がありますか?

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