ゲーム開発

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

3
一部のMMOでクライアントのメモリを編集すると、不正行為が許可されるのはなぜですか?
ゲームクライアントのメモリの編集が機能する理由 なぜ多くの「ハック保護」ツールがクライアントに付属しているのですか? クライアントサーバーゲームを設計する場合、すべてはサーバーで行われ(ゲームワールドのシミュレーション)、クライアントはキャラクターの近くの世界の一部のステータス更新を受信する受動的な消費者であり、次のような情報のみを送信します。キーストロークまたは移動/アクションコマンド。たぶんここに何かが欠けているかもしれませんが、その設計では、クライアントメモリでSTRを200上げるようなハック(値が存在する場合)は効果がありません。 私が考えることができる唯一の説明は、メモリ編集が機能するゲームでは、シミュレーションの一部がクライアントとサーバーで実行され、その後すべてのクライアントが定期的に同期されるだけだということです。試合が設定されると、プレイヤーの数が固定されたリアルタイム戦略ゲームの設計を理解できますが、MMORPGではなぜですか?サーバーの負荷を減らす戦略ですか?

5
ゲームのフレームごとのアニメーションをディスク上で最小限に圧縮する方法
Age of empire(地図上の建物)のようなゲームを開発しています。すべての建物には、アニメーション用のスプライトシートがあります。私はフレームごとのアニメーションを使用して建物をアニメーション化します(とにかく他の方法は認識していません)。私が入れている画像のために、リソースフォルダーが非常に大きくなっていることに気付きました。 CoCやAge of Empiresなどのゲームは、apkサイズを50 Mg未満にどのように維持しますか?ゲーム開発に関して、ここで何かが欠けていますか ありがとうございました 編集:私が直面している問題の詳細情報 たくさんのアニメーションドロウアブルオブジェクトがあります。私がこの方法を選んだのは、それが最も速く、希望する結果が得られたからです。基本的に、すべての建物は、そのxmlファイルが8つのドローアブルを参照するアニメーションドローアブルです(8つの画像= 8つのファイル)。透明性のため、それらはすべてPNGです。200を超える画像があるため、apkサイズは120 MBです(そして、ファイルの半分をまだコピーしていません)。それがプロンプトです。それを解決する方法が必要です。仲間の開発者を支援してください

2
ゲームの仕事でC ++の実務経験を積む最良の方法(C#から提供)[終了]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 私はソフトウェア開発者であり、他のいくつかの言語とともにC#(5年の経験)を経験しています。 私の「夢の仕事」は、開発者としてビデオゲームで働いています。 ほとんどの仕事にはC ++の知識が必要ですが、私は現在持っていません(一部の基本を除きます)。 私は見て回ったが、ほとんどの大手ゲーム会社は、C ++の3〜5年の過去の経験に沿って何かを必要としています。 私の質問は、C#から来て、この必要な経験レベルに到達するための良いルートは何でしょうか? 私はそれを行ういくつかの可能な方法を考えました: C ++についての知識を書籍から入手してください。C ++で記述されたオープンソースプロジェクトに参加します。特にゲーム業界で、C ++を学習し、実用レベルの経験を積むための最良の方法は何でしょうか?

4
メインゲームループが制御されずに実行されても問題はありませんか?
私のゲームループがシステムの許す限り高速で実行されたときに、害が生じる可能性があるかどうか疑問に思っていましたか? 現在、ナノ秒単位で経過時間を測定することで、問題なく事前定義された速度でゲームロジックとレンダリングロジックを実行するループがあります。実際、私がループ内で行うロジックは、毎秒一定量の呼び出しに合わせてクロックされます。 ループ自体は、私のマシンでは1秒間に約1,170万のループに達するのと同じくらい高速で実行されます。 ループ(単純な擬似コード): while(!isGameOver){ if(canPollInputs){ pollInputs() } while(canStepLogic){ stepLogic() } if(canRender){ render() } } 私の質問は、基本的に、その単純なループが、制御された速度で実行されていない場合、システムに害を及ぼすことができるかどうかです。 編集:つまり、ロジックは1秒に30回(30 tps)で実行され、レンダラーは60 fpsで実行され、入力を1秒に100回ポーリングしています。 。ただし、ループ自体は調整されません。 編集:Thread.sleep()たとえば、メインループを1秒あたり250ループまでスロットルすると、削減につながりますが、ループは目的の250ではなく、1秒あたり約570ループで実行されます(デスクトップマシンにいるときにコードを追加します。) 編集:ここで、物事を明確にするために動作するJavaゲームループに行きます。また、自由に使用できますが、あなたのものではありません;) private void gameLoop() { // Time that must elapse before a new run double timePerPoll = 1000000000l / targetPPS; double timePerTick = 1000000000l / targetTPS; double timePerFrame = …

1
油性/汚染水をレンダリングしていますか?
そこにあるシェーダーウィザードには、これに似た油性/汚染された水の効果を実現する方法のアイデアがあります。 理想的には、水は均一に油性ではなく、代わりに油が何らかのソース(化学プラントからの汚染排水など)から生成され、水域全体に拡散する可能性があります。この部分の私の考えは、「オイルマップ」を水面上の各ポイントでオイルの密度を決定する2Dテクスチャとして保持することです。拡散し、その速度で水の速度とともに自然に移動します(動的波の波動粒子シミュレーションがあり、水面の泡についても同様のことを既に行っています)。ただし、オイルが水と同じ速度で移動しない可能性があるため、物理的にどの程度正しいかはわかりません。 そして、私はそれらのすべての奇抜な色を作る方法がわかりません:-)。考え?

1
どの機能がエンジンに属し、どの機能がゲームに属しますか?
現在、2Dゲームエンジンの新しい機能を直接エンジンにコーディングして実装し、テストしています。同時に、スクリプト機能を備えたショーケースゲームがあり、エンジン機能を呼び出す必要があります。たとえば、ゲーム専用にスクリプトを作成するのではなく、固定タイルの動きをエンジンのEntityクラスに添付します。これは、複数のゲームに使用される一般的なエンジンのアイデアを間違いなく壊しています。 適切な部分(エンジンとゲーム)の正しい実装に焦点を当て続けるベストプラクティスはありますか?

4
ゲームで「水中の視界」を防ぐ方法
プレイヤーが水中に行くことができる多くのゲームでは、画面の上半分が空中にあり、画面の下半分が水の中にあるように見えるとき、それはほとんど水が存在しないようで、プレーヤーは...水の音でゆっくりと飛んでいますか? これを解決する論理的な方法はありますか?アルゴリズム?多くのゲームがまだこれを持っているので、解決策がまだ登場していないようです。同じ間違いをしたくありません。

5
行列は何を表していますか?
私は最近OpenGLを学び始めましたが、コンピューターグラフィックスにおけるマトリックスとその役割を視覚化するのに問題があります。次のような4x4マトリックスのテンプレートを考えます: このような各マトリックスは、ワールド空間の頂点の座標であると想定します。そして、それらのいくつかがまとめられ、影が付けられてオブジェクトを与えますか? しかし、なぜそこにaがあるXx、XyとXz?私はそれが異なる軸(上、左、前)であることを読みましたが、それでも重要な頭や尾を作ることはできません。
19 opengl  matrix 

1
ビヘイビアツリー:: 1ティック以上かかるアクション
私がビヘイビアツリーで理解していることから、各ビヘイビアは、数回の反復で実行できる短い目標指向のアクションである必要があります。 したがって、たとえば、以下はビヘイビアツリーの画像です。 ここで、Drive To Enemyの動作には、ツリー内で数回以上の反復が必要であると想定しましょう。そのため、各パスでDrive To Enemyが呼び出されるのは、現在実行状態になっているためです。 問題は、敵が近くにいる場合、Evade Enemyに電話したいことです。Drive To Enemyが常に呼び出されることを考慮すると、Evade Enemyを呼び出す機会はありません(おそらく、Enemyを避ける必要があります)。 万一私はツリーを横断し、各アクションが現在実行されているものに関係なく渡しますか? 私はこれについて正しい方法で行っていますか? そのような動作を処理する適切な方法は何ですか? もともとStackoverflowで尋ねられました。ここで考えたほうが、この質問をするのに適した場所です。
19 ai  game-loop  behavior 

4
球面地図表現
私の最新のゲームは、小さな惑星で行われます。球の表面のセルを表すための適切なデータ構造を探しています。三角形、正方形、五角形、六角形?どれが最もストレッチを最小化し、最高のタイリングを作成しますか? 球面マッピングが最も簡単ですが、極での伸びは許容できません。キューブマッピングもかなり簡単ですが、キューブコーナーの近くにまだかなりの伸びがあるでしょう。二十面体を細分化することは、ストレッチの観点からは最適と思われますが、多くの三角形配列のインデックスを作成し、境界で隣接するセルを見つけるという問題があります。 N個の近傍インデックスの配列を持つNゴンを表すポイントの単一の線形配列を使用できると思いますが、それはスペースの巨大な無駄のようです。 ゲームにはRTS要素が含まれているため、影響マップなどを保存し、A *パスファインディングとコンボリューションを実行するため、表現は効率的でなければなりません。
19 maps  sphere 

3
オープンな環境と多くの静的コンテンツ(例:クライシス)を備えた最新のAAAゲームでは、オクルージョンカリングはどのように実行されますか?
私が念頭に置いている2つのアイデア: 1)シーンは、低解像度および低ポリゴンカウントモデルを使用して(またはキューブや球体などの境界ボリュームのみを使用して)、不可視のバッファーにレンダリングされます。次に、バッファがチェックされ、何が表示されているかがわかります。低解像度のシーンをレンダリングする前に、錐台カリングを適用して、できるだけ多くのオブジェクトを既に削除することができます。 2)ツールが静的マップ上で実行され、複雑な(したがって低速の)レイトレーシングを実行して、マップ上のいくつかの3D位置について、何が見えて何が見えないかを認識します。その情報はすべて、後で実行時にユーザーが使用できる効率的な方法で保存されます(例:octree)このソリューションは、オブジェクトを移動せずに静的メッシュ(例:構築)でのみ機能します。

13
探索ゲームでヒーリングを面白くする方法
探求に重点を置いたゲームを作成していますが、治癒には少し困っています。 問題は、敵がランダムにヘルスを落とすという考えが好きではないということです。これは通常、ヘルスが低く、ヒーリングステーション(Metroid、Axiom Verge)の近くにいないときに粉砕するため、魂をコピーしたくないHollow Knightの/ Focusシステム(戦闘システムはすでに私に盗まれています:3)が、Hollow Knightは、ヒーリングを面白くするために探索に焦点を当ててプレイした唯一のゲームです。 私は自動再生についても考えましたが、それはプレイヤーが治癒中のボスの戦い中にplayer病者に簡単につながる可能性があり、それはゲームプレイの流れを壊します。 私は敵がヘルスポイントの1/8を回復するようなことも考えましたが、これはプレイヤーが1/8のゲインを得た後の緊張を和らげるので、再びヒットしても死ぬことはありません。ゲームをそのすべての攻撃と少しの防御のように感じさせます。 プレイヤーが癒すために何かを食べたり飲み物を飲まなければならないアイテムのアプローチについても考えていますが、アイテムを使い果たすと、それ以上回復するまで癒すことはできなくなります(レジェンドゼルダの)。 私は癒しについてもまったく知りませんでしたが、探索すると、ハードボスの前にダムヒットするか、ボスが難しくなる前にダムヒットする(咳カップヘッド咳)をと、プレイヤーはコミットするだけです自殺するか、ヒーリングステーションに戻ります。 ゲームプレイの流れを壊さずに、癒しを面白くするにはどうすればよいですか? これは2Dプラットフォーマーであり、戦闘ではジャンプが非常に重要です。

4
インディーズゲームスタジオ(イギリス)のセットアップ-方法は?
私は英国に拠点を置き、自分のゲームスタジオを設立することを考えています-基本的には、自宅で仕事をしているだけで、カジュアルなゲームアプリを構築しようとしています。これを実現するために、どのようなステップやプロセスを経て何をする必要があるのか​​、具体的には法的な側面についてお聞きしたいと思います。これを自分自身で経験した人たちから聞くのは素晴らしいことです!HRMCに登録する必要があるのは、自営業者が私がしなければならない唯一のことであるが、それ以外は何ですか?: 自分の会社/スタジオ名を登録/登録する必要がありますか?もしそうなら、どこでこれを行い、お金がかかりますか?または、単に名前をそのまま使用し始めることはできますか? 私が作るゲーム/アプリIPに対してもこれを行う必要がありますか?または、著作権は自動的に想定されますか? この段階では、単独のトレーダーとして行動することがより適切ですか?どの時点で、実際の有限会社のセットアップに移行することを検討すべきですか? このビジネスのためだけに新しい銀行口座を開設するのは賢明ですか? 私の計画は次のとおりだったと思います。1.適切なドメイン名を見つけ、会社名に基づいてWebサイトを作成します。 以上です!これは大丈夫ですか、上記の質問など、他のものも考慮する必要がありますか? 読んでいただきありがとうございます!
19 legal  business 

5
OpenGL:glNormalで法線を設定する必要があるのはなぜですか?
OpenGLのいくつかの基本を学んでいますが、なぜglNormal頂点の法線を設定する必要があるのか​​疑問に思っています。 このような単純な三角形を作成する場合: glBegin(GL_TRIANGLES); glVertex3f(0,0,0); glVertex3f(1,0,0); glVertex3f(0,1,0); glEnd(); 法線は、幾何学的プリミティブのタイプによって暗黙的に定義されるべきではありませんか?法線を設定しない場合、OpenGLはそれを計算しますか?
19 opengl  normals 


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