スクラッチから開始-ホイールを再発明するのは間違いですか?


31

通常、ゲームを始めたいときはいつでも、レンダリングのための優れた基本アーキテクチャと、ゼロからのより良いゲームループがあると思います。私は通常、既存のエンジンを使用したくない。その背後にある理由は、物事を学ぶために自分で実装したいからです。

しかし、多くのブログや開発者は、車輪を再発明するのは良い選択肢ではないと言っています。

何か不足していますか?


実際に「ゲームを開始する」頻度は?アイデアを急速に繰り返している場合は、何でもできます。ミスステップに費用がかかる、または時間が限られているマグナム作品を作っているのに、なぜ車輪を再発明するのに時間を浪費するのですか?あなたが物事がどのように機能するかを学ぶことに興味があるなら、あなた自身の技術を書いてみませんか?ここでの目標は何ですか?
ChrisE

回答:


16

いいえ、それは悪いことではありません。優れたプログラマーになるには、学習と学習能力が絶対に不可欠です。

しかし
、ゼロから何かを構築する重要なことは、完了するまで、それを終了することです。それがどれほどハックで最適化されていないかは関係ありません。それを完了すると、他に類を見ない満足感が得られます。それはすべてあなたに貴重な経験を与え、あなたはいつでもコードをよりエレガントにしたり、後で何か機能的なものを手に入れたときにパフォーマンスを向上させることができます。結局のところ、素晴らしいプログラマーと平凡なプログラマーを区別するのは、経験と実践だけです。

もちろん、何かを完了し、さらにゲームを作成したいときは、古いコードベースを再利用する必要はありません。

ゲーム開発、またはあらゆる種類の開発のキャリアを始めたいと考えている場合、経験はあなたを非常に遠くまで連れて行ってくれます。ただし、ゲームをすばやく簡単に解き放つ場合(独自のものを作成するのに比べて比較的簡単)、既存のエンジンを使用してください。

正直に言うと、独自のコードを使用した経験と、さまざまなライブラリやエンジンを使用した経験を組み合わせることで、はるかに優れたコーダーになります。


助けてくれてありがとう、Ray!ゲームメカニクスもリストアップしてください
...-Ayyappa

問題ない。あなたの元の質問の文脈であなたが何を意味するのか完全にはわかりません。特に何を望んでいますか?
レイ・デイ

この記事の別の質問は、コンテキストを少し関連させていないので削除(編集)されました。
アヤッパ

フィニッシュイットラインの+1- 実際にプロジェクトを完了するのは良い経験です。
サイクロプス

36
i want to implement it on my own to learn stuff.

それがおそらく最も重要なことです。学習することが目標の場合、独自のレンダリングエンジンとゲームループエンジンをゼロから作成することは問題なく、完全に優れた学習体験です。完成したゲームを迅速かつ簡単に作成することが目的の場合は、既存のフレームワークを使用します。


3
+1。APIまたはサードパーティライブラリ実装の詳細をすべて抽象化できるからといって、それらを知る必要がないというわけではありません。「既製のホイール」を使用すると、完成したコードをより速く書くことができます。しかし、あなた自身の車を作ることは...スポークが飛び出る開始したときのものが最適化およびデバッグ、それらをする最高の、そして最も重要な方法である既成あなたが識別するのに役立ちます
sebf

4
+1車輪の作り方を学んでいない限り、車輪を再発明しないでください。
zzzzBov

4
これにより、ゲームエンジンの設計のスキルは向上しますが、ゲームの設計のスキルは向上しません。
デイブO.

これも価値のある答えです...ありがとう...しかし、私は2つの答えをマークできないのは悪いです:(
Ayyappa

10

車輪を再発明すると、車輪の仕組みがわかります。


5

あなたが望んでいるものに依存します。学習したい場合は、好きなだけホイールを作り直してください。私は、独自のJVMまたはPNGローダーを作成している人を知っています。

ほとんどのブログは、おそらくあなたがすぐに支払いを受けるものに到達する方法についてアドバイスをしますが、それが良い長期戦略であるかどうかはわかりません。自分が何で遊んでいるのかわからない場合、それが良い選択であるかどうかをどのように知っていますか?問題にぶつかったとき、フォーラムで泣き言を言ったとき、または自分で解決できたらどうしますか?


4

一般的なプログラミングコミュニティでは、このフレーズには多くの落胆がありますが、多くの人がホイールを再発明し、ホイールを少し良く、速く、よりクールにする方法を見つけること以外に何も愛していないことを知っていると思います。

人々は車輪の再発明を必要とする新しい技術が常に出てきています。OpenCLおよびその他のGPUコンピューティング言語が良い例です。

今年の新しい機能を備えたフレームワークを使用することもできますが、実際に研究を行い、すでにあるものを改善する場合は、自分で作成することができます..パフォーマンスとユーティリティのいくつかの新しい領域を実際に活用できます。

いくつかの車輪を発明して転がれば、強力なボーナスとしてあなたのものをかなりよく知っています!

さらに、それは非常に楽しいです。


1

そして、車輪を再発明したからこそ生産性が高いと主張する人たちがいます。

ポイントのケース:Eskilスティーンバーグ、愛の世界の創造者(彼は彼のゲーム、彼のエンジンと語る優れたビデオ素晴らしいツール、および彼の哲学:http://vimeo.com/18423305


1

それが初めての場合、それが学習のためだけであっても、エンジンがあなたに提供できるものを学ぶので、何らかの種類のエンジンを使用することはなお良いです。

比phorで使用する「ホイール」は概念であり、実装ではありません。車輪を再発明しなくても、購入するか自分で作るかを選択する必要があります。したがって、独自のエンジンを作成することは、車輪を再発明することでもありません。学習、低コスト、小型、または特定の使用法や要件のために、何らかの目的で独自の車輪を作成したいだけです。


0

問題は、ゲームを行うときに多くの時間を要するのは、実際のコンテンツとアセットの作成とテストであり、一般的にコードを書くことではないということです。そのため、その部分をスキップして既存のエンジンを使用して、コンテンツ、ゲームデザイン、およびより高いレベルのバグにより多くの時間を費やすことができます。

ゼロから学習して学習することで、既存のエンジンの背後にある作業の雰囲気が良くなり、必要に応じて後で選択する能力が向上すると思います。

楽しさと学習のために、好きなことをしてください。コンテンツパイプラインクラスをゼロから作成し、ファイルシステムとアセットローダーのすべての迷惑な詳細とエッジケースを処理しなければならなかった場合、私は非常識になります-それを行う方法を本当に十分に把握している限り、誰かが既に上手くやっていれば、それを避ける傾向があります(本当ですが、多くのフレームワークとエンジンは、何かを書き換える原因となる「良い」という私自身の考えに合わないでしょう)。方法がわからない場合は、レイデイがすでに述べたように、それが何であれより細かい詳細を把握するために、少なくとも一度は完了するまでそれを行うのが本当に好きです。


0

学ぶ時間がないなら、それは間違いです。時間があるなら、それを手に入れてください。そうしない場合、それをしないでください。

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