独自のゲームエンジンをいつロールする必要がありますか?[閉まっている]


20

私は5年前からソフトウェア開発者であり、iOSゲーム開発に参加したいと考えています。私は約2年間iOS SDKをいじり回し、cocoaheadsミーティングに参加しましたが、objective-c、cocoa、さらにはcおよびc ++を十分に把握していると感じています。

ゲームのアイデアはありますが、Box2Dを使用することは知っていますが、cocos2Dを使用すべきかどうかは疑問です。主な理由は次のとおりです。

  1. 私はcocos2dでは利用できないことを、グラフィックに関して賢明にしたいと思うかもしれません。
  2. 自分のゲームエンジンを転がすと、より制御しやすくなります。

もちろん、既存のゲームエンジンを使用する主な理由は、時間を節約することであり、難しい作業を簡単にします。しかし、技術的なチョップを持っている人にとっては、それは意味がありますか?


7
「C / C ++」と言うと、少なくとも1つ、おそらくは両方について十分に把握していない可能性が高くなります。
-DeadMG

10
この2つを混同する人もいることを理解しています。おそらく、C / C ++ / Objective-Cを繰り返して、iOSプラットフォームでのプログラミングに使用できる主要言語を理解していることを繰り返します。私は、C / C ++が2つを1つとして混同することを自動的に意味すると言う気にはなりませんでした。
ジョーイグリーン

この質問は、通常の「どうやって自分のエンジンを作るのですか?」から歓迎すべき変化をもたらすので気に入っています。質問。+1
レイデイ

1
@DeadMG「C / C ++」と言って、両方をよく理解しています。
シアラン

私はそれがあったと言うだろうでもそれをやった
bobobobo

回答:


38

他の投稿のほとんどは「エンジンではなくゲームを作成する」ですが、作成したい特定のゲームを考えており、他の人のコードから始めることをお勧めします。ベースまたはゼロから開始します。

自分の技術をロールする必要があることを知らない限り、あなたは自分の技術をロールするべきではありません。それは軽快に聞こえるかもしれませんが、それは本当に唯一の正しい答えです。ほとんどの決定と同様に、トレードオフがあります。特定の状況でコスト/利益分析を決定できるのはあなただけです。

次のことを理解しておく必要があります(このリストがすべてを網羅しているわけではありません)。

  • 使用できるミドルウェアはすでに存在します(「エンジン」など)
  • そのミドルウェアがテーブルにもたらすものは、機能的に賢明です。
  • 特にマルチプラットフォームのサポートに関心がある場合は、ミドルウェアの成熟度/証明度
  • 開発のスピードアップに役立つミドルウェアが提供する、または提供しないツールの種類(独自の技術でツールを割引しないでください)
  • ミドルウェアにはどのような制限がありますか(簡単な例として、Unity 3.xはiOSのダイナミックライトからのリアルタイムシャドウを行いませんでした)
  • どのような具体的には、あなたの特定のゲームが特徴持たなければなりません
  • あなたの締め切りは何ですか、そしてミドルウェアがあなたを得るところまで立ち上がるのにどれだけの時間を費やすか、ミドルウェアの費用はいくらですか。
  • ミドルウェアの拡張性(たとえば、UnityでiOSの影の問題を回避するには、blobの影を使用します。または、投影の影を使用することもできます。)

(具体的には、「より多くのコントロール」をそこに配置しなかったことに注意してください。それは、「私が書いていないコードが嫌い」から「見、理解し、この特定の効果を達成するために、物理エンジンのすべての変数を微調整します。」最初の変数は実際には有効な考慮事項ではありませんが、2番目の変数は重要です。)

個人的には、低予算のゲームのために独自の技術を投入することは、努力する価値はほとんどありません。最近の安いエンジンを手に入れる力の量はばかげています。あなたは、数百万ドルのトリプルAエンジンライセンスを決定する時点ではありません。たとえば、Unityが$ 3kで提供するものを打ち負かすことはできません。または、Cocos2dの費用は無料です(無料ではありませんか?)。

現在、他のエンジンでは提供できない、または適切なフレームレートで提供できない技術に主眼を置いているゲームの場合、何ができるかを調査する価値があります。ただし、他のミドルウェアを完全に捨てるわけではありません。独自のレンダラーなどが必要だからといって、物理学、サウンド、UI、その他のミドルウェアを使用できないというわけではありません。


7
同意した。As tldr:質問をする必要がある場合は、既存のエンジンを使用することをお勧めします。
クリススバジオ

大胆なメモは私の経験を要約しています。
エンジニア

1
コミュニティも重要です。XNAのような強力なコミュニティとの何かは、誰かが以前にそれをしたことがあるか、あなたに指針を与えることができるので特定の問題をはるかに簡単に解決します。
ashes999

14

自分のエンジンを転がさないでください。独自のゲームをロールします。エンジンを同時に作成する場合、それはあなたにとって良いことです。そうでない場合は、再利用したい部分を常にリファクタリングして、より「エンジン」のようにすることができます。

人々はしばしば、ゲームの「エンジン」部分を書くのに必要なものを過大評価しています。必要なことだけを行えば、それほど時間はかかりません。難しいのは、書き込みインフラストラクチャにこだわるのではなく、問題を解決するために絶対に必要なものだけを書くことです。

次の場合、既存のエンジンを使用します。

  • 締め切りが厳しい
  • 既知の固定機能セットがあるので、そのためのエンジンを選択できます

3

私はあなたのゲームを書くべきだと思う、そしておそらくあなたは後でエンジンで終わるでしょう。OpenGL以外は何も使用せずに、最初からグラフィックエンジン(これはあなたが話しているように聞こえますが)を書くことは、おそらくあなたの時間を無駄にするだけです。これは比較的よく解決された問題であるため、一般に、他の利用可能なサードパーティソリューションに比べて重要な新機能を大幅に追加することなく、APIの形状を変更するだけです。

Cocos2Dまたは他のグラフィックレイヤーが現在要件を満たしている場合は、それを使用します。開発中に要件が変更された場合、レンダリングバックエンドを比較的簡単に交換できます。エンジンを自分で作成する経験と場所があると本当に信じている場合は、交換するようにゲームを構築するために必要なものが必要ですレンダリングバックエンドは比較的簡単な操作です。

ゲームをビルドし、作成するコードの機能セットを駆動するための特定のニーズを考慮し、再利用性と優れたアーキテクチャを念頭に置いてコードを作成します。このようないくつかのプロジェクトを終了すると、当然「エンジン」になります。フレームワークレベルの機能のクリープで動けなくなることを許可しないため、これらのプロジェクトをより速く終了できます。


彼の目標が学ぶことであるなら、それは時間の無駄ではありません。
シアラン

3

とても簡単です。学習目標と市場投入期間のどちらが主な目標ですか?

ライブラリが解決する概念を実装する経験から学ぶことが主な目的である場合は、ライブラリの使用を避けてください。ゲームを開発するとき(パートタイム)、私の目標は純粋に学習することです。私はそれがどれくらいかかるか気にしません、それが私がゼロからそれをすべてしている理由です!さあ、あなたが決めます。


0

必要があるとわかったら、独自のゲームエンジンをロールする必要があります。

たとえば、Unityに使うお金がないとしましょう。または、代わりに新しいハードウェアに費やすことをお勧めします。または、使用可能な無料のエンジンにパフォーマンスの問題があるか、低レベルでより多くの制御が必要です。

ソフトウェアを書くためにソフトウェアを書くのが好きなら、ゲームエンジンを書くのが好きになるでしょう。初心者のゲームプログラマの一般的な落とし穴は、ある種の永続的なプロジェクトとしてエンジン書くことに追いつくことです。私は正直に、これらすべてのオープンソースゲームエンジンが生まれた方法だと信じています-実際にはしなかったゲームプログラマ

その場合、独自のエンジンを作成します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.