小規模なゲームプログラミングには、どのシーングラフが最適ですか。


8

私は、最近ゲーム開発に興味を持ち始めた7年以来、Java Webアプリケーション開発者(主にサーバー側)です(理由はわかりませんが、おそらく退屈です)。今日、私はフレームワークを探していました。いくつかのシーングラフについて読み、jMonkeyEngineを調べましたここここがお勧めです

私の最初の目標は、キーボードを使用して移動できる単純な平面と球を作成することでした。さて、先ほど触れたように、私はWeb開発者であり、他に何もプログラミングしたことがないので、jMonkeyのチュートリアルから始めました。しかし、私はそれらを機能させることができませんでした。私はウィキを調べましたが、少なくとも私が慣れているものと比較して、ドキュメントが非常に貧弱であるように見えました。次に、他のいくつかのシーングラフ(これもC ++の場合)を調べましたが、古くて不完全な不十分なドキュメントもあるようです。

誰かが私に実用的なサンプルが十分に文書化されているシーングラフを勧めることができますか?または、このトピックに入る「究極のガイド」のようなものはありますか?最初に自分のシーングラフを作成して機能させる方法を知る必要がありますか、それとも抽象的な原則を理解して、より高い視点からそれを使用することは可能ですか?

どういうわけか私はそれをうまく使用するためにシーングラフの内部を理解する必要があると感じています(Web開発のORMツールの場合のように、データベースを理解しないとそれらをうまく使用できません)

この質問があまりにも「無意味」である場合は申し訳ありませんが、ただ立ち上がって最初のステップを実行したいだけです。

回答:


5

シーングラフはツールです。ゲーム開発を始めたばかりの場合は、あまり適切なツールではありません。

あなたが求めているのはシーングラフではなく、ある種のフレームワークだと思います。

XNAは本当に良いので(強力で、現代的で、十分に文書化されていて、初心者に優しい)XNAをお勧めします。しかし、それはC#であり、Javaの人であることがわかります。Javaを使いたい場合は、おそらく古いNeHe OpenGLチュートリアルのJavaポートから始めるのがよいでしょう(これはフレームワークではありませんが、それを行うための一連のチュートリアルです(低レベル)。 )フレームワークがあなたのために行うことの種類-モデルのロードとレンダリング、テクスチャのロードなど)。

最初のいくつかのレッスンでは、変換マトリックスについて学習します。これは、基本的にシーングラフのすべてについてです(一般的な場合)。

シーングラフを簡単に説明すると、次のようになります。風車モデルがあるとします-独自の空間で定義されています。あなたそれをあなたの世界空間のどこに表示したいかに翻訳します。その風車には、回転するブレードの子オブジェクトがあるので、回転変換をブレードに適用し、親の移動を継承して、ブレードをワールドに正しく配置します。

小さなゲームを作り始めるときは、この大きな複雑なデータ構造を持つことについてそれほど心配する必要はありません。通常、変換行列を直接適用するモデルがいくつかあります。

(シーングラフは、マテリアルによる並べ替え、カリングなどのパフォーマンス関連の事柄にも使用されます-初心者やほとんどの小さなゲームではすべて不要です。)


XNAを使用したことはありませんが、XNA自体にシーングラフはありますか?
Calvin1602 2010

いいえ。XNAはそれより少し低いレベルです。自分で書く必要があります。
アンドリューラッセル

8

シーングラフは必需品としてスポットを少し失いました。シーングラフ中心のエンジンがシーングラフのアイデアに拘束されすぎて混乱するためです。事実は、エンジンのさまざまな部分が異なる世界のビューを必要とするのに対し、シーングラフ中心のエンジンは、エンジンのすべての部分に同じビューを課したがる傾向があるということです。
シーングラフは従来から見られているように、親オブジェクトと子オブジェクトの階層は変換には適していますが、使用するマテリアルに関心がある場合、レンダリングには完全に不適切な場合があります(まあ、ロケーションも重要ですが、さまざまなものがあります)それと親子を処理する方法は、それらが接近していることを保証するものではありません。
多くのゲームでは、多くの子供たちがいるシーンルートを持っていますが、それらの子供たちが自分の子供を持つことはほとんどありません。子を持っているいくつかは、自分で更新してシーングラフをスキップし、不要な複雑さとパフォーマンスの損失を追加する可能性があります(親がダーティであるかどうかを変換チェックするたびに、実際にダーティになる親を持っているのはごく一部です(世界のルートはめったにありません)移動)。


2

Unity3dのようなゲームエンジンを使用しないのはなぜですか?使いやすく、優れたドキュメントで知られています。私は自分で簡単に試してみましたが、APIと多くの優れたチュートリアルがすべて文書化されていることに感銘を受けました。腕とステージに問題があり、妻の助けを借りなければなりませんでした。彼女はプログラミングについての手がかりはありませんが、Unity3Dは本当にクールだと思いました。ドラッグアンドドロップだけで多くのことができます。エンジンでいくつかのスクリプト言語を使用できます。それはとりわけJavaScriptをサポートします。あなたの背景が魅力的であることを考えると、それはおそらく私は推測します。初心者のゲーム開発者が必要とするすべての機能を備えた無料バージョンを入手できます。

あなたがいる場合、3Dを必要としない、そしてゲーム会社は素晴らしい選択肢です。ゲームに入るのは本当に簡単です。私は大学でそれを使用し、それを使っていくつかのゲームを作りました。とても楽しい。それはあなたが本当にゲームを作ることに集中することを可能にし、あなたはテクノロジーについてそれほど深く考える必要はありません。ポイントアンドクリックだけでゲームをまとめることができます。しかし、進歩してそれがどのように機能するかを理解すると、独自のスクリプトを作成し始めます。

私の意見では、スクリプト言語を持たないGameSaladと言うよりもはるかにうまく機能します。もっと複雑なことを始めるとすぐに、ポイントアンドクリックだけで本当に面倒になります。


0

私はKajに完全に同意します。このテーマに関する詳しい洞察については、gamearchitectを参照してください(ちなみに、ゲーム開発に興味がある場合は、サイト全体、特に古いサイトをお読みください)

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