エンジンを使用してゲーム開発を開始するのは賢明ですか?[閉まっている]


14

後でXNAでゲームを開発するために、C#プログラミングを開始しました。C#の優れたゲーム開発の本を読みました。私はすでに他の言語を知っていたので、C#の機能と構文コードをすぐに学ぶことができました。次に、XNAにステップオーバーしました。私が読んでいた本は少し古かったので、私はそれを脇に置いて、インターネット上のXNAに関するゲーム開発のチュートリアルを見始めました。2Dグラフィックを使用して、それらのほとんどを達成し、理解することができました。アニメーションスプライトを作成し、キャラクターを任意の方向に移動させ、キャラクターの動きと一緒に背景をスクロールしました。すべてが「生の」XNAで行われました。

それらのいくつかを理解するのは難しいと感じ、いくつかのことはすでにフレームワークに組み込まれていることを発見しました。FlatRedBallAxiomQuick Start Engineなど、少なくとも単純なラインコードを明確に理解できる他のゲームエンジンを見つけました。「OGRE」「Unreal」「Unity」などの有名なものはすでに知っていました。同時に、私はそれをすべて捨てて、有名なゲームエンジンプログラミングを学び始めたいと思いました。習得するのに時間がかかったため、XNAを使い続けたかったのです。時間を無駄にしたくない。

今回は経験者に任せます。ゲーム開発を始めている場合でも、ゲームエンジンを使用して、提供するものを使用できますか?一部の人々は、裸のフレームワークの退屈なルーチンに慣れることが良いと考えることができます。もしそうなら、最初に推奨されるものは何ですか?市場ごとに異なると聞きました。おそらくRPG固有のものが欲しいと考えるかもしれません。


1
私は同じことを心に抱いていました...私は4年ほどXNAを使用しています。私はMMORPGの作成を開始しました。いつものように、小さな計画から始めて、より大きな計画がない限り好きなものを使用し、時間が過ぎる前に何かをしてください。
マイケルコールマン

MMORPGを作成するためにXNAを4年間使用する@Omnionは、使用しているものの問題ではなく、決意、献身、自由時間、および実用的なアプリケーションの問題です。モチベーションと献身を長期にわたって保持している限り、誰でもXNAを使用してMMORPGを完了することができます。時間は空き時間と作業の速度に基づいて変化しますが、プロジェクトの規模や範囲に関係なく、たとえ大きなものが始まったとしても実用的です。重要なのは、エンジニアリングプロセスを整理することです。赤ちゃんのステップは、時間をかけて、一歩ずつ、一貫して、規模に関係なくプロジェクトを完了します。

1
これは、人々が自分のプロジェクトが大きすぎると信じないように、しかしその代わりに、実用性の現実を単に理解するように促すためだけに言及しています。プロジェクトを完了するには夢以上のものが必要だと理解すれば、彼らは「どこでもない」以上のことをするでしょう。私はいつも、人々に夢を実現するよう奨励し、妥協しないようにしたいと考えています。サイズに関係なく実現できるように、実用的にしてください。やがて、何でも可能です。

回答:


11

何を学びたいかによります。「ゲームを作成する」だけの場合は、エンジンを使用すると良いでしょう。個人的にはこれはお勧めしません。

コンピュータグラフィックスがどのように機能するかを本当に理解したい場合は、さらに深く行ってすべてのことを学ぶ必要があります。線形代数(少なくとも行列、ベクトル、線形空間)の更新から、グラフィックパイプラインの動作の理解まで。XNAは、最初から最適なフレームワークです。私の最初のゲームはその中にありました(実際のゲーム、つまり最初の3DアプリはopenGLの戦車でした)。3Dプログラミングを開始したい場合、そのような野心的な計画を立てないでください。RPGを今実行することはできません。キューブでいっぱいの空間を飛行し、赤いものを撃ってゲームを作って、基本を学んでください。おそらくあなたが考えるよりも時間がかかります:)。しかし、それは多くを教えてくれます。

それに行きましょう!3Dグラフィックプログラミングは、生活のためにできる最善のことです。1つのパッケージにまとめられており、楽しく、創造的です。


3
XNAではなくMonoGameをチェックアウトする価値があるかもしれません。MicrosoftはXNAの開発を停止しており、Windows 8 Metro UIのサポートがありません。Redditで私が読んだいくつかの投稿によると、彼らの代表者は実際にMonoGameを推奨しています。その結果、クロスプラットフォーム(Linux、OSX、Android、iOS)が得られます。
デビッドC.ビショップ

17

既存のエンジンを使用しても何も問題はありません。すべてが目標に到達します。

ゲームやゲームデザインの構築に最も関心がある場合は、ゲームプレイコードをすばやく取得するほど効果的です。ここでは、Unityのようなものが優れています。C#の知識を使用して、スクリプトをオブジェクトにアタッチし、何かをすぐに実行できるからです。

ゲームプログラマになりたい場合は、下位レベルで物事を理解する必要があります。XNAのようなフレームワークは良い出発点です。フレームワークに依存して作業を開始し、ゲームの各コンポーネントのビルド方法を学習しながら、フレームワークの一部を独自のコードで置き換え始めることができます。


1
あなたの答えが私のものよりも好きです。あなたのために+1。
ノタベン

6
ゲームプログラマになりたい、エンジンから始めて、自分の好例として使用したものを自分で調べてみると(それを使って楽しんでいると)、見つけた他のリソースと対比するのに特に便利ですエンジンのアーキテクチャ。
michael.bartnett

ただし、エンジンを使用している場合でも、コンピューターグラフィックスの基本はしっかりと理解する必要があります。
ノタベン

1

素人からのアドバイス

//長年の学習でゼロからアマチュアへ


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;

  1. プログラミングしたい場合は、プログラマーになることを学んでください。

  2. engineの使用は避けますが、馬鹿にならないようにして、信じられないほど便利なライブラリを無視してください

  3. ゲームデザイナーになりたい場合は、WYSIWYGエンジンを試して、それらのゲームを送り出してください!

  4. ゲームプログラマになりたい場合は、松葉杖のようなエンジンは避けてください。

  5. MEの場合、より高いレベルのゲームエンジンを使用すると、プログラマーになる能力が損なわれました。代わりに低レベルのライブラリを使用し始めたとき、またはライブラリをまったく使用しなかった瞬間、私は非常に多くのことを学び始めたので、まったくの初心者から、参照、チュートリアル、または本と一緒にビデオゲームを作成できる人にすぐに行きました。ちょうど私のコンパイラと多くのエンジニアリングと実践。

短い時間で低レベルのライブラリから得た学習の量は、高レベルのエンジンで非常に長い時間で得た量よりもはるかに大きかった。**


2
免責事項:これは私の話であり、学習スタイルです。他の人は違うかもしれません。Game DESIGNER(エンジンに依存)ではなくGame PROGRAMMER(低レベルのもの)になろうとしたとき、学習プロセスには世界の違いがありました。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.