C ++ 2dゲームを作成したい場合、どこから始めますか?[閉まっている]


17

私はC#Web開発者であり、スキルセットを拡張し、それを楽しみながら楽しみたいと思っています。私はC ++の基本のいくつかを知っていて、C ++を使用して自分用の簡単な2Dゲーム/ゲームエンジンを作成したいと思っています。他にどのライブラリまたはSDKが必要ですか?前進するためのチュートリアルと情報リソースはどこにありますか?

私はすでにC#を使用してXNAを調査しました。そのためのリソースはたくさんありますが、マイクロソフト以外の製品を使用したいです。これのポイントは、より良い丸みを帯びたプログラマーになりながら、少し楽しい時間を過ごすことです。

始めるのに最適な場所を求めているわけではないことに注意してください。私はちょうどのために求めているを開始する場所。

助けてくれてありがとう!

回答:


27

C ++ゲーム開発の標準的な出発点(私の経験では)はSDLです。XNAを使用するよりも、これを少し汚くする必要があります。

少し高いレベルを試してみたい場合は、SFMLをお勧めします。それはあなたのためにいくつかのより厄介なタスクを処理しますが、あなたはまだあなたのメモリ使用量などに注意を払わなければなりません


1
それらを調べます。XNAでの私の最大の問題は、非常に単純なので、探索したい低レベルのものを本当に学んでいるとは感じなかったことです。
クアッケル

6
SFMLのデザインは優れていますが、まだかなりバグが多く、主要なAPIの再設計が進行中です。次のリリースが十分に洗練されるまで、より複雑なゲームには使用しません。
ビットガーデン

SDLよりも少し難しいものが必要な場合は、ClanLibを試してください。XNAと同様に、ハードウェアアクセラレーションをサポートしていますが、Linux上でも動作し、2D専用です。
ChrisC

2
また、のどに向かってまっすぐ行くこともできます
-OpenGL

9

SDLを使用することをお勧めします。かなり前からあるので、ドキュメントとサポートはかなり優れており、画面上に描画面を表示するのに知っている最も簡単な方法の1つです。C ++でクラスを書く練習をします(おそらく、SDL C関数呼び出しを多くラップする必要があるからです)。また、ポインターと参照を使用して、基本的なメモリ管理を行う経験も与えます。独自のメモリの管理は、C ++とC#の大きな違いの1つです。


9

個人的には、次の理由により、Allegro 5を選択します。

  1. CMakeベースのビルドシステムがあります。これにより、複数のプラットフォームで作業するためのほとんどのビルドシステムよりもはるかに簡単になります。これはささいなことのように思えますが、全体的に非常に重要です。ライブラリの構築がより簡単になります。

  2. SFMLはまだ大きな流れにあります。2.0はかなり大きな変更です。Allegroはすでにバージョン5で大幅な変更が行われていますが、現在は安定性がすべてです。

  3. SFMLとは異なる方法でモジュール性を扱います。SFMLでは、特定のコンポーネントを要求しますが、それらすべてを取得します。グラフィックコンポーネントを要求すると、すべてのグラフィックコンポーネントが取得されます。Allegro 5では、常にグラフィックコンポーネントを入手できます。ただし、Allegroのビットマップローダーを使用したくない場合は、その必要はありません。独自のものを使用できます。

  4. 非常に優れたドキュメントがあります。SFMLはDoxygenスタイルのドキュメントを使用しますが、それでもかなり質素です。Allegro 5はより包括的であり、対象となる特定のシステムに基づいて機能がグループ化されています。完全ではありませんが、全体的には優れています。

  5. スレッド化を試みないほど賢いです。C ++ 11 / Boost.Threadsが広く利用可能であるか、角を曲がったところにある場合、別のスレッドラッパーを使用することは、単に問題があるだけではありません。コードを適切に動作させることは危険です。


SDLやSFMLよりもAllegroを好む/推奨するのはなぜですか?
クアジイルファン

@iamcreasy:あなたが主張するなら。
ニコルボーラス

あなたはまだSDLについて言及していません...
エンジニア

@NickWiggill:SDLにはスレッドとプラットフォーム固有のビルドシステムがあります。私は特定の何かのためにそれを呼び出す必要を感じませんでした。
ニコルボラス

@ nicol-bolasアレグロの短所については言及していません。チュートリアルの比較が非常に少ないように。
クアジイルファン

4

素晴らしいスタート地点はLazyFooだと思います。これにより、私がこれまで見たどの場所よりも早くSDLを使用できるようになります。ハードウェアアクセラレーションを使用すると、プログラミングにかかる​​費用を大幅に増やすことができるため、OpenGLをすぐに使用することをお勧めします。もしあなたがその道を行くなら、このガイドをお勧めします。


2

C ++を使用している場合、SFMLをお勧めします。画面に何かがすぐに表示され、C ++ゲームコードでそれを使用するのは簡単です。


2
  • SFML-グループの赤ちゃんですが、私が読んだものから最も簡単に使用できる可能性があります。
  • SDL-中間の道。非常に成熟したライブラリで、賢明で、時々少し難解な場合は一般的に簡潔で、非常に一般的な選択です。表示形式の設定は少し厄介な場合があります。そのためには、lazyfooのチュートリアルを使用しました。
  • アレグロ-老人、アタリSTの時代から存在しています。そのため、多くの2Dレンダリングコード(これはAllegro 4のみにあると思います)は、ロジックがはるかに低い仕様のシステム用に構築されているため、かなり速いです。個人的には、ドキュメントを考慮しても、あまり直感的ではありません。

OpenGLが最近の2Dの側面を加速させていることを考えると、AllegroとSDLが持っている(または以前のバージョンにあった)高速ソフトウェアレンダラーにアクセスすることはそれほど重要ではありません。ただし、ライブラリを選択するときは、プロジェクトの成熟度、ユーザーベース、ドキュメントよりも速度に重点を置きます(速度が妥当である限り)。これらの面でSDLとAllegroが勝ちます。SDLは、Civ:Call to PowerなどのトリプルAAAタイトルもリリースしています。

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