回答:
利点:
すべてではありませんが、ほとんどのコーディングが自動的に行われるため、心配する必要があるのはコンテンツ、レベルレイアウトなどだけです。
これらのラインに沿って、メモリ管理、アセットの読み込み、照明(複雑なエンジンの場合)などがすべて設計され、テストされています(うまくいけば)。
以下で説明するように、エンジンがクロスプラットフォームの場合、ゲームを移植するためにほとんど作業を行う必要はありません。
短所:
欠点のリストが長くなるという事実を許可しないでください:必要なすべてのシステムのコーディングとテストに費やす時間が生産サイクルに対して長すぎる場合、またはコードよりも芸術のスキルがある場合、ゲームエンジンを使用するのは間違いなく良いアイデアです。
この質問では、ゲームエンジンの比較が行われています。さまざまな3Dゲームエンジンの長所と短所
私の場合、ゲームエンジンのために何もしなくてはならないことに多くの時間(月)を費やしました。私は現在、それらを疫病のように避けるのが一般的ですが、それらは賢明かつ適度に使用されるべきだと理解しています。
私にとっては、すべての可能性に夢中になりますます!エンジンXの機能の長いリストを見ると、「すごいこれが全部できるんだ!私のゲームは素晴らしいかもしれない!」だから私はそれをダウンロードし、デモを実行し、それらの機能に目を奪われます。その後、IDEで新しいプロジェクトを作成し、どこから始めればよいのかわかりません。私はいくつかのコードを書いて、デモプロジェクトから学び、それをベースにするかもしれませんが、それらは単なるデモでした。
何もないところから始めて何かを作る方法を知りませんでした。私は最初のステップを知りませんでした。エンジンのアイデアが大好きで、感銘を受けて何かを作る意欲がありましたが、実際の開発に関する知識は非常に限られていたので、ビルドパスにエンジンを追加する方法を知っていて、おそらく数行を書いてエンジンを停止してから再びシャットダウンしましたが、それ以上の価値はありませんでした。
私ははるかに赤ちゃんのような人です。むしろ、自分のゲームを1ステップずつ作成し、便利な機能をリファクタリングし、それらの機能をライブラリに集めて、いつかは「エンジン」と考えるかもしれません。だから今のところ、私はエンジンの誇大広告を避け、低レベルのものだけに固執します。
そして、エンジンには場所があります。エンジンを見つけて、「これはまさに私が書くことです!彼らはすでに私のために仕事をしました。車輪を再発明する必要はなく、それをゲームにフックする方法を正確に知っています。すでに開始していること(または少なくとも完全に計画されており、開始する準備ができていること)」とすれば、おそらく適切です。使用方法と、エンジンを使用して有用なものを作成するための独自のコードの記述方法を正確に理解できます。しかし、エンジンを手に入れるのは、台所の流し以外のすべてがあり、巨人の肩の上に立っていると思うなら、あなたは非常に間違っています。目の前に巨大な立ち姿があり、肩まで登る必要があります。
だから、私にとって大きな不利な点は、あなたができることすべてに巻き込まれないことです。どのエンジンを選択しても、潜在的な可能性は膨大です。しかし、実際に可能性を活用する方法がわからない場合、それがあなたのライブをより簡単にしたり、仕事を終わらせたりしない場合、なぜそれを使用しているのですか?
ゲームエンジンの最大の欠点は、学習しなければならないことです。プログラミング全般に慣れていない場合、それはエンジンが箱から出して処理するすべてのことを行うためのコードを書くことを学ぶよりもまだ速いかもしれませんが、経験があれば、座る時間はかかりませんダウンしてコーディングを開始しますが、なじみのないエンジンを回避するためのかなりの時間を事前に費やしてください。
ゲームエンジンは完璧ではなく、頭を読めないため、最大のサポートはサポートです。ある時点で何かにこだわることになります。そう:
ソフトウェア開発の経験が豊富で、最近ゲームをゼロから開発しようとした人として、ここに私の2セントがあります。
これまでの回答は、長所と短所の長いリストを提供してきました。ゲームエンジンを使用しない最も重要な理由を説明します。チャレンジと報酬のために純粋にゲームを書くことを学ぶタスクを引き受けたので、OpenGLとSDLだけでエンジンなしでゼロからそれをすることにしました。ことにしました。その抽象度以上のすべて。私はその決定を後悔していない。私のゲームは、2D Asteroidsの素敵なスクロールバージョンで、基本的ですがスムーズです。私は非常に優れたゲームと競争しようとはしていませんが、ゲームを配布し、人々はそれを楽しんでいます。ゲームをマルチプレイヤーにするのに同じアプローチを取ります。これは大きな課題であり、ライブラリを使用すると簡単になりますが、私の目標は簡単にすることではありません。私の目標は学ぶことであり、私にとってはパートタイムの活動なので、あまり時間がなく、進歩は遅いです。しかし、このアプローチには理由があります。それを「高等学習」と呼びます。
それで、あなた自身の質問に答えてください、あなたはこの学習がもたらすかもしれない利益のためにゲームエンジンが代わりにあなたのためにすることをする方法を学びたいですか?その場合、ゲームエンジンを使用しないでください。