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

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

4
「ツール開発」とは何ですか?
私はゲーム業界でさまざまな仕事を見てきましたが、広告で見た仕事の多くは「ツール開発者」の職に就いています。これが実際に何なのかわかりません。 誰かがこれが私にとって何であるかを説明してもらえますか?そして、もし誰かが私がそれをより理解するのを助ける資料へのリンクを持っているならば、それは非常に高く評価されるでしょう。

3
ユニットが追加または削除されたときに長方形の形成を維持するにはどうすればよいですか?
行と列のある長方形のボットがあります。ボットがフォーメーションに追加または削除されると、問題が発生します。これが発生すると、ボットは、長方形の構成がほぼ同じアスペクト比で、可能な限り長方形になるように、自分自身を再配置する必要があります。これを行う方法? いくつかのアイデア: ボットを追加または削除する場合、ボットの新しい合計数と目的の一定のアスペクト比を使用して、そのアスペクト比に最も近いフォーメーションの新しい幅と高さを計算します。次に、何らかの方法でボットをシャッフルし、新しい次元に合わせます。 ボットが削除されたら、その背後にあったボットをその場所に移動し、フォーメーションの最後に到達するまで続行します。次に、バックランクのボットを何らかの方法でシャッフルすることにより、バックランクを可能な限り均等にします。 まったく異なる別のアイデアは、分子構造が一緒に留まる方法を模倣することです。4つの最も近いボットを引き付け、残りのボットを撃退することで、すべてのボットを4つの他のボットに囲ませます。逆二乗則を使用して分離を確保するには近すぎるボット(4つを含む)をすべて撃退します。また、構造全体の形状に追加の力が必要になります。しかし、これは非常に計算コストがかかります。 更新:だからサラームの答えを見て、良い次元を与える良い一般的な関数を思いついた。 最初に、以下の幅と高さの連立方程式を解いてから、答えを丸めました。 width/height=aspect ratio of your choice width*height=number of bots これにより、ボット数に対してそのアスペクト比に最も近い整数の長方形が得られます。最も近い長方形は、半分の時間が大きすぎ、半分の時間が小さすぎます(もちろん、ちょうどいいかもしれませんが、それらを気にする人もいます)。長方形が少し大きすぎる場合は、何もする必要はありません。バックランクはほぼ満杯になり、理想的です。長方形が少し小さすぎる場合は、問題が発生します。小さなオーバーフローは独自のランクに移動する必要があるため、少数のボットのみのランクが作成されますが、見た目は美しくありません。違いが大きい場合もあります(幅の半分よりも大きい)。この場合、1つのランクを加算または減算して、差を小さくします。次に、長方形が小さすぎる場合は、列を1つ追加して少し大きくします。それを行った後、バックランクは常に他のランクの少なくとも半分のボットを持っているように見えます。 更新 寸法を取得したら、それらを現在の寸法と比較します。新しい次元の間口が大きい場合、ランクごとに、下のランクからボットをポップし、そのランクのボットの数が間口と等しくなるまで、現在のランクにプッシュします。バックランクに達するまで、そのアルゴリズムを続けます。このアルゴリズムを使用すると、ボットは新しい次元に効率的に収まるように移動します。その後、単に新しい古いものをバックランクにプッシュします。アルゴリズムは、新しい間口が小さい場合と若干異なりますが、あなたはそれを把握できます! 次に、さらに2つの問題があります。削除、および新しいボットが必ずしもバックランクに割り当てられるわけではなく、追加された時点で最も近い位置にあるボットの柔軟な追加方法。

4
プログラマーへの影響[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 プログラマ向けの特殊効果を作成するための優れたリソースはありますか?パーティクルエフェクトには特に興味はありませんが、次のような広範なものです。 フルスクリーン効果、ぼかし、被写界深度、ダメージ 爆発、衝撃波 武器、レーザー、発射体 環境-光の「輝き」とビーム、水、泡、ほこりなど 芸術的な観点よりも技術的な観点からこれらに興味があります。 編集:明確にするために、「SPUで深度ピーリングを行う方法」や「頂点テクスチャを使用した高速パーティクルレンダリング」などの低レベルの詳細には興味がありません。ゲームの特殊効果を示すため。 たとえば、「スペース」爆発をレンダリングする場合: 中央に不透明で明るい球を描きます。 ランダムな軸の周りにアルファ付きの衝撃波を描きます。 球体を展開し、アルファを減らします。 衝撃波を展開し、UVを回転させます。 中心からランダムにシャワー粒子が発生します。 衝撃波が視聴者の位置に達したときにカメラを揺らします。

10
C#にはゲーム開発の未来がありますか?
私は最近、MMO MinecraftがJavaを搭載していることを、CVG.co.ukの最近のインタビューで、2人の元同僚と現在競合している同僚とのコラボレーションについて学びました。インタビューでは、Minecraftの創設者はJavaコーダーであり、彼はCまたはC ++コーダーであるため、お互いに互換性がないと率直に言っています。したがって、将来のプロジェクトで協力することは困難です。 これは、Javaがそれを実現できたらと考えました。ゲームや主流のゲーム開発に関する限り、MSの非常に人気のあるC#言語と.Netプラットフォームの将来はどうなりますか?

4
すべてのグラフィックプログラマが何を書くべきか[非公開]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 私はSOでこの質問を見ましたが、ここではGFXに焦点を当てたいです。 あなたの意見では、すべての野心的なGFXプログラマーがどのアプリケーション/機能を作成/変更して改善する必要がありますか? 「正しい答え」がないため、コミュニティwiki。 LE:実際のゲームを指すのではなく、たとえば、エンジン内の何かを変更する(オブジェクトの読み込み方法など)、コンポジターを作成するなどのグラフィカル機能を指します。

15
アーティストを念頭に置いたシンプルなゲームエンジン/開発ツールですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問がトピックに合うように更新します Game Development Stack Exchangeでます。 6年前に閉鎖されました。 私はゲームの2Dアートサイドでしばらく働いており、フルタイムの仕事で物事のアートサイドで非常に忙しくしていますが、自分のゲームのプロトタイプを学ぶことにますます興味を持ち始めています。 プログラミングはほとんど知っていませんが、大学(TorqueScriptなど)で学んだこともありますが、時間をかけて学習することはできますが、学習曲線は完全に分離されているため、少し急すぎます私の現在の仕事。 アーティストを念頭に置いて設計されたインターフェイスを備えたゲームエンジンがあり、学習曲線が私にとってより簡単であり、現在のスキルセットがより簡単に適用される場所があるのではないかと考えています。Torque Game Builderのインディライセンスを購入しましたが、それでも多くのスクリプトが必要であり、優れた基本的なエントリーレベルのチュートリアルを見つけることは困難であることが判明しています。 基本的に、私はアートとゲームのデザインに焦点を当てることができ、プログラミングが最小限であるか、学習が簡単で、本当に優れたドキュメントを備えたツールを探しています。そのようなものが存在するかどうかはわかりませんが、一見の価値があります。:] 何か案は?

4
コード全体で1回限りのフラグとチェックを回避するにはどうすればよいですか?
Hearthstoneなどのカードゲームを検討してください。 多種多様なことを行う何百ものカードがあり、そのうちのいくつかは単一のカードにさえユニークです!例えば、プレイヤーのターンをわずか15秒に短縮するカード(Nozdormuと呼ばれる)があります! このようなさまざまな潜在的な効果がある場合、コード全体でマジックナンバーと1回限りのチェックを回避するにはどうすればよいですか?PlayerTurnTimeクラスの「Check_Nozdormu_In_Play」メソッドをどのように回避できますか?そして、さらに多くの効果を追加するときに、以前はサポートする必要がなかったものをサポートするためにコアシステムをリファクタリングする必要がないように、どのようにコードを編成できますか?

4
ゲームに「未来的な」機能を追加する価値はありますか、それとも他の場所に焦点を当てるべきでしょうか?
私は中規模のインディーズゲームスタジオのプログラマーです。これはチームとしての最初のゲームです。私たちは、利益分配ビジネスプランを備えた、未来的なFPSゲームに取り組んでいます。 とにかく、今まで見たことのない機能(真のリアルな流体、手続き型メッシュ破壊、手続き型スカイボックスなど)を作成できる優秀なプログラマーがいます。彼らは長い時間がかかりますが、見栄えがします。12か月の開発サイクルを目指しています。したがって、これを行うか、単に標準的なゲームを作成する必要があります。

14
Big Oは本当に重要ですか?
学界の最悪の場合、Big Oは他のすべてについて教えられます。スペースの複雑さ、通常のケース分析、複雑さに対する単純さなどと比較して。 特にゲームプログラミングと業界にとって、最も重要なのはなぜですか? 参照は非常に役立ちます。

1
Google Playで購入したものをモックするにはどうすればよいですか?
ユーザーがGoogle Playを介してアイテム/パワーアップを購入し、実際のお金で購入した場合、機能をテストするためのベストプラクティスを教えてください。 たとえば、基本的に、ゲームマネーを使用して、ゲーム中にインベントリに格納されたアイテムを購入および保存する簡単なテストを作成します。(たとえば、Final FantasyシリーズのGil や、PlayStation 1のTron Bonneの Zenny)、Unity3DまたはEclipse w / LibGDXライブラリでプログラミングしているときに、ゲームマネー経由でのみお金を購入する方法を知っています。 さて、実際にお金を使ってパワーアップアイテムを実際に購入するかどうかをユーザーに確認するプログラムを作成しなければならないとしましょう。次に、システムはオンライン状態を確認する必要があります。接続されている場合、単にGoogle Playダイアログに移動し、ユーザーにアイテムの購入を続行するかどうかを尋ねます。はい、クレジットカードの残高が十分な場合、ゲームアプリに戻り、ブール値がtrueを返すかどうかを確認します。ユーザーが購入したアイテムは保存されます。 もう1つの例は、実際のお金の量がプログラミングを介して計算され、不十分な場合、ユーザーはGoogle Playで購入することでより多くの実際のお金の価値を追加するように要求することです。trueを返す場合、リアルマネーの値がリロードされます。 この概念は、基本的にゲーム開発者に必要です。ただし、この機能とともにGoogle Playでゲームアプリを実際に公開する前に、クレジットカードの値などを使用せずに、実際のお金の購入テストをテストする安全な方法はありますか?このためのチュートリアル、スタートアップガイド、推奨事項などはありますか?どうやって始めればいいのか知りたいです。ありがとうございました。

6
2Dボイドシミュレーションをどのように並列化できますか
異なるソース(クラスター、gpu)からの処理能力を使用できるように、2Dボイドシミュレーションをどのようにプログラムできますか。 上記の例では、色の付いていない粒子は、クラスター化(黄色)して移動を停止するまで動き回ります。 問題は、左上のエンティティが右下のエンティティと相互作用する可能性は低いものの、すべてのエンティティが潜在的に相互作用する可能性があることです。ドメインが異なるセグメントに分割された場合、全体が高速化される可能性がありますが、エンティティが別のセグメントに移動したい場合は問題が発生する可能性があります。 現時点では、このシミュレーションは良好なフレームレートの5000のエンティティで機能しますが、可能であれば何百万ものエンティティで試してみたいと思います。 これをさらに最適化するために四分木を使用することは可能でしょうか?他の提案はありますか?

3
C ++の有限状態マシン
そのため、FSMを使用してゲームの状態管理を行うこと、FSMとは何か、1つを構築するためにスタックまたは状態のセットを使用することについて多くのことを読みました。私はすべてを経験しました。しかし、私はそのためにFSMの実際の適切に設計された実装を書くことにこだわっています。具体的には、どのようにして状態間を移行する問題をどのようにきれいに解決するのか、(どのように)状態が他の状態からのデータを使用できるようにするのか、などです。C ++で実装を設計および作成するためのヒントや、さらに良いコード例はありますか?

6
ビデオゲームはどのようにして情報を画面外に保存しますか?
私は最初からビデオゲームを作ろうとしていますが、これは本当に新しく、基本的な問題に直面し続けています。最も重要なのは、ビデオゲームがオフスクリーン情報をどのように保存するかということです。つまり、プログラムは画面に次に表示するものをどのように知るのでしょうか?または、プレーヤーが環境を変更した場合、次に画面にロードするときにこの変更はどのように残りますか? たとえば、New Super Mario Brosで?を押すと、ブロックしてから画面の外に出て、戻ってきても、ヒットしたままです。この情報はどのように保持され、次にプレーヤーがブロックをロードするときに実行されますか?なぜリセットされないのですか?


3
バージョン管理により、同様のゲームのゲームコードからゲームエンジンを分離する
他のバージョンでは辞退したいゲームが完成しました。これらは、ほぼ同じ種類のデザインの類似したゲームになりますが、常にではなく、基本的に物事が変化する場合があります。 コアコードをゲームとは別にバージョン管理して、ゲームAで見つかったバグを修正した場合、その修正がゲームBに存在するようにします。 私はそれを管理する最良の方法を見つけようとしています。私の最初のアイデアはこれです: engine一般化できるすべてを含み、ゲームの他の部分から完全に独立したモジュール/フォルダー/何でも作成します。これにはいくつかのコードが含まれますが、ゲーム間で共有される汎用アセットも含まれます。 このエンジンを独自のgitリポジトリに配置します。これはゲームに含まれますgit submodule 私が苦労しているのは、残りのコードの管理方法です。メニューシーンがあるとしましょう。このコードはゲーム固有ですが、ほとんどのコードは汎用的な傾向があり、他のゲームで再利用できます。に入れることはできませんがengine、ゲームごとに再コーディングするのは非効率です。 ある種のgitブランチのバリエーションを使用すると、それを管理するのに効果的かもしれませんが、これが最善の方法だとは思いません。 誰にもアイデアや共有する経験、またはそれについて何かありますか?

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