3

私は比較的新しい開発者であり、C++を学びたいと思っています。私はjava、javascript、actionscript、およびpythonでのコーディングの経験がありますが、高性能の2Dおよび3Dゲームを実行するのに十分な速度が必要です。

最終的に基本(制御構造、クラスなど)を学んだら、2Dゲームを開発したいと思います。2Dグラフィックス用のさまざまなライブラリ(cairo、sdl、openframeworks、clutter)を調べましたが、clutterは高速グラフィックスとベクター描画に最も最適化されているようです。

乱雑さは2Dゲームに適していますか?他のライブラリとは異なり、独自のシーングラフを維持していることはわかっていますが、過去にフラッシュゲームを開発したことがあるので、それに慣れておく必要があります。

知っておくべきパフォーマンスの問題はありますか?他の誰かが雑然と重いグラフィックスをした経験がありますか?

4

3 に答える 3

7

私は Clutter を使用して多くの組み込みシステムの作業を行ってきましたが、現在は Clutter を使用してデスクトップ プロジェクトを行っています。デスクトップベースの 2D ゲームにはおそらく最適ですが、いくつかの注意事項があります。

  1. ツールキットでのメインライン開発は、非常に Linux 指向です。Windows、Mac、または iOS (「フルーティー」) のポートがどれだけ適切に維持されているかはわかりません。
  2. ドキュメントはまばらで、本もありません。(書こうと思っています。)
  3. C で書かれており、C 言語バインディングをネイティブに公開します。C++ を含む多くの言語用の Clutter バインディングがありますが、C 言語のバインディングを理解する必要があります。
  4. C++ オブジェクトをネイティブに使用しません。代わりに、C ベースの GObject システムを単一継承オブジェクトに使用します。C++ バインディングを使用して記述している場合でも、GObject についてもある程度理解する必要があります。
  5. スレッドで使用する場合は、POSIX スレッドや Boost スレッドなどではなく、そのスレッド システムを使用する必要があります。
  6. それは GPU のタールを本当に打ち負かすことができるので、何か派手なことをしている場合、安価なラップトップやネットブックで使用されているローエンドの Intel チップの一部では、フレームレートが平凡になる可能性があります。

そうは言っても、あなたはそれで驚くべきことをすることができます. 私はそれを使って作業することを本当に楽しんでいます.C++ との組み合わせはとても楽しいものです.

また、Clutter 関係者が参加する GUADEC という非常にロックなオープンソース カンファレンスがあります。2011 年 7 月にベルリンで Clutter ベースの楽しいゲームをプレイしていたら、人々はあなたにたくさんの飲み物を買ってくれるでしょう。

于 2010-11-11T02:25:59.563 に答える
1

おそらく Clutter は Windows ライブラリではなく、大部分のゲーム開発者は Windows プラットフォームで作業しているため、Clutter について聞いたことがないことを認めなければなりません。同様に、ほとんどのゲーム開発者 (インディー/愛好家であっても) は Cairo も Openframeworks も考慮していません。はるかに一般的なのは SDL の使用ですが、これは完全にハードウェア アクセラレーションされていないため、最新のゲームには適していません。SFMLは人気が高まっている代替手段ですが、最近のほとんどのゲーム開発者はおそらく、SDL などの上に独自の OpenGL レンダリングを展開しています。

一見すると、Clutterは良い選択かもしれませんし、完全な機能を備えているように見えます。しかし、大規模なフレームワークの問題は、フレームワークが壁に囲まれた庭のようになり、必要な追加ビットを統合するのが難しいことです。たとえば、入力がうまく機能するかどうかはわかりません。

あまり知られていないエンジンを使用する場合のもう 1 つの問題は、https://gamedev.stackexchange.com/またはhttp://www.gamedev.netにアクセスして質問しても、コミュニティが役に立たないことです。彼らはあなたが使用しているテクノロジーに精通していないためです。そのコストと、人気はないが実際には非常に有能なライブラリを使用することで得られる潜在的な利益とのバランスを取る必要があります。(そして、あなたが知らないことを他の人が知っている可能性もあります...)

于 2010-08-26T10:12:32.617 に答える
0

クラッターは比較的新しく、現在それを使用しているアプリケーションは多くありません。特にゲーム。そのため、ゲームの目的でそれを使用した経験のある人を見つけるのは難しいでしょう。

とは言うものの、クラッターには確かに目的に合った魅力的な機能がいくつかあり、多くの種類のゲームプレイでは、内部シーングラフがゲーム開発者にとっても有利になる可能性があると私は主張します。

2Dゲームグラフィックスのもう1つの興味深いオプションであるNokiaのQtを提案したいと思います。

これは主に汎用のGUIツールキットですが、すべてのゲーム開発者が最初に知っているとは限らない優れたプロポーションを備えています。実際、これには本格的なOpenGL描画バックエンドがあり、任意のウィジェットを描画したり、Qtのキャンバス描画操作を使用したりすることができます。

QGLWidgetを明示的に使用し始めると、物事はおかしくなります。これは、GL描画モード(デフォルトではありません)を強制するだけでなく、同じコンテキストで独自のGL描画をQtの描画操作と混合することもできます。強力なイベントキューと効率的な入力処理を組み合わせて、使いやすい高レベルの描画操作を使用できるだけでなく、さらに、将来的には、より高度な低レベルのグラフィックスを組み込む自由を維持できます。

この例を参照してください。ネイティブGL描画をQtのPainter機能と自由に組み合わせることができることに注意してください(GLマトリックススタックを処理する場合)。

于 2010-08-26T10:39:41.900 に答える