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

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

4
XNA for C ++のようなものはありますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 XNAの機能は気に入っていますが、C ++ゲーム開発に興味があります。問題は、PNGファイルの読み込みからウィンドウを開くまでのすべてを心配する必要があることです。これは少し面倒です。 これらの問題を解決するために、XNAのc ++バージョンが本当に欲しいです。
18 xna  c++ 

4
マルチスレッドエンジンのスレッド間でメッセージの受け渡しを煩雑にしないようにするにはどうすればよいですか?
現在取り組んでいるC ++エンジンは、いくつかの大きなスレッドに分割されています。生成(手順コンテンツの作成用)、ゲームプレイ(AI、スクリプト、シミュレーション用)、物理学、レンダリングです。 スレッドは、スレッドからスレッドに渡される小さなメッセージオブジェクトを介して相互に通信します。ステップ実行前に、スレッドはすべての受信メッセージを処理します-変換の更新、オブジェクトの追加と削除など。時々、あるスレッド(世代)が何か(アート)を作成し、それを別のスレッド(レンダリング)に渡して永久所有権を取得します。 プロセスの初期段階で、いくつかのことに気付きました。 メッセージングシステムは面倒です。新しいメッセージタイプの作成とは、ベースMessageクラスのサブクラス化、そのタイプの新しい列挙の作成、およびスレッドが新しいタイプのメッセージを解釈する方法のロジックを記述することを意味します。それは開発のためのスピードバンプであり、タイプミスのエラーを起こしやすいです。(Sidenote-これに取り組んでいると、動的言語がどれほど優れているかを理解できます!) これを行うためのより良い方法はありますか?boost :: bindのようなものを使用してこれを自動化する必要がありますか?そうすると、発言したり、タイプなどに基づいてメッセージを並べ替えたりすることができなくなります。そのような管理が必要になるかどうかはわかりません。 これらのスレッドは非常に多くの通信を行うため、最初のポイントは重要です。メッセージを作成して渡すことは、物事を実現するための大きな部分です。私はそのシステムを合理化したいが、同じように役立つかもしれない他のパラダイムにも開かれたい。これを簡単にするために考えるべき異なるマルチスレッド設計はありますか? たとえば、まれにしか書き込まれないが、複数のスレッドから頻繁に読み取られるリソースがあります。すべてのスレッドがアクセスできる、ミューテックスによって保護された共有データを持つというアイデアに開かれるべきですか? ゼロからマルチスレッドを念頭に置いて何かを設計するのは初めてです。この初期段階では、私は実際にそれが本当にうまくいくと考えています(考慮)が、スケーリングと、新しいものを実装する際の私自身の効率が心配です。

6
ゲームエンジンに最適なC ++数学ライブラリですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 次の機能を備えたゲームエンジン用の高速なオープンソースC ++数学ライブラリを探しています。 高速(sse?) ベクトル 行列 四元数 openglとdirectxの両方に適しています
18 c++  mathematics 

5
iOSゲーム用のObjective-CまたはC ++?
私はObjective-CとC ++でのプログラミングにはかなり自信がありますが、Objective-Cの方が使いやすく、本質的に柔軟性と動的性が高いと感じています。 iOSでゲームを書くためにObj-Cの代わりにC ++を使用する場合の長所と短所は何ですか?むしろ、C ++と比較してObj-Cの使用に既知の問題はありますか? 例えば、私は疑いのObj-Cは、C / C ++で書かれたコードと比較してパフォーマンスの問題があるかもしれません。

8
C ++でのシリアル化に適したソリューションは何ですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 5年前に閉鎖されました。 私は、ゲーム開発者がゲーム用に扱うさまざまなタイプのデータをシリアル化するためにどのようなソリューションを考え出したのか興味があります。派生型のシリアル化インターフェイスを収容するモノリシックなGameObject階層を使用する、カスタムRTTIベースのカスタムソリューションを使用する、特定のクラスの明示的なストリームシリアル化を実行する、またはいくつかのオープンソースソリューションを使用する(boost :: serialization、s11n、等)。

4
エンティティシステムのキャッシュミスと使いやすさ
最近、私は自分のフレームワークのためにエンティティシステムを調査し、実装しています。私は見つけることができるほとんどの記事、reddits、およびそれについての質問を読んだと思います。 ただし、全体的なC ++の動作、エンティティシステムを実装する言語、およびユーザビリティの問題についていくつかの疑問が生じました。 したがって、1つのアプローチは、エンティティにコンポーネントの配列を直接格納することです。これは、データを反復処理するときにキャッシュの局所性を損なうため、実行しませんでした。このため、コンポーネントタイプごとに1つの配列を作成することにしました。そのため、同じタイプのすべてのコンポーネントがメモリ内で連続しており、迅速な反復に最適なソリューションになります。 しかし、実際のゲームプレイ実装のシステムからコンポーネント配列を繰り返し処理する場合、ほとんどの場合、一度に2つ以上のコンポーネントタイプを使用しています。たとえば、レンダリングシステムはTransformとModelコンポーネントを一緒に使用して、実際にレンダリング呼び出しを行います。私の質問は、これらのケースでは一度に1つの連続した配列を直線的に反復していないので、この方法でコンポーネントを割り当てることによるパフォーマンスの向上をすぐに犠牲にするのですか?C ++で2つの異なる連続した配列を繰り返し、各サイクルで両方のデータを使用する場合、問題がありますか? 私が質問したい別のことは、コンポーネントまたはエンティティへの参照をどのように保持する必要があるかです。コンポーネントがメモリに配置される方法の性質は、配列内の位置を簡単に切り替えることができるか、配列が拡張またはコンポーネントポインターまたはハンドルが無効のままになります。フレームごとに変換や他のコンポーネントを操作したいことがよくあり、ハンドルまたはポインターが無効な場合は、フレームごとに検索するのが非常に面倒なので、これらのケースをどのように処理することをお勧めしますか?

5
ゲームオブジェクトはどのようにお互いを認識する必要がありますか?
ゲームオブジェクトを多形であると同時に多形ではないように整理する方法を見つけるのは難しいと思います。 例は次のとおりです。すべてのオブジェクトにupdate()とが必要であると仮定しますdraw()。そのためには、GameObjectこれら2つの仮想純粋メソッドを持つ基本クラスを定義し、ポリモーフィズムを開始させる必要があります。 class World { private: std::vector<GameObject*> objects; public: // ... update() { for (auto& o : objects) o->update(); for (auto& o : objects) o->draw(window); } }; updateメソッドは、特定のクラスオブジェクトが更新する必要がある状態を処理することになっています。事実は、各オブジェクトが周囲の世界について知る必要があるということです。例えば: 鉱山は誰かが衝突しているかどうかを知る必要があります 兵士は、他のチームの兵士が近くにいるかどうかを知る必要があります ゾンビは、半径内で最も近い脳がどこにあるかを知っている必要があります 受動的相互作用(最初の相互作用のような)の場合、衝突検出は、衝突の特定のケースで何をすべきかをオブジェクト自体に委任できると考えていましたon_collide(GameObject*)。 他のほとんどの情報(他の2つの例のように)は、updateメソッドに渡されたゲームワールドによって照会できます。現在、世界はオブジェクトのタイプに基づいてオブジェクトを区別しません(すべてのオブジェクトを単一のポリモーフィックコンテナに格納します)。したがって、実際に理想的に返さworld.entities_in(center, radius)れるのはのコンテナですGameObject*。しかしもちろん、兵士は自分のチームから他の兵士を攻撃したくはありませんし、ゾンビは他のゾンビについては言いません。そのため、動作を区別する必要があります。解決策は次のとおりです。 void TeamASoldier::update(const World& world) { auto list = world.entities_in(position, eye_sight); for (const auto& e : list) …
18 c++  architecture 

2
C ++ Entity-Component-Systemsのコンポーネントに適切にアクセスするにはどうすればよいですか?
(私が説明しているのは、この設計に基づいています:エンティティシステムフレームワークとは何ですか?、下にスクロールすると見つかります) C ++でエンティティコンポーネントシステムを作成するときに問題が発生します。コンポーネントクラスがあります。 class Component { /* ... */ }; これは実際には、他のコンポーネントを作成するためのインターフェースです。したがって、カスタムコンポーネントを作成するには、インターフェイスを実装し、ゲーム内で使用されるデータを追加するだけです。 class SampleComponent : public Component { int foo, float bar ... }; これらのコンポーネントはEntityクラス内に格納され、Entityの各インスタンスに一意のIDが付与されます。 class Entity { int ID; std::unordered_map<string, Component*> components; string getName(); /* ... */ }; コンポーネントは、コンポーネントの名前をハッシュすることでエンティティに追加されます(これはおそらくそれほど素晴らしい考えではありません)。カスタムコンポーネントを追加すると、コンポーネントタイプ(ベースクラス)として保存されます。 一方、今では、内部にNodeインターフェースを使用するSystemインターフェースがあります。Nodeクラスは、単一のエンティティのコンポーネントの一部を格納するために使用されます(システムはエンティティのすべてのコンポーネントの使用に関心がないため)。システムがupdate()必要な場合、システムは異なるエンティティから作成されたノードを反復処理するだけです。そう: /* System and Node implementations: (not the interfaces!) */ class …

1
Unrealでは、C ++のfloatとFFloat32の違いは何ですか?
私はUE4のより深い側面を学ぼうとしていますが、多くのサンプルコードとエンジンのソースベースを読んでいると、人々(およびソースコード)が標準のC ++ floatプリミティブを使用するが、UE4のカスタム実装を使用することがあることに気付きましたFFloat32。 その後、私は好奇心が強くなりました:Unrealでゲームをプログラミングするとき、これら2つのオプションを使用することの違いは何ですか?また、エンジンの実装を支持して標準C ++プリミティブをドロップすべき主なケースは何ですか?

1
エディターを使用せずに、Unreal Engineを大きなC ++ライブラリとして使用することは可能ですか?
完全にC ++でゲームを作成したいのですが、特にグラフィックスと物理学の面で、Unreal Engineが提供する可能性から利益を得たいと思います。それにもかかわらず、私はその視覚的なエディターを強く嫌います:私はそれが重く、遅く、直感的でないと思います。最後に、お気に入りのC ++ IDEの代わりにVisual Studioを使用せざるを得ません。 Unreal EngineをC ++プロジェクトに単純に含めることができる大きなライブラリとして使用する方法はありますか、それともUnreal Editorを使用せざるを得ませんか? Unityに関する関連質問:ビジュアルエディターを最小限/使用せずにUnityでゲームをビルドするにはどうすればよいですか?
17 c++  unreal-4  unreal 

3
ビットマップの2つのポイント間に直線をどのように描画しますか?
私は高さマップ(ビットマップ)をいじって、自分のゲームで独自のマップを作成しようとしています。そのために、いくつかの基本的な描画メソッドを実装する必要があります。私はすぐに、直線を描くことは思ったほど基本的ではないことに気付きました。 ポイントがX座標またはY座標を共有している場合、または完全に対角線を描くことができるように位置が揃っている場合、それは簡単です。しかし、他のすべての場合では、より複雑です。 「まっすぐな」線になるためにどのピクセルに色を付ける必要があるかを決定するために、どのアルゴリズムを使用しますか?

1
法線と法線マップ
Assimp Asset Importer(http://assimp.sourceforge.net/lib_html/index.html)を使用して3Dモデルを解析しています。 これまでのところ、メッシュの各頂点に定義されている法線ベクトルを単純に引き出しました。それでも、法線マップに関するさまざまなチュートリアルを見つけました... 法線マップについて理解しているように、法線ベクトルは法線マップの各テクセルに格納されており、これらをシェーダーの法線テクスチャから引き出します。 法線を取得するのに2つの方法があるのはなぜですか?

7
ゲーム業界で就職したい場合、C ++を学ぶ必要がありますか?
ゲーム業界で就職したい場合、C ++は学習する必要がありますか?私はC#に非常に精通しており、XNA 4.0で2Dゲームを作成する基本的な知識を持っています。今、私はわずか13歳で、ゲームを作るのが大好きで、いつかゲームプログラミングの仕事に就きたいと思っています。多くの人が、C ++は「業界標準」であり、C ++を知らないとあなたのキャリアを損なうと言うことを聞いたことがあります。また、Windows以外のプラットフォームをターゲットにしようとしていますが、Monogameを認識していますしかし、何らかの理由で、Visual Studioテンプレートに多くの問題があり、モノゲームに多くのバグがあります。私は技術的にまだ仕事を得ることができないので、おそらく22か何かになるまでプログラミングの仕事を得ることができませんでした(im自営業でない限り)。そして、9年以上の期間で、ゲーム業界は大きく変化するでしょう。ここにいくつか質問があります C ++を学ぶことでプログラミングの仕事に就くチャンスが損なわれることはありませんか? 就職できるまでに、C ++は依然として「業界標準」のプログラミング言語になります 私がインディー開発者である場合、C ++を学ぶかどうかは本当に重要であり、私が知っていることに固執しますか? 仕事に就くまでに何年もかかるので、今でも学習を開始すべきでしょうか? また、オブジェクト指向プログラミングに精通していても、C ++に多くの時間を費やし、非常に失望し、混乱し、学習をやめるかもしれないという心配もあります。私はすべてを学ぶ必要があります。要するに、プログラミングの仕事が必要になったら、C ++を学ぶべきでしょうか? 更新 回答と提案をありがとうございました。最近、SFMLとC ++を取り上げましたが、かなり順調です。私はC ++のコツをつかみ、新しいことを学ぶことを気にしないことに目を向け始めています。なぜなら、C#の知識をすべてC ++の学習を容易にすることに移行できたからです。もう一度ありがとう。
17 xna  c++  game-industry  jobs 

1
高速で正確な2Dコリジョン
私は2Dトップダウンシューティングゲームに取り組んでおり、今では基本的な四角形の境界ボックス衝突システムを超える必要があります。 私は多くの異なるスプライトを持つ大きなレベルを持っています。それらはすべて異なる形状とサイズです。スプライトのテクスチャはすべて透明な背景を持つ正方形のpngファイルであるため、プレーヤーが透明な背景ではなくテクスチャの色付き部分に進入したときにのみ衝突する方法も必要です。 次のように衝突を処理する予定です。 プレーヤーの範囲内にスプライトがあるかどうかを確認します 四角形の境界ボックスの衝突テストを行う 正確な衝突を行う(助けが必要な場合) 私はすべての要件を念頭に置いてこれを正しくしたいので、高度な技術は気にしませんが、これにどのようにアプローチするのかわかりません。どんなテクニック、さらにはライブラリも試してみてください。私はおそらく、各スプライトから透明な背景を差し引いたものを正確に表す何らかの種類の形状を作成して保存する必要があることを知っています。 私はピクセルごとに遅いことを読んだので、私の大きなレベルとオブジェクトの数を考えると、私はそれが適切だとは思わない。Box2dも調べましたが、多くのドキュメントや、SFMLでそれを実行する方法の例を見つけることができませんでした。

6
C ++ 2dゲームを作成したい場合、どこから始めますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 私はC#Web開発者であり、スキルセットを拡張し、それを楽しみながら楽しみたいと思っています。私はC ++の基本のいくつかを知っていて、C ++を使用して自分用の簡単な2Dゲーム/ゲームエンジンを作成したいと思っています。他にどのライブラリまたはSDKが必要ですか?前進するためのチュートリアルと情報リソースはどこにありますか? 私はすでにC#を使用してXNAを調査しました。そのためのリソースはたくさんありますが、マイクロソフト以外の製品を使用したいです。これのポイントは、より良い丸みを帯びたプログラマーになりながら、少し楽しい時間を過ごすことです。 始めるのに最適な場所を求めているわけではないことに注意してください。私はちょうどのために求めているを開始する場所。 助けてくれてありがとう!
17 c++ 

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