タグ付けされた質問 「software-engineering」

ソフトウェアエンジニアリングは、ゲーム開発分野に適用されるソフトウェアの設計と開発です。このタグを使用する質問は、ソフトウェアの作成または設計のタスクに関連する理論的な概念と実践に関するものでなければなりません。このタグは、質問にプログラミングが含まれている場合やコードが含まれている場合にのみ使用しないでください。


16
すべてのゲームプログラマが知っておくべき数学 [閉まっている]
簡単な質問:すべてのゲームプログラマが成功するには、どのような数学をしっかりと把握する必要がありますか? ゲームプログラミングのニッチ領域で数学や何かをレンダリングすること、具体的にはゲームプログラマーが知っておくべきことについては特に話していません。 注:正解は1つもないので、この質問(およびその回答)はコミュニティwikiです。 また、派手なラテックス数学の方程式が必要な場合は、http://mathurl.com/を使用してください。

9
ゲーム開発に役立つプログラミングデザインパターンは何ですか?[閉まっている]
私はデザインパターンに関する書籍をいくつか持っており、いくつかの記事を読みましたが、どのプログラミングデザインパターンがゲーム開発に役立つかを直感的に理解することはできません。 たとえば、モデルビューコントローラー、シングルトン、ファクトリー、コマンドなどのいくつかのデザインパターンを詳しく説明したデザインパターンを含むActionScript 3という本があります。 これを初めて知った人として、これらのどれが役立つか、または実際、これらのどれが私が学び、使用しようとしている設計パターンであるかを理解できません。おそらく、私が気づいていないゲームプログラミング固有のデザインパターンが他にありますか? ゲーム開発で特定のデザインパターンを使用した経験がある場合は、ぜひ聞いてください。それが使用された理由、コードサンプル、またはオンラインリソースについての推論は、それらがあれば非常に役立ちます。私は現在、ActionScript 3とC ++の実装に最も興味を持っていますが、あらゆる言語の経験と例から間違いなく恩恵を受けることができます。 ありがとう!


10
フルタイムで仕事をしている間、自分のゲームに取り組むエネルギーがあることを確認するにはどうすればよいですか?[閉まっている]
私は週に40時間以上ソフトウェアエンジニアとして働いていますが、個人的な生活と家族の責任のバランスを取ることは、文字通りゲーム開発に取り組むエネルギーがありません。 コンピューターの前で燃え尽きることなく、趣味のためにより多くの時間を作るにはどうすればよいですか?プログラマーとして仕事をしながら、ゲームの開発に成功している人が必ずいるはずです。

6
ビデオゲームで弾丸はどのように機能しますか?
C#でビデオゲームを設計しているときに、この質問に出会いました。 BattlefieldやCall of Dutyなどのゲームを考慮すると、数百または数千の弾丸が同時に飛んでいます。イベントは絶えずトリガーされますが、私が知っている限りでは、これは処理能力を大量に消費します。さまざまなゲーム開発者が(2Dおよび3D)箇条書きをどのように管理し、それぞれにとって最も効率的な方法は何かを知りたいです。 私は質問読ん弾丸はビデオゲームでシミュレートされているどのように?ただし、プログラムの設計の観点からは、箇条書きがどのように機能するかについては触れません。 いくつかのアイデアがありましたが、それぞれに欠点があります。 私が考えることができる最も効率的な方法(2Dゲームの場合): Bulletと呼ばれるクラスを作成し、ユーザーがボタンを長押ししても、0.01秒ごとにBulletオブジェクトが作成されるとします。この箇条書きの内容: 1速度 2ショットの開始位置 3スプライトテクスチャ 4ヒットエフェクト 箇条書きは独自のクラスになるため、描画、移動、およびアクションリスナー自体を管理できます。 インスタンス化されたこれらのオブジェクトの数千個を処理してから破棄するのは、プロセッサ上で難しいのではないでしょうか?RAMスペース? 3Dゲームの効率的な方法-私が考えていたもう1つの考えは: 武器クラスを作成するとしましょう。この武器にはさまざまな機能があり、そのうちのいくつかは次のとおりです。 1武器の照準を検出し、ターゲットを見ているかどうかを判断します 2銃撃のアニメーションをトリガーする 3 doDamage()メソッドがあります。これは、銃が向けられているものからヘルスを差し引くものを示します 4ボタンが押されたときに弾丸アニメーションクラスに通知する 次に、BulletAnimationなどの静的クラスを作成して、それがトリガーされた銃の場所、その銃が向けられている場所(弾丸の宛先)、および弾丸に使用する適切なスプライトと速度に関する情報を取得できます。次に、このクラスは、位置と目的のスプライトの両方に基づいてスプライトを描画し(おそらく新しいスレッドにidk)、銃から発射される弾丸をシミュレートします。 後者はコーディングがはるかに難しいようで、一度に何千もの弾丸に対してこれを行うために静的関数を絶えず呼び出すには、多くの処理能力が必要ではないでしょうか?開始位置と終了位置の両方で絶えず更新を取得することも困難です。 私の質問は、ゲームクリエーターが最も効率的に行う方法は何ですか?この方法は2Dゲームから3Dゲームに変わりますか?

8
ゲームエンジンでのイベント駆動型通信:はいまたはいいえ?
私はGame Coding Completeを読んでおり、著者はゲームオブジェクトとモジュール間のイベントドリブン通信を推奨しています。 基本的に、すべての生きているゲームアクターは、内部イベントメッセージングシステムを介して主要モジュール(物理、AI、ゲームロジック、ゲームビューなど)と通信する必要があります。つまり、効率的なイベントマネージャーを設計する必要があります。設計が不適切なシステムは、特にモバイルプラットフォームに影響を与えるCPUサイクルを消費します。 これは実証済みで推奨されるアプローチですか?使用するかどうかはどのように決定すればよいですか?

9
AIを作成するのは初めて-どこから始めますか?[閉まっている]
私はゲームプログラミングの初心者であり、互いに戦う2つの宇宙船で基本的な2Dトップダウンスペースゲームを作ろうとしています。私はユーザー制御の宇宙船でうまくやっていますが、AIのプログラミングを開始する方法すらわかりません。特定の方法/パターンはこの状況に適していますか?どこから始めますか?

2
スーパーメトロイドやアクアリアのように、どのようにして壁の端にテクスチャを取得できますか?
スーパーメトロイドやアクアリアなどのゲームは、岩やその他のものを含む他の対面部分の地形を提示しますが、背後(地下)では異なるディテールや黒だけがあります。 ポリゴンを使用して同様のことをしたいと思います。地形は、現在のレベルで、一連の重なり合う四角い箱として作成されます。このレンダリング方法がテレインを作成するためのこのようなシステムで機能するかどうかはわかりませんが、誰かがアイデアを持っているなら、私はそれらを聞きたいです。それ以外の場合は、この方法で地形を描画するために実際に機能するように、地形レンダリングシステムを書き直す方法を知りたいと思います...

5
GameManager神オブジェクトを回避する方法は?
ゲームコードの構造化に関する質問の答えを読んだところです。ユビキタスGameManagerクラスについて、そしてそれが本番環境でどのように頻繁に問題になるのかと思いました。これについて説明しましょう。 まず、プロトタイピングがあります。素晴らしいコードを書くことを誰も気にせず、ゲームプレイが積み重なるかどうかを確認するために何かを実行しようとします。 その後、グリーンライトがあり、物事をきれいにするために、誰かがを書きますGameManager。おそらく、たくさんのを保持するために、おそらくGameStatesいくつかを保存するためGameObjectsに、実際には大きなものはありません。かわいい、小さな、マネージャー。 プリプロダクションの穏やかな領域では、ゲームはうまく形成されています。コーダーには、適切な睡眠の時間と、素晴らしいデザインパターンを使用して物事を構築するための多くのアイデアがあります。 その後、生産が開始され、もちろん、すぐにクランチタイムがあります。バランスの取れた食事はなくなり、バグトラッカーは問題を抱えて割れ、人々はストレスを感じ、昨日ゲームをリリースする必要があります。 その時点で、通常、GameManagerある本物のビッグ(滞在丁寧に)混乱。 その理由は簡単です。結局のところ、ゲームを作成するときは、すべてのソースコードが実際にゲームを管理するためにここにあります。この小さな追加機能またはバグ修正をに追加するだけで、他のすべてがとにかく保存されます。時間が問題になると、別のクラスを記述したり、この巨大なマネージャーをサブマネージャーに分割する方法はありません。GameManager もちろん、これは古典的なアンチパターン、つまり神オブジェクトです。それは悪いことであり、合併する痛み、維持する痛み、理解する痛み、変革する痛みです。 これを防ぐために何を提案しますか? 編集 名前のせいにするのは魅力的だと思います。もちろん、GameManagerクラスを作成することはそれほど素晴らしい考えではありません。しかし、同じことがクリーンに起こることができるGameApplicationか、GameStateMachineまたはGameSystem、ダクトテープの好きなプロジェクトの終わりまでになってしまうこと。命名に関係なく、ゲームコードのどこかにそのクラスがあります。これは現時点では単なる胚に過ぎません。どのモンスターになるかはまだわかりません。したがって、「ネーミングのせいにする」という答えは期待していません。これが発生しないようにする方法、コーディングアーキテクチャ、および/またはチームが本番のいずれかの時点で発生することを知って従うことができるプロセスが必要です。1か月間のバグ修正と土壇場での機能が、それらがすべて1つの巨大な保守不能なマネージャーになったという理由だけで、言うのを捨てるのはあまりにも悪いことです。

10
C ++:スマートポインター、生のポインター、ポインターなし?[閉まっている]
C ++でのゲーム開発の範囲内で、ポインターの使用に関して望ましいパターンは何ですか(なし、生、スコープ付き、共有、またはスマートとダムの間)。 あなたが考慮するかもしれません オブジェクト所有権 使いやすさ コピーポリシー オーバーヘッド 循環参照 ターゲットプラットフォーム コンテナで使用


6
マルチスレッドゲームまたはゲームエンジンの設計と開発に関する最良のリソースは何ですか?
マルチスレッドゲームまたはゲームエンジンの設計と開発に関する最良のリソースは何ですか?これは明らかにコンピューターが向かう場所であるため、このトピックを研究するつもりであり、どのようなリソースと例があるかを知りたいと思います。

5
ゲームの俳優は自分自身を描く責任がありますか?
私はゲーム開発は初めてですが、プログラミングは初めてです。 私は(再び)JavaScriptのcanvas要素を使用してPongタイプのゲームで遊んでいます。 Paddle次のプロパティを持つオブジェクトを作成しました... width height x y colour 次のPongようなプロパティを持つオブジェクトもあります... width height backgroundColour draw()。 draw()現在、メソッドはをリセットしてcanvasおり、そこで問題が発生しました。 必要があるPaddleオブジェクトが持つdraw()その描画方法は責任、または必要があるdraw()のPongオブジェクトがその役者を描くための責任がある(私が間違ってる場合、私はそれが正しい用語であると仮定し、私を修正してください)。 私はのためにそれがadvantagousだろうと考え出しPaddle自体を描画するために、私は2つのオブジェクトをインスタンス化するように、PlayerとEnemy。それはでなかった場合Pongのdraw()、私は二度同様のコードを記述する必要があると思います。 ここでのベストプラクティスは何ですか? ありがとう。

2
Game Programming Gemsシリーズにはこれ以上の本はありますか?[閉まっている]
Game Programming Gemsの最後の本が出版されてから3年以上が経ちました。公式サイトはもう更新されない、とマーク・デルーラのウェブサイトのこのページでは、シリーズが終わったことを意味しているようです。 これについて公式の声明はありましたか?ナンバー8は最後の本でしたか? ゲームプログラミングジェムは、私にとって、そしておそらく世界中の何千人もの開発者にとって最も重要ではないにしても、最も重要なリソースの1つでしたが、インターネットはそれらを殺しましたか?

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