タグ付けされた質問 「c++」

C ++は、静的に型付けされた自由形式のマルチパラダイムでコンパイルされた汎用プログラミング言語です。

22
ゲームのSTL、そうですか、それとも否定ですか?[閉まっている]
すべてのプログラミング言語には、コンテナ、アルゴリズム、およびその他の有用なものの標準ライブラリがあります。C#、Java、Pythonなどの言語では、標準ライブラリなしで言語を使用することは実際には考えられません。 しかし、私が取り組んできた多くのC ++ゲームでは、STLをまったく使用しなかったか、ごく一部を使用したか、独自の実装を使用しました。それが私たちのゲームにとって健全な決定であったのか、それとも単にSTLの無知から作られたものなのかを判断するのは困難です。 だから... STLはぴったりですか?
144 c++ 

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

9
C ++ゲーム開発者がBoostライブラリを使用しないのはなぜですか?[閉まっている]
したがって、C ++タグの下でStack Overflowの質問を見たり答えたりすることに時間を費やすと、ほとんどすべての人がboostライブラリを使用していることにすぐに気付くでしょう。使用しない場合、「本当の」C ++を書いているわけではないと言う人もいます(私は同意しませんが、それはポイントではありません)。 しかし、C ++を使用し、ブーストを使用しないことでよく知られているゲーム業界があります。私は仕方がありませんが、それがなぜなのか疑問に思います。私はゲームを(現在)趣味として書いているので、ブーストを使用する気はありません。その趣味の一部は、できるときに必要なものを実装し、できないときにすぐに使えるライブラリを使用することです。しかし、それは私だけです。 一般に、ゲーム開発者がブーストライブラリを使用しないのはなぜですか?パフォーマンスまたはメモリの問題ですか?スタイル?他に何か? スタックオーバーフローでこれを尋ねようとしていましたが、ここで質問した方が良いと考えました。 編集: すべてのゲームプログラマーの意見を話すことはできず、すべてのゲームプロジェクトを見たこともないので、ゲーム開発者は決して boostを使用しないとは言えません。これは単に私の経験です。 質問を編集して、ブーストを使用する場合、なぜ使用することを選択したのかを尋ねることができますか?
81 c++ 

17
C ++低レベル最適化のヒント[終了]
すでに最良の選択アルゴリズムを持っていると仮定すると、C ++コードから甘いスイートフレームレートの最後の数滴を圧縮するために、どのような低レベルのソリューションを提供できますか? 言うまでもなく、これらのヒントは、プロファイラーで既に強調した重要なコードセクションにのみ適用されますが、低レベルの非構造的な改善である必要があります。私は例をシードしました。
79 c++  optimization 

9
C ++ゲーム開発用の使いやすいクロスプラットフォーム3Dエンジン?[閉まっている]
3Dゲームの作成に手を取りたいです。ただし、個々の三角形を描画し、独自の3Dオブジェクトローダーを作成するなどの低レベルから始めたいとは思いません。Irrlicht、Crystal Space 3D、Cafuのようなことを聞​​いたことがありますが、私はそれらのどれにも経験がありません。これらのエンジンや他のエンジンを使いこなしており、3D数学理論やGPUが内部でどのように機能するかを学ぶ必要なしに使い始めやすいエンジンの経験がある人からの提案を探しています。
73 c++  3d  cross-platform 

10
データ量の多いリアルタイムゲームの場合、UDPはTCPよりも優れていますか?
UDPは、通常、データ使用量の多いリアルタイムマルチプレイヤーゲームに推奨されることを知っています。 ほとんどの記事は数年前に作成されたものであり、インターネット上で送信されるすべてのデータの〜80%がTCPであるため、TCPに対して多くの最適化が行われたに違いありません。 これは私に不思議にさせます:UDPはまだ速度と待ち時間の点で優れていますか?最近のTCP最適化により、TCPはUDPよりもパフォーマンスが向上しましたか?
71 c++  networking  udp  realtime 

6
Luaはゲームのスクリプト言語としてどのように機能しますか?
私は、Luaが何であるか、C ++でプログラムされたゲームがそれをどのように使用するかについて少しhaんでいます。私は主にそれがどのようにコンパイルされ実行されるかについて尋ねています。 たとえば、Luaスクリプトを使用するC ++で記述されたプログラムを使用する場合:Luaのコードは、C ++で記述されたメインプログラムの関数を呼び出し、コンパイルされてC ++のメモリヒープに追加されるのを待機している未コンパイルクラスとして機能しますプログラム? それとも、メインプログラムとは完全に分離したプログラムを実行するだけのLinuxのbashスクリプトのように動作しますか?
67 c++  scripting  lua 

9
ゲームのすべての画像を1つのファイルに配置するにはどうすればよいですか?
C ++ SFMLで書かれた基本的なRPGゲームを完成させたばかりで、ゲームに多大な労力を注ぎ、配布したいと考えていますが、小さな問題に遭遇しました。 問題は、実行可能ファイルと同じフォルダー内にすべての200個を超える画像とマップファイル(マップコードを保持する.txtファイル)があり、フォルダーを見ると少し泣きたい非常に多くのリソースがあるので、すべてのリソースを直接表示するゲームを見たことはありません。代わりに、特定のファイルにリソースを詰め込んでいると思います。 まあ、それは私が達成しようとしていることです:すべての画像を1つのファイル(おそらく.txtファイルかもしれません)に詰めて、そのファイルから読み取るか簡単に追加できるようにしたいと思っています。
67 c++  assets  sfml  spritesheet 

9
柔軟なバフ/デバフシステムを実装する方法は何ですか?
概要: RPGのような統計を備えた多くのゲームでは、キャラクターの「バフ」が可能です。単純な「25%の追加ダメージ」から「ヒット時に攻撃者に15ダメージを戻す」などのより複雑なものまであります。 各タイプのバフの詳細は、実際には関係ありません。私は(おそらくオブジェクト指向の)任意のバフを処理する方法を探しています。 詳細: 私の特定のケースでは、ターンベースの戦闘環境に複数のキャラクターがいるため、「OnTurnStart」、「OnReceiveDamage」などのイベントにバフが結び付けられることを想定しました。関連するイベントのみがオーバーロードされます。その後、各キャラクターに現在適用されているバフのベクトルを持たせることができます。 この解決策は理にかなっていますか?私は確かに何十ものイベントタイプが必要であることを見ることができます。バフごとに新しいサブクラスを作成するのはやり過ぎだと感じており、バフの「相互作用」を許可していないようです。つまり、25%の追加ダメージを与える10個のバフがあったとしても、250%の追加ではなく100%の追加のみを行うように、ダメージブーストに上限を設定したい場合です。 そして、理想的には制御できるより複雑な状況があります。ゲーム開発者としては望まないかもしれない方法で、より洗練されたバフが潜在的に相互作用する方法の例を誰もが思い付くことができると確信しています。 比較的経験の浅いC ++プログラマー(私は一般に組み込みシステムでCを使用しました)として、私のソリューションは単純であり、おそらくオブジェクト指向言語を十分に活用していないように感じます。 考え?ここで誰かがかなり堅牢なバフシステムを設計したことがありますか? 編集:回答について: 主に詳細と質問に対する確固たる回答に基づいて回答を選択しましたが、回答を読むことでさらに洞察が得られました。 おそらく驚くことではないが、異なるシステムまたは微調整されたシステムは、特定の状況により良く適用されるように思われる。ゲームに最適なシステムは、適用できるバフの種類、分散、および数によって異なります。 ほぼすべての装備がバフの強さを変更できるDiablo 3(後述)のようなゲームでは、バフは単なるキャラクターのステータスですシステムであり、可能な限り良いアイデアのようです。 私がいるターンベースの状況では、イベントベースのアプローチがより適しているかもしれません。 いずれにせよ、私はまだ誰かが私を適用するためにできるようになります空想「OO」魔法の弾丸と一緒に来て願っていますターンあたり2移動距離バフ、ダメージの50%が攻撃者に戻って撮影した取引バフをし、単一のシステムで3つ以上のタイル離れたバフから攻撃された場合、+ 5の強さのバフを独自のサブクラスに変えることなく、自動的に近くのタイルにテレポートします。 一番近いのは私がマークした答えだと思うが、床はまだ開いている。入力してくれたみんなに感謝します。

9
OpenGLに適したGUIですか?[閉まっている]
Superbibleを使用してFreeGLUTでOpenGLを学習し始め、スキルを磨くために基本的なグラフィックスから得た知識を使用しています。 この経験をさらに活用するために、FreeGLUTが使用するものを上書きするためにGUIを統合したいのですが、今私の質問は次のとおりです。 ライブラリのいくつかの特徴: オープンソース マルチプラットフォーム(LinuxおよびWindows) C / C ++ 他に推奨事項がある場合は、私の問題に対する回答とともに自由に投稿してください。

10
ゲーム状態「スタック」?
ゲームの状態をゲームに実装する方法を考えていました。主なものは次のとおりです。 半透明の上位の状態-一時停止メニューから背後のゲームまで見ることができる OO-Iの何かは、これをより簡単に使用し、背後にある理論を理解し、組織化を維持し、さらに追加することに気付きます。 リンクリストの使用を計画しており、スタックとして扱いました。これは、半透明のために以下の状態にアクセスできることを意味します。 計画:状態スタックをIGameStatesへのポインターのリンクリストにする。一番上の状態は独自の更新コマンドと入力コマンドを処理し、その下の状態を描画するかどうかを決定するメンバーisTransparentを持っています。 それから私はできました: states.push_back(new MainMenuState()); states.push_back(new OptionsMenuState()); states.pop_front(); プレーヤーの読み込みを表すために、オプションに移動してから、メインメニューに進みます。 これはいいアイデアですか、それとも...?他の何かを見るべきですか? ありがとう。

9
浮動小数点の非決定論に直面して決定論的ゲームはどのように可能ですか?
ネットワーク化されたRTSのようなゲームを作成するために、ここでゲームを完全に決定論的にすることを提案する多くの回答を見ました。次に、ユーザーのアクションを相互に転送するだけで、次のフレームがレンダリングされる前にすべてのユーザーの入力を「ロック」するために、表示されているものを少し遅らせるだけで済みます。その場合、ユニットの位置、ヘルスなどのようなものは、ネットワーク上で常に更新される必要はありません。すべてのプレイヤーのシミュレーションはまったく同じだからです。また、リプレイを行うために提案された同じことを聞いたことがあります。 ただし、浮動小数点の計算はマシン間、または同じマシン上の同じプログラムの異なるコンパイル間でも非決定的であるため、これは本当に可能ですか?その事実が、ゲーム全体に波及するプレイヤー(またはリプレイ)間の小さな違いを引き起こすのをどのように防ぐのでしょうか? 一部の人々は、浮動小数点数を完全に避けint、分数の商を表すために使用することを提案することを聞いたことがありますが、それは私には実用的ではありません-たとえば、角度の余弦を取る必要がある場合はどうなりますか?数学ライブラリ全体を真剣に書き直す必要がありますか? 私は主にC#に興味があることに注意してください。私が知る限り、この点ではC ++とまったく同じ問題があります。

7
プロトタイプを作成するときに、ゲームの動作をより簡単に調べるにはどうすればよいですか?
私は自分でインディーゲームを作成しますが、通常、新しく開発されたゲームをビヘイビアーでプレイできるレベルにすると、エネルギーが足りなくなるため、探索ではなく洗練に取り組みます。ひどい結果で。 (Intercomブログからの写真) たとえば、動作の微調整(つまり、C ++アプリケーションのリンクと再起動)の反復サイクルが非常に長く、すべての創造性が失われることがわかりました。これに対処するツールを作成しています。 ゲームの振る舞いをすばやく探索する他の方法はありますか?私は、インディー開発者と大企業が使用する方法論に興味があります。

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

2
RPGレベルアップ要件に合わせて調整可能な数式を作成する方法は?
number_of_levelsとlast_level_experienceの2つの値を変更するだけで変更できる数式を作成しようとしています。これは、ゲームを改造する人がレベリング要件を変更できるようにするためです。 最後のレベルアップに必要なXPの数を指定できるようにしましたが、最初のレベルアップに必要なXPを制御できるようにしたいので、この場合は大きく異なります。たとえば、40のレベルがあり、最後のレベルに1,000,000 XPがある場合、最初のレベルアップ要件は625になります。しかし、レベルを80に変更すると、最初のレベルアップは156になります。 1,000,000。 これらの2つの基本値だけを与えて、コンピューターに適切な曲線を作成させる方法が必要です。 #include <iostream> int main() { int levels = 40; if (levels < 2) levels = 2; int experience_for_last_level = 1e6; float fraction = 1.0 / levels; { int i = 0; float fraction_counter = fraction; int counter = levels; int total = 0; for (i …

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