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

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

5
アクセスしやすく、強力で、コードをすばやく記述できるプログラミングシステムをゲームに実装するにはどうすればよいですか?
現在、宇宙ベースのサンドボックスゲームに取り組んでいます。これは、システムをカスタムプログラムする機能を大幅に備えています。私はこれを両方の方法で実装したい アクセス可能、 強力(最低限はチューリング完全性になります) コーディングが速い テキストベースの言語は通常、後者の2つの要件のみを満たします。最初の2つを満たす視覚言語を設計することは難しくありませんが、視覚言語はマウスを大量に使用する必要があるため、プログラムに苦労します。非常にアクセスしやすいテキストベースの言語がいくつかありますが、完全な非プログラマーがプログラミングを簡単にできるようにしたいと思います。

2
DOSゲーム開発の典型的なツールチェーンは何ですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 8か月前に閉鎖されました。 DOSゲーム(Doomなど)をどのように書いていたのか不思議に思っています。これについてはあまりわかりませんが、ゲーム開発の初期の時代についてもっと知りたいと思っています。 主にどの言語が使用されましたか? 私はそれがCだったと思います。それともC ++ですか? どのIDE(またはエディター/コンパイラー)が人気がありましたか? Microsoft Visual C / C ++(または以前はMicrosoft C / C ++と呼ばれていたと思われる)は、当時は存在していませんでした。それで、人々は何を使用しましたか?編集またはIntelからのコマンドラインコンパイラか何か? 使用されているAPI 2Dゲームで一般的なものは何ですか?DoomやTomb Raiderなどの3Dゲームはどうですか? 今日と違うものはありますか? 使用された画像/音声形式など、他の違いを喜んで聞きます。


4
(c ++)ゲームのロギングライブラリ[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 11か月前に閉鎖されました。 私は多くのロギングライブラリを知っていますが、それらの多くをテストしませんでした。(GoogleLog、Pantheios、来るべきboost :: logライブラリ...) ゲーム、特にリモートマルチプレイヤーゲームやマルチスレッドゲームでは、最後にすべてのログを削除しても、ログはデバッグに不可欠です。 ログ(マルチプレイヤーおよびマルチスレッドおよび/またはマルチプロセス)を必要とするPCゲーム(コンソールではない)を作成していて、ロギング用のライブラリを探す十分な理由があるとしましょう(時間がない、または私の場合、正しく書く能力に自信がありません)。 私が必要だと仮定すると: 性能 使いやすさ(ストリーミングやフォーマットなどが可能) 信頼できる(漏れたりクラッシュしたりしないでください!) クロスプラットフォーム(少なくともWindows、MacOSX、Linux / Ubuntu) Wichロギングライブラリを使用することをお勧めしますか? 現在、私はそのブースト::ログは最も柔軟なもの(!あなたも、リモートでにログインすることができます)だと思います、ではなく良好なパフォーマンスを持っているアップデートは、高パフォーマンスのためであるが、まだリリースされていません。Pantheiosはよく引用されますが、パフォーマンスと使用法の比較ポイントはありません。私は長い間自分のライブラリを使ってきましたが、マルチスレッドを管理していないので、十分に高速であっても大きな問題です。Google Logは興味深いようです。ただテストする必要がありますが、これらのライブラリなどをすでに比較している場合は、アドバイスが役に立つかもしれません。 ゲームは多くの場合、パフォーマンスが要求されますが、デバッグが複雑であるため、特定のケースでは明確な利点があるロギングライブラリを知っておくと便利です。


3
個人のゲームプロジェクトをスピードコーディングすることによる具体的なメリット
通常、「タイプXのゲームをY時間で書く」または「X時間のゲームをそれぞれX時間だけ書く」という分野で、数人のプログラマーが時間に敏感な課題を設定していることに気付きました。この方法でワークフローを設定して、しばらくの間コードを高速化することの具体的なメリットは何ですか?何かを迅速に行うには、効率的なコードをトレードオフする必要があるように感じます。そして、これらの課題において、最終的な磨きの層を追加することは大きな優先事項ではないと思うので、プログラマを使用してもかまいません。 数年前に簡単な2Dスクロールシューティングゲームとパズルゲームをいくつか作成しましたが、愚かさからコードのほとんどを削除しました。だから今、私はスピードコーディングアプローチを使用して、いくつかの簡単なことをやり直し、ゲームロジックをもっと理解することに興味があります。

5
OpenGL ES 2.0ゲームで使用する完全な数学ライブラリですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 5年前に閉鎖されました。 OpenGL ES 2.0ゲームで使用するための完全な(またはほぼ完全な)クロスプラットフォームの数学ライブラリを知っていますか? ライブラリには以下が含まれている必要があります。 Matrix2x2、Matrix 3x3、Matrix4x4クラス 四元数 Vector2、Vector3、Vector4クラス オイラー角クラス 上記のクラス、変換などの操作。 3Dグラフィックスで標準的に使用される数学演算(ドット積、クロス積、SLERPなど) スタンドアロンまたはパッケージの一部として利用可能なそのようなMath APIはありますか? プログラミング言語:Visual C ++。ただし、OS XおよびAndroid OSに移植する予定。

6
C ++ゲームプロジェクトに推奨するスクリプト言語は何ですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 5年前に閉鎖されました。 ここでスクリプトを作成するということは、構成データをスクリプトに入れるだけでなく、一部のクラスメソッド、特定のゲームループなどのプロジェクトの一部をスクリプト化することを意味します。これは開発を加速するだけでなく、プレイヤーがこれらの一部を見ることができるようにすることですゲームのいくつかの側面を調整するスクリプト。 Luaのような一部の言語にはluabindのようなラッパーがありますが、過去に使用した場合、継承のコンテキストでメソッドの再定義をサポートしていないため問題がありました。 使用する/使用しない言語/ラッパーの提案は何ですか?

2
プレーヤーがアチーブメントを完了したかどうかを確認するにはどうすればよいですか?
MMOゲームを作成していますが、成果を実装する必要があります...どうすればよいですか?最も簡単なことは、これを100msごとに1回実行することです。 for a in achievements for p in players if a.meetsRequirements(p) then p.completeAchievement(a) しかし、それはさらに複雑な問題を引き起こします。たとえば、アチーブメントが実際に完了したかどうかを確認するにはどうすればよいですか?プレイヤーは特定の成果のためだけにカスタムプロパティを持っていますか?私はクエストでこの種のことをしました。なぜなら、それらは主に「100個の木材を収集する」からです。また、それをチェックするより良い時間があるはずです、これは私のサーバーを定期的に遅くするでしょう、と思います。

3
ビート検出とFFT
私はビート検出付きの音楽を含むプラットフォーマーゲームに取り組んでいます。現在、現在の振幅が履歴サンプルを超えているかどうかを確認することで、ビートを検出しています。これは、かなり安定した振幅を持つロックなどの音楽のジャンルではうまく機能しません。 そこで、さらに調べて、FFTを使用してサウンドを複数の帯域に分割するアルゴリズムを見つけました...そして、Cooley-Tukey FFtアルゴリズムを見つけました 私が抱えている唯一の問題は、私がオーディオにまったく慣れていないことであり、それを使用して信号を複数の信号に分割する方法がわかりません。 だから私の質問は: FFTを使用して信号を複数の帯域に分割する方法 また、興味のある人のために、これはc#の私のアルゴリズムです: // C = threshold, N = size of history buffer / 1024 public void PlaceBeatMarkers(float C, int N) { List<float> instantEnergyList = new List<float>(); short[] samples = soundData.Samples; float timePerSample = 1 / (float)soundData.SampleRate; int sampleIndex = 0; int nextSamples = 1024; // …

8
多面的な:強さまたは弱さ?
私がリードプログラマーだった私の最後の2つのタイトルは、その後リードデザインの役割に移りました。現在の会社では、デザインとプログラミングのハットを頻繁に切り替えています。 私の教育の大部分はプログラミングに関するものであり、私の経験はかなり広いです。正直なところ、自分の好きなものを選ぶことはできません。集中すれば、もう片方を空いた時間にやると思います。私の同僚は、私が両方の役割を果たせると考えています。 私は現在、いくつかの大企業での機会を探していますが、多くの場合、人々は私の二重の役割に投げられているようです。会社に私を簡単に合わせることができないので、場合によっては私のチャンスを損なうかもしれません。 1つだけを選んで焦点を合わせる必要がありますか、それとも2つの帽子を着用し続けることが実行可能ですか?

2
Managerクラスを作成しないようにするにはどうすればよいですか?
XxxManagerゲームエンジンプログラミングでスタイルクラスを使用することは悪い考えですが、使用を避けようとしても、常にすべてのアクター/エンティティ/ゲームワールドの場所を保持し、それらに作用するものになります。Manager別の名前ではifになります。 これは本当に悪いパターンですか?もしそうなら、選択肢は何ですか?


1
ゲームプログラミングにはどのような研究分野がありますか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 私は現在、ネットワークの最適化とさまざまな分散アプリケーションを研究しているグループに所属しており、ゲームにもっと興味がありますが、研究側からはもっと興味があります。研究の? 注:ゲーム開発は徹底的に調査されたさまざまなトピックで構成されていることを理解しています。私の質問は、ゲームアプリケーション専用の領域、または少なくともゲームにのみ重要な領域を対象としています。 1つの例としては、「キャラクタースキルの向上に対する遺伝的アルゴリズムアプローチ」が考えられます。プレイヤーのリターンに最も最適なスキルの向上を構築することに焦点を当てます。等...ランダムなアイデアが、あなたは私のポイントを得る。開発の技術面も意味しますが、これを制限したくありませんでした。

1
物理学とゲームロジックをUIコードから分離する
私は単純なブロックベースのパズルゲームに取り組んでいます。 ゲームプレイは、ゲームエリア内を移動するブロックで構成されているため、簡単な物理シミュレーションです。しかし、私の実装では、理想とはほど遠いものであり、より良い方法についての指針を教えていただけませんか。 多くのパズルゲームで行ったように、ゲームロジックとUIの2つの領域にコードを分割しました。 ゲームロジックは、ゲームの一般的なルール(チェスの正式なルールシステムなど)を担当します。 UIはゲーム領域とピース(チェス盤やピースなど)を表示し、アニメーション(チェスの駒のアニメーションの動きなど)を担当します。 ゲームロジックは、ゲームの状態を論理グリッドとして表します。各ユニットは、グリッド上の1つのセルの幅/高さです。したがって、幅6のグリッドの場合、幅2のブロックを境界と衝突するまで4回移動できます。 UIはこのグリッドを取得し、論理サイズをピクセルサイズに変換して描画します(つまり、定数を乗算します)。ただし、ゲームにはゲームロジックがほとんどないため、ゲームロジックレイヤー[1]は、衝突検出以外にはあまり関係がありません。仕組みは次のとおりです。 プレイヤーがピースをドラッグし始めます UIは、ゲームロジックにそのピースの正当な移動領域を要求し、プレイヤーがその領域内でそれをドラッグできるようにします プレイヤーは駒を手放す UIはピースをグリッドにスナップします(そのため、有効な論理位置に配置されます) UIはゲームロジックに新しい論理的位置を伝えます(ミューテーターメソッドを使用します。 私はそれに満足していません: ゲームロジックレイヤーのユニットテストを作成していますが、UIは作成していません。UIにはトリッキーなコードがすべて含まれていることがわかりました。ピースが他の人や境界と衝突してグリッドにスナップするのを止めます。 UIがゲームロジックに新しい状態を通知するという事実が気に入らないのでmovePieceLeft()、他のゲームのようにメソッドまたはそのようなものを呼び出すようにしたいのですが、そのアプローチにはあまり向いていません。ゲームロジックは、UIで可能なドラッグとスナップについて何も知りません。 最善の方法は、ゲームロジックレイヤーを取り除き、代わりに物理レイヤーを実装することだと思います。それに関していくつか質問があります。 このような物理層は一般的ですか、それともゲームロジック層にこれを行わせるのがより一般的ですか? グリッドへのスナップおよびピースのドラッグコードは、UIまたは物理レイヤーに属しますか? そのような物理層は、通常、ピクセルサイズまたはゲームロジック層のような何らかの論理ユニットで動作しますか? ゲームのコードベースでイベントベースの衝突検出を見たことがあります。つまり、プレーヤーがピースをドラッグするだけで、UIがそれを素直にレンダリングして物理システムに通知し、物理システムがonCollision()メソッドを呼び出します。衝突が検出されると作品に。もっと一般的なものは何ですか?このアプローチまたは最初に法的運動領域を求めていますか? [1] レイヤーはおそらく私が言っていることの正しい言葉ではありませんが、サブシステムは誇張されており、各レイヤーは複数のクラスで構成されているため、クラスは誤解しています。

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