ゲームを作成するためのライブラリ、エンジン、フレームワークを評価するとき、何を考慮すべきですか?


10

ゲームを作ります。利用可能なゲームエンジン、ライブラリ、フレームワークがたくさんあり、どれを使用するかを決めるのに少し問題があります。

私はすでにいくつかのプログラミング言語でかなり上手ですが、まったく知らないものもあります。それが役に立てば、私は新しいプログラミング言語を学ぶことに反対しているわけではありませんが、私の真の目標はゲームを作ることです。

エンジン、ライブラリー、フレームワークを相互に比較するためにどの基準を使用すれば、ゲームを完成させるのに最も生産的になることができるかを決定できますか?


11
それだけの価値があるので、私は2段階のアプローチを使用します。(1)任意に1つを選択します。(2)後で決定を後悔する。利点は、最初のステップをすばやく通過できることです。
Cameron Fredman、2013

2
これはコミュニティWikiの質問ではありませんか?
マートン2013

これがコミュニティWikiの質問になってうれしいですが、それを行うためのオプションはありません。最近の質問では、CWはモデレーターのみのことだと思います。
Trevor Powell

@MartonなぜCWにすべきだと思いますか?
MichaelHouse

1
@ Byte56誰かがゲーム開発を始めたいとき、この質問は常に出てくるので。すでに多くのフレームワーク/エンジンが出回っていますが、そのような一般的な「考慮すべきこと」のWikiエントリーは本当に役に立ちます。このサイトに出てくるであろう多くの「どのエンジンを使うべきか」という質問に答えると思う。後者の言い回しは、実際にはそのような質問を「建設的ではない」ものにします。
マートン2013

回答:


14

車やコンピュータを選ぶようなものです。または、さまざまな機能を備えたほとんどすべてのもの。その中には、非常に気にかけているもの、気にしていないもの、含ませたくないものもあります。

  1. 興味のある機能のリストを作成します。つまり、2D / 3Dのサポート、照明、物理、よく知っている言語などを使用します。
  2. 現在のプロジェクトに基づいて、自分にとっての重要性に基づいてランク付けします。
  3. オプションを調査し、各オプションについて、プロジェクトの目標との整合性に基づいてサポート機能のランク付けを試みます。
  4. あなたの目標に最も合うものを使用してください。または、上位のいくつかを選択して、試乗することもできます。ゲームの簡単な機能を実装し、どれがより気に入っているかを確認します。

これの多くは結局、あなたが何を望んでいるかを実際に知ることになると思います。つまり、あなたが作っているゲームについてかなり良い考えを持つ必要があるということです。これはおそらく、ゲームを実装する方法と、何を含めるかについてかなり詳細な計画が必要になることを意味します。おまけとして、そのすべての詳細情報があると、実際にゲームを完了するのに役立ちます。ゲームのアイデアを思いついてコードを書き始めるよりも、計画に従ってリストからチェックする方がはるかに簡単です。


3

最初に、ゲームがどうなるか、そして何が必要かを大まかに把握する必要があります。あなたのゲームが物理学を必要とするかどうかのような通常の質問があります。次に、相互に関連する質問があります。それらは主に、ゲームが開発されて実行される環境と、ゲームの商用性と非商用性に関するものです。

  • どのプラットフォームをサポートしますか?どのプラットフォームでゲームを開発していますか?
  • ゲームを実装する予定のプログラミング言語は何ですか?
    • これは、サポートする予定のプラットフォームの影響を受けます。
  • ゲームにはどのようなグラフィックス、オーディオ、入力がありますか?
  • あなたのゲームはフリーウェアまたはオープンソースですか、それとも商用ですか?
    • オープンソースの場合、ゲームで、または最初のゲームのエンジンを使用する別のゲームで、後で商用化しますか?

Windows専用になる場合は、DirectXおよびC#ベースのライブラリが有力な候補です。マルチプラットフォームになりたい場合は、OpenGLとC / C ++に基づくライブラリ、またはゲームが2Dであり、Adobeのツールを利用できる場合はFlashを確認する必要があります。プラットフォームと同様に、プログラミング言語は利用可能なライブラリに影響を与えます。C ++で書かれたプログラムは、Javaライブラリーを呼び出すのに苦労します。

ゲームが商用の場合は、Unityなどのエンジンの購入を検討できます。ゲームがフリーウェアまたはオープンソースである場合は、オープンソースでもあるライブラリ、または少なくとも非営利プロジェクトでは無料のライブラリに焦点を当てることをお勧めします。もちろん、オープンソースライブラリは商用プロジェクトにも役立ちます。オープンソースライブラリを見るときは、ライセンスを確認してください。一部のライセンスでは、ライブラリの使用方法に応じて、独自のソフトウェアの一部をオープンソースにする必要があります。自分をオープンソースライブラリに制限すると、明らかに、使用できるライブラリに別の制限が課されます。

ライブラリを見るときは、その開発とコミュニティがどれほど活発であるかを確認してください。私は、1999年以来更新されていない、誰かの大学のWebページでホストされているライブラリよりもよく知られ、積極的に維持されているライブラリを信頼しています。

最後の質問の1つは、特にこれが最初のゲームプロジェクトではない場合、自分のゲームプロジェクトを自分で試そうとする場合に苦労することがわかっていることゲームに必要な側面があるかどうかです。特にこれらの側面はライブラリを見つけるための候補であるためです。ゲームで衝突検出が必要で、自分で衝突検出を実装できないことがわかっている場合(私はできない)、物理エンジンを選択して、その中の衝突検出機能を活用することを検討してください。


1
  • ライブラリはあなたが必要とすることをしますか?
  • あなたが必要なことをするのは専門ですか?どれくらいのクラッタがそれに付いていますか?
  • どのように設計されていますか?見えたら吐きたいですか?はいの場合、それはおそらくあなたの健康と健全性の両方にとって最良の選択ではありません。
  • それはあなたのニーズに十分柔軟ですか?すでにコードの半分を記述した後、ライブラリが機能しないことに気付くのは良くありません。
  • ライブラリは将来どのように証明されますか?開発者は時間をかけて機能を追加していますか?彼は物事を修正していますか?彼は物事を改善していますか?ゲームの開発に数年かかる可能性が高い場合、これは大きな違いを生む可能性があります。1か月で終了する小さなプロジェクトではそれほど重要ではありません。
  • サイズは適切ですか?小さなプロジェクトの場合、プレーヤーが20MBまたは200MBをダウンロードする必要があるかどうかに大きな違いを生む可能性があります。大きなプロジェクトはおそらくミドルウェアのサイズがほとんど変わらないほど大きいでしょう。

1

人々がコメントしたゲーム固有の機能に加えて、いくつかの一般的な質問も考慮する必要があります。

  1. サポート構造-ゲームエンジンが完璧であっても、サポートが高すぎるか、存在しない可能性があります。
  2. 学習するのはどれほど簡単か-学習するのに時間がかかりすぎるかもしれないので、何か大きなものは欲しくないかもしれません。
  3. それはあなたの将来の計画をカバーしますか?あなたは次のプロジェクトのためにゼロから真新しいエンジンを再学習するためだけに、今のところ完璧なエンジンの学習に時間を費やしたくないかもしれません。または多分あなたはそれが欲しいです。
  4. ライセンス-クローズドソースのゲームを作成している場合は、エンジンのライセンスでオープンソースになっていないことを確認してください。

0

ライブラリ、フレームワーク、エンジン、SDKを評価し、最適なものを選択するための短いチートシート

  • ライブラリ、フレームワーク、エンジンSDKなどは、問題を解決したり、問題を解決して特定の要件を満たすのに役立つツールです。
  • 評価とは、どれが最も要件を満たしているかを把握することです。

したがって、評価を開始する前に、どのシナリオであるか、およびどの要件が必要であるかを明確にする必要があります。これは、評価で回答する必要がある質問だからです。

シナリオは、要件がどこから来るのか(だれが要件で何がそうでないかをだれが決めるか)を定義します。


一般的なシナリオは次のとおりです。

最もホビーなプロジェクトシナリオ

自分で、または友達と一緒に(おそらく最初に)ゲームを作成したいと考えています。完璧です。すべてを自分で決めることができ、基本的な技術的要件と技術的要件(モバイルゲーム、PCゲーム、コンソールゲーム、Webゲームなど)に限定されます。好きなように決めることができます。

暗黙の要件は、何か特定のもの(言語、特定のフレームワーク/エンジン)を学びたいということです。

学生のシナリオ

要件は先生から来るかもしれません。私がその場合に持っていた典型的な要件:ゲームにはいくつかの物理要素とマルチプレイヤーネットワークサポートが必要です。または、C ++で作成する必要があります。そのため、評価が簡単になります。あなたはC ++でコーディングすることができ、すでにネットワークと物理エンジンを含んでいるゲームエンジンを探しています。

より悪質な(現実の)要件:すべてを最初から作成する必要があります(ただし、ライブラリの使用は許可されています)。したがって、エディターは許可されません(例:Unity3D)。つまり、エンジン/ SDKではなくライブラリを探しています。

インディーゲームのシナリオ

あなたは後でゲームでお金を稼ぎたいです。そのため、どういうわけかそれを販売する必要があります。これにより、ゲームを販売したいストアからの必要条件を確認できます。

Javaゲーム、HTML5ゲームなどは許可されますか?)

特定のライブラリを含める必要がありますか(含まれている場合は、それらのライブラリを利用できる言語はどれですか)

Google PlaystoreではゲームをAndroidゲームとして作成する必要があり、Apple AppStoreではゲームをiOSアプリとして作成する必要があります。または、マルチプラットフォームエンジンを選択する必要があります。

プロのシナリオ

あなたは要件を提供するストアを持っているだけでなく、おそらく要件の独自の想像力を持っている出版社または顧客を持っています。このシナリオでは、雇用された開発者のより大きなチームもいます。スキルセットに応じて、新しい要件が発生します(プログラマーはc ++しか記述できないため、新しいことを学ぶために(多くの)時間を必要とすることなく、純粋なJava / Androidゲームエンジンを使用することはできません)。

このシナリオについては詳しく説明しませんが、従業員のチームを構築して顧客/パブリッシャーを見つけたら、物事を評価する上で何を求めているのかをすでに知っています。


私が最も趣味がいい、またはインディであり、他の誰も私に言わないとき、私の要件が何であるかをどのように決定しますか?

あなたの目標とあなたのゲームについてあなた自身に質問してください?

  • 私のゲームはどうあるべきですか?モバイル、PC、Web(html / Js)、使用するコントローラー(タッチスクリーン、ジャイロスコープ、ゲームパッド)

  • 私のゲームの新機能と他のゲームにもあるもの 他のゲームにもあるこれらの部分(レンダリング、オーディオ、入力処理)は、見つけられるほとんどの(ゲームエンジン)ツールによって行われるか、独自のゲームまたはゲームエンジンにその機能を持つライブラリをバンドルするのは簡単です。

  • 私のプロジェクトの次元は何ですか:怒っている鳥またはスカイリム?Angry Birdsはほぼすべてのツールで実行でき、Skyrimは(想定される)年の追加のカスタマイズ(高性能地形エンジンは容易ではない)を伴う高性能ツールに限定されます。

  • 私の唯一の目標はゲームを終わらせることだけですか?はい?Unity、Unrealなどの高度な機能を使用できます。便利なエディターと大規模なコミュニティーがあり、チュートリアルを提供して質問に答えることができます。メッシュの読み込み、独自の数学関数の実装など、低レベルのタスクを処理する負担を取り除きます。

  • 私の目標は何か特定のものを学ぶことですか?はい?何を学びたいですか?

  • どの言語を選ぶべきですか?目標がゲームを完成させることだけである場合は、あなたまたはあなたのチームが最もよく知っているものを選んでください。特定の言語を学びたい場合は、その言語のツールを選択します。

  • ツールXはゲームに十分なパフォーマンスを発揮しますか?多分、あなたは決して知りません。大規模な生産であっても、最適化と研磨のフェーズには長い時間がかかり、それを成し遂げるために多大な努力が必要です。パフォーマンスの問題にぶつかったときは、パフォーマンスを気にかけましょう。制限に達しない限り、ツールの動作はわかりません。ツール開発者のWebサイトにあるものはすべて、大まかな推測です。何年にもわたってツールを評価した後、私は開発者のWebサイトから何も信じることをやめました。


このような質問に答えると、要件がわかります。評価は、ツールのリストを見つけ、ツールが提供できるかできないかを(ホームページを読むだけでなく)テストすることです。


要件は石にカットされていませんが、動的です。彼らは開発中に行き来します。たとえば、ゲームに物理演算が必要かどうかは、デザインによって異なります。設計が変更されると、要件も変更される可能性があります。

あなたが持っている要件を取り、始めましょう。変化する要件は、プロジェクトの規模や経験レベルに関係なく、苦しんでいる、ああ、幸せな開発者の日々の糧です。


0

ここに行ってください

そこにゲームエンジンのにもかかわらず、実際にはそれほど多くの選択肢ありません

  1. ライセンス制限。一部のエンジンは、最初に大きなライセンス料を支払うことなく製品をリリースする能力を妨げます。たとえば、Unityは、たとえば、iOSへのコンパイルに追加料金を請求するために使用されます(これは2016年に変更されました
  2. プラットフォーム。複数のプラットフォームをターゲットにすることに関心がありますか?どれ?
  3. 2Dまたは3D?一部のエンジンは2Dに対応しています。
  4. 物理学が必要ですか?一部のエンジンは物理を提供します
  5. FPS、RTS?作成しているゲームの種類に特化したエンジンを使用するのが賢明かもしれません。
  6. もちろん、あなたはあなたの好きな言語で働きたいです。Cは嫌いですか?次に、Allegroを使用しないでください。
  7. あなたは巨大なデザインパターン、OOPファンですか?よく知られているOGREの「使い過ぎ」パターン
  8. 活発な開発?最先端の機能(DX11 / OGL 4)の可用性と、数年前に開発が先細りになったエンジンの安定性との間のトレードオフを考慮する必要があります
  9. ユーザーベース?大規模なユーザーベースは通常、より良いフォーラムを意味するので、質問に答えるのは簡単です
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.