ライブラリ、フレームワーク、エンジン、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サイトから何も信じることをやめました。
このような質問に答えると、要件がわかります。評価は、ツールのリストを見つけ、ツールが提供できるかできないかを(ホームページを読むだけでなく)テストすることです。
要件は石にカットされていませんが、動的です。彼らは開発中に行き来します。たとえば、ゲームに物理演算が必要かどうかは、デザインによって異なります。設計が変更されると、要件も変更される可能性があります。
あなたが持っている要件を取り、始めましょう。変化する要件は、プロジェクトの規模や経験レベルに関係なく、苦しんでいる、ああ、幸せな開発者の日々の糧です。