私は3Dゲームの初心者です。私の好みのプラットフォームはAndroidです。「使用するもの:OpenGLまたはUnity3d?」に関する質問を他のフォーラムに投稿しました。彼らは全員Unity3Dを強調し、その組み込みの機能とツールを使用しました。OpenGLを使用する場合は、自分でコーディングする必要があります。しかし、その後、誰かが複雑なゲームのほとんどがカスタムエンジンを必要とすると言います。OpenGLではなくUnity3Dのようなエンジンを使用するのはなぜですか?
私は3Dゲームの初心者です。私の好みのプラットフォームはAndroidです。「使用するもの:OpenGLまたはUnity3d?」に関する質問を他のフォーラムに投稿しました。彼らは全員Unity3Dを強調し、その組み込みの機能とツールを使用しました。OpenGLを使用する場合は、自分でコーディングする必要があります。しかし、その後、誰かが複雑なゲームのほとんどがカスタムエンジンを必要とすると言います。OpenGLではなくUnity3Dのようなエンジンを使用するのはなぜですか?
回答:
あなたはすでにあなた自身でこの質問に答えていると思います。あなたは「私は3Dゲームの初心者です」と言っていました。さらに、「... Unity3Dとそれを使用する機能とツールが組み込まれているため、OpenGLを使用する場合は自分でコーディングする必要があります」と言いました。
基本的にこれは、OpenGLを単独で使用している場合、ゲームエンジンを作成し、その後数年後にゲームを作成することを意味します。ゲームに集中したい場合は、利用可能なリソースを活用して、できるだけその目標に近づけてください。ゲームエンジンの使用は、ゲームの作成に必要なものをすべて書くのではなく、ゲームの作成に努力を集中させる最善の方法です。
この関連の質問を参照してください:ライブラリとエンジンとの違いは何だと、この1 ゲームエンジン対ゲームフレームワークは何が?
初心者は定義上、彼らが何をしているのかわからないからです。
OpenGLには大きな学習曲線があります。確かに、いくつかのglBeginコマンドを発行し、画面にいくつかの三角形を配置することに興奮してから、まだまだ準備ができていない複雑なものを使って奥深くまで進んでください。それは学ぶための素晴らしい方法ではありません。アナロジー(少し誇張されている)は、いくつかの基本的な高校の物理学を学び、ラージハドロンコライダーを担当している可能性があります。それは沈むか泳ぐのではなく、泳ぐか、大きな放射性の穴を地面に残します。
「ゲームを作りたいのですが、何を使うべきですか?」質問は実際にゲームを作りたいですか(そうでなければ、彼らはきっと別の質問をしたでしょうか?)答えは質問に合わせて調整されています。 UBOまたはglUniformの呼び出しが単一のマトリックスを更新するのに適しているかどうかを悩ますことで気を散らすことなく。
これは、一度に1つのステップを踏み、学習プロセスを簡単にし、最後にやりがいのある何かを与えることです。ゲームを作る方法を学ぶしようとしているとどのように適切に成熟し、強力な3DのAPIを使用するために同時にすることは、おそらくあまりにも多くの初心者のためです。これは、Dunning–Kruger効果からマイナスの意味合いを引いたものに似ています。あなたはあなたが知らないことを知らないので、あなたは実際にあなたが何をしようとしているのかについての現実的な絵のような種類を実際に持っていません。
一方、OpenGLを学習することが目的の場合、実際にゲームを作成することは望ましくありません。あなたはOpenGLを学びたいです、そしてゲームを作るという文脈でそれをすることは楽しい学習方法かもしれませんが、ゲームを作ることはそれ自体で終わりではなく、終わりへの手段です(そして確かにOpenGLを学ぶ唯一の方法ではありません)。あなたはおそらくそれを決してリリースしないでしょう、そしてあなたは数年後にほとんど間違いなくそれを振り返り、あなたがしたいくつかの愚かな事に恐ろしく恥ずかしくなるでしょう。
これは、このプロジェクトから何を引き出したいかによって大きく異なります。あなたの主な目標がゲームの設計に集中することであるなら、おそらくビルド済みのエンジンを使うほうがよいでしょう。ゲームのプログラミングのプログラミング部分について学習することが目標の場合(特に、業界での仕事を準備しようとしている場合)、OpenGLでの作業はより価値のある経験になるでしょう。上記のいずれのステートメントも、常に100%真実ではないことに注意してください。
この種のことを決定するとき、実際にはルールはありません。この種の質問で聞いた回答のほとんどは意見であり、ご自身のプロジェクトやスキルセットに完全に関連するものはほとんどありません。
違いは簡単です。ユニティは、場所を取得できる4つの丸い車輪を備えたキャリッジです。OpenGLはおがくずであり、ショップを設置して、改良されたよりモダンなキャリッジとホイールを成形するために使用できる可能性があります。それはあなたがあなたが最初にやる前に人々が何を学ぶかに時間の多くの時間を費やす場合です。
初心者としてのあなたの目標は、最初に既存の馬車とそのデザインを研究することです。すべてをウィンドウの外に放り出し、ゼロから始めることは意味がありません。まず、すでに存在するものを学び、それについて徹底的な知識を得ます。知らない場合、その制限をどのように知りますか。また、制限を知らない場合、どのようにそれらを突破できますか?役に立たず、すでに利用可能なすべての活気のある既存のツールに無知である平凡なものを作ることのポイントは何ですか?
駆け出しのゲーム開発者の手順は次のとおりです。
すでに作られたものを作るために独力で作業することは、誰にとってもあなたにとって価値のある開発者にはなりません。それらを読んで理解してください。古いポケモンの言うように、「あまり効果的ではない...」。
最悪の部分は、この種のアプローチは満足することができず、人間にとって限られたリソースであることが科学的に証明されている生意志力で実行しているため、追いつくのが簡単ではないということです。あなたは毎日の満足を提供する何かをする必要があります、さもなければあなたはおそらくそれを維持することができないでしょう。
要約すると、エンジンで物事を成し遂げることができ、その方法で成功する可能性がはるかに高いため、エンジンが強調されます。優れたゲームクリエイターでさえ、他の誰かの以前の作品に依存しており、それが進歩の本質です。独自のカスタムレゴピースを作成する前に、全体像を理解し、他の人が提供するレゴピースを使用する方法を知る必要があります。
あなたの目標がゲームを作成することであると仮定すると、カスタムエンジンが必要であることについて話した人は間違っていました。どちらかといえば、複雑なゲームには、業界に長い間携わってきた専門家によって設計、実装、最適化、テスト、および保守された成熟したエンジンが必要です。 、それが可能であれば。
大規模なゲーム開発者は社内でエンジンを構築しますが、将来のゲームのためにエンジンを大いに再利用しています。ただし、予算やチームの規模、その他の多くの要因は、独立した開発者とは大きく異なることに留意してください-既存の技術が技術的に不足していなくても、独自のエンジンを構築する方がはるかにビジネス上理にかなっている場合があります。
もちろん、多くの機能が既存のエンジンにはすぐに使用できるわけではないため、そのエンジンにはまったく実装できないという誤解がまだありますが、通常は不正確です。
PortalやAntichamberなど、最も革新的な最新ゲームのいくつかは、既存のエンジンを使用して構築されたことに留意してください。AionやTERAなどのかなり複雑なオンラインゲームは、既存のエンジンを使用して構築されました。Bioshock InfiniteやThiefなど、最も視覚的に美しいゲームのいくつかは、既存のエンジンを使用して構築されました。そして、もちろん、そうではなかった人もいました。しかし、ポイントは、カスタムエンジンを実際に必要とするものは、これまで見たことがないことです。
一方、グラフィックプログラミングの概念を学ぶことが目標であれば、もちろんOpenGLが最適です。しかし、それでも、いくつかの既存のエンジンに精通していると、何をしていて何を目指しているのかを理解するのに非常に役立ちます。
citation needed
の