素人からのアドバイス
//長年の学習でゼロからアマチュアへ
UnityやTorque2D MITのような高レベルのエンジンには絶対に近づかないでしょう。小さなプロトタイプには最適ですが、自分のビデオゲームを開発するために真剣に受け止めることはありません。なんで?単純なSideScrollerまたはArcadeのリメイク以外の何物でもない場合、ポイントは何ですか?
ほとんどのゲームエンジン、ライブラリ、またはフレームワークは、使用することのない機能や機能を備えた膨大なコードを使用して、最も単純なタスクを実行するだけです。
私が何年も前にゲーム開発を始めたとき、私はトップから始めました。非常に高レベルのエンジン。RPG MAKERのように高すぎるものではありませんが、UnityやTorqueのように間違いなく高いものです。それから、XNAとC#に行きました。リソースとチュートリアルが非常に多かったからです。私の主要なプロジェクトにはパフォーマンスが必要でした。あるいは、大規模なプロジェクトではない場合でも、ソフトウェアの信じられないほどのパフォーマンスを求めることに執着しています。XNAはそれを単純にカットしなかったので、私が読んだエンジンには多くの問題があり、修正するには頭痛が必要でした。C ++で独自のエンジンをローリングするのと同じ作業(XNAのバグと問題の修正)を行っているときに、XNA / C#のような「より高いレベル」のものを使用するポイントは何ですか?
しばらく学習した後、私は最終的にゲームエンジンの設計方法について学び、エンジン自体のコードを調べ始めました。ほとんどの専門家が言わなければならないことと、ゲームエンジンの批評家の苦情を読んで、「なぜエンジンを使用するのですか?」
私のC ++をブラッシュアップし、その言語で使用されているいくつかの哲学を実際に理解することは、私を大いに助けてくれました。しかし、私は多くの時間を学び、ゲームを作りたいと思っていました。
だから、私は非常に多くの賞賛、C ++、そして非常に低レベルの何かで終わった:SDL。残念ながら、これは頭痛の種でした。このレベルは非常に低いため、このライブラリを使用する理由さえほとんどありません。私はむしろOpenGLを学び、自分でゼロからやりたいです。正直なところ、イメージをフリップするような基本的なことをするために独自のコードを実装する必要があったという事実(およびスプライトの処理方法が原因で他の実装は機能しませんでした)が、SDLを永久に破棄することになりました。ソフトウェアレンダラーが必要な場合は素晴らしいことですが、IMOでは、ハードウェア(OpenGL)またはそれ以上(SFML)の場合はそれを破棄したいです。
アマゾンで別の本を購入し、さらに別のAPIを学びたくないので、私は高くなりました。SFMLは、インターネット全体で高く評価されていることは言うまでもありません。私はほとんど無数の肯定的なレビューを読みましたが、否定的なものはほとんどありません。SDLについても同じことは言えません。それはすべての極端な基本を処理しますが、残りは私と私が選んだ他のライブラリに任せます。それ以来ずっと私はそれで立ち往生しています。
IMO、ゲームエンジンはばかげています。低レベルのライブラリは、エキスパートプログラマと初心者プログラマの両方にとってはるかに優れた選択肢です。
また、注意してください、私はプログラミングの概念についてより多くを学び、高レベルのWYSIWYGゲームエンジンで学んだことよりも低いレベルで物事を処理することを余儀なくされたとき、ソフトウェア開発スキルを磨きました。
UnityのようなものはXNAを介して何を提供しますか?視覚的な編集と松葉杖。初心者は、C ++がむき出しになっている場合とまったく同じように、ゲーム全体をコーディングする必要があることを最終的に学習します。ビジュアルエディターは、自分で作成できるものに対して非効率的です。
XNAのようなものは、SFMLまたはOpenGLやその他の便利なライブラリの独自の実装に対して何を提供しますか?IMO、絶対に良いことは何もありません。悪いパフォーマンス、C ++の代わりにC#、多数の初心者向けチュートリアルがありますが、プロフェッショナリズムはあまりありません。また、IMOは、C ++で学ぶべきことの松葉杖に過ぎません。私は当初C ++に脅かされ、C#が大好きでした。その主な理由は、私がC ++で最初に苦労した愚か者の意見の噂と噂によるものです。私は、C#を「簡単にする」C ++で抱えていた問題を克服するために、より基本的なことを学び、自分の弱点を鋭くする必要があることに気付きました。C#のいくつかの単純さを見逃したことはありますか?でもない!私は手間をかけずにC ++でそれを行う方法を知っています。
低レベルのライブラリやDirectX / OpenGLを学習するのが怖い場合は、完全なビデオゲームを作成するという複雑さに慣れるまで待ちます。
ゲームエンジンに関する私の哲学は、孤立した状況を除き、エンジンの冗長性と役に立たないことを説明する2つの例に要約できます。
低レベルのライブラリに怖がっている初心者は、Unityのような高レベルのエンジン(グラフィックレンダリング、オーディオの再生、コンテンツのロード、実際の基本的なもの以外)でもゲームを作成するのとほとんど同じであることに気付くと発作になりますゼロから。APIを理解したり、ディスプレイにレンダリングするクラスを開発したりするのではなく、ゲームのエンジニアリングが複雑になります。
特定のエンジンのAPIと要件を自信を持って学習するのにかかる時間はおそらく頭痛の種であり、Unityのような完全なゲームを作成する複雑さに怖がらない専門家はUnityを使用できません。基本を実行するために必要ないくつかのクラスをコーディングするのにかかる時間よりも長い時間。
エンジンは初心者には役に立たないのです。なぜなら、初心者はエンジニアリングスキルが不足しているため、エンジンを使って何も作れないからです。同様に、退役軍人にとってエンジンは役に立たない。なぜなら、彼らはすでにエンジンなしでそれを行うためのエンジニアリングスキルを備えており、ゲームエンジンのAPIの両方を学ぶという頭痛の種を乗り越えるよりも、より効率的で特定の「エンジン」を転がす可能性があるからです機能、およびパフォーマンスの癖。オープンソースではないために触れることができないエンジンで作業するという大きな悪夢は言うまでもありません(または、たとえそうであっても、他のコードを読むことは悪夢である場合があります)。
ヘック、いくつかの「低レベル」「ゲームフレームワーク」でさえ、ウィンドウを作成し、ディスプレイにレンダリングし、オーディオを再生するいくつかのクラスにすぎません。これは、完全なビデオゲームを実際に完了するのにかかる時間の数分の一で、SDL / SFMLやOpenGL / DirectX / OpenALの独自の実装などの他のライブラリを使用して、プロフェッショナルがゼロから自分でできることです。
TLDR;
プログラミングしたい場合は、プログラマーになることを学んでください。
engineの使用は避けますが、馬鹿にならないようにして、信じられないほど便利なライブラリを無視してください。
ゲームデザイナーになりたい場合は、WYSIWYGエンジンを試して、それらのゲームを送り出してください!
ゲームプログラマになりたい場合は、松葉杖のようなエンジンは避けてください。
MEの場合、より高いレベルのゲームエンジンを使用すると、プログラマーになる能力が損なわれました。代わりに低レベルのライブラリを使用し始めたとき、またはライブラリをまったく使用しなかった瞬間、私は非常に多くのことを学び始めたので、まったくの初心者から、参照、チュートリアル、または本と一緒にビデオゲームを作成できる人にすぐに行きました。ちょうど私のコンパイラと多くのエンジニアリングと実践。
短い時間で低レベルのライブラリから得た学習の量は、高レベルのエンジンで非常に長い時間で得た量よりもはるかに大きかった。**