現在のプロジェクトを磨くことは、新しいプロジェクトを始めるよりも良い学習経験になるでしょうか?[閉まっている]


15

私は何年も前にプログラミングを始めました。今、私はゲームを作ろうとしています。ガラガ、テトリス、アルカノイドなどの有名なゲームのクローン作成を開始するための多くの推奨事項を読みました。また、ゲーム全体(メニュー、サウンド、スコアなどを含む)に行くべきだと読みました。

昨日、アルカノイドクローンの最初の完全版を完成させました。しかし、それは終わりにはほど遠い。画面解像度スイッチャー、コントロールキーのリマップ、壊れたレンガから落ちるパワーアップ、巨大なものなどを実装して、私はまだ何ヶ月も作業することができます(暇なときに趣味としてプログラムします)。

しかし、1つのゲームのクローンを作成する方法を永遠に学びたくありません。このアルカノイドクローンの開発中に出会ったデザインアイデアを適用するために、次のクローンに到達する衝動があります(同時に、GoF本とLudum Dare 21ゲームコンテストの多くのソースコードを読んでいます)。

質問は次のとおりです。元のゲームのすべての機能が揃うまで、アルカノイドクローンを改善し続ける必要がありますか?または、次のクローンに移動して(クローンを作成するゲームはほとんど無限にあります)、前のクローンで間違ったことを修正し始めますか?

これは非常に主観的な質問になる可能性があるため、自分のゲームを作成する方法を学ぶための最も効果的な方法(誰かのアイデアを複製するのではない)への回答を控えてください。ありがとうございました!


明確化

実装したものを明確にするために、このリストを作成します。

実装された機能:

  • バウンド機能(壁、レンガ、およびバーでボールがバウンドします)。
  • レンガとバーで跳ねるとき、およびプレーヤーが勝つか負けるときに鳴ります。
  • 基本的なタイトルメニュー(新しいゲームと終了のみ)。ゲーム内メニューと勝ち負けメニューもあります。
  • 3レベルしかありませんが、マップシステムはとても簡単なので、多くを教えてくれるとは思いません(間違っているでしょうか?)。

実装されていない機能:

  • レンガを壊すときのパワーアップ。
  • 複雑なレンガ(複数の「ヒットポイント」と無敵)。
  • より良いグラフィックス(私はあまり得意ではありません)。
  • プログラミングの研磨(より集中的に設計パターンを使用)。

ここにその(最小限の)Webページへのリンクがあります:http : //blog.acamara.es/piperine/ 私はそれを見せることを恥ずかしく思います。

私の質問は、実装されていない機能に関連していました。学習するための最速の(最適な)パスは何だろうと思いました。1)このプロジェクトに実装されていない機能が実装されて大きくなっている、または2)おそらく私にそれらの教訓と新しい教訓を教えてくれる新しいゲームを作成する。


回答

私の場合、もっと磨きをかけてゲームを「出荷」しようとするので、@ ashes999の回答を選択します。他のすべての答えも心に留めておくことが重要だと思うので、同じ質問を持ってここに来た場合は、急いで決定する前にすべての議論を読んでください。

皆さん、ありがとうございました!


申し訳ありませんが、それはしない、客観的問題だと言って作ることが目的。それは、、彼らの能力、目標、動機、プロジェクトを変えるべきかどうかに依存します-それはすべて主観的な質問です。この質問に対する単一の「正しい」答えはありません。
サイクロプス

あなたは正しい、私は「主観的」と思ったが、「客観的」と書いた(それは私にも左と右で起こる…)。私はそれを変えた。
アレハンドロカマラ

聞いてすみません しかし、私はこれを言うのは嫌いですが、それはまだこのサイトにとって本当に良い質問ではありません。StackExchangeサイトの目的は、多くの人々に役立つ質問/回答を作成することであり、1人(または少数)の人々にのみ適用される質問ではありません。また、(理想的には)正しい答えが1つあるはずです-しかし、将来この投稿を見つけた人にとっては、ある人が最も良い答えを見つけ、別の人が矛盾した答えを見つけるかもしれません。
サイクロプス

1
それも良い質問ではないと感じました。しかし、とにかく私が書いた理由は、誰かが同じジレンマに陥っているからかもしれません。「良い」答えがなくても、他の人が「正しい」答えを取るように議論することができます。
アレハンドロカマラ

1
個人的には、学習プロジェクトの範囲にはすべてのゲーム機能を含めるべきだと思います(したがって、パワーアップを実装する必要があります)が、その後プロジェクトを呼び出して先に進みます。グラフィックスを磨く気にしないでください。
11

回答:


32

私はパトリックの答えに完全に反対します。ゲーム開発者として成功したい場合、習得する必要がある最大のスキルは、アイデアを取り入れ、完全で洗練されたゲームを出荷する方法です。

あなたが時間の経過とともに実現することは(数年後に私が実現したことです)、プログラミングはゲームのほんの一部にすぎないということです。楽しいので簡単です。ただし、プログラミングのみに固執すると、不完全な概念実証とデモの痕跡が残ります。

代わりに、Webサイトとブログ(Wordpressはこの種のものに最適です)を作成し、ゲームを終了し(アルカノイドから開始)、それらをリリースすることを強くお勧めします。

また、これを行うと、ゲームがいつ終了するかを制御できることを理解することが重要です10の主要機能を備えた1000レベルが必要な場合は、問題ありません。3つの主要な機能を備えた10レベルが必要な場合は、問題ありません。(実際、より多くのことを学び、その方法を磨くことに多くの焦点を当てているため、小規模なプロジェクトをより頻繁に行うことをお勧めします)。

編集:意見が合わない人に応えて、明確にする必要があると感じています。1つの目的/実験(これは私が常に行っていること)だけのためにゲームを作成した場合、必ず、範囲を切り取って出荷してください。アルカノイドを洗練されたゲームにするには1000レベルが必要だと言う人はいません。あなたの意見では、楽しく、先に進むために十分なレベルを作ります。

ゲームに何年も費やし、出荷することはできません。しかし、技術的なデモやプロトタイプを永遠に作成するという他の穴に陥る方がはるかに簡単だと感じています。これを自分でやめるのに10年以上かかった。


3
+1 "shipping is(required?)feature"この場合、アルカノイドクローンをプロトタイプとして見ることもできます。プロトタイプは、概念が証明または反証されると破棄されることになっています。
オスカーデューブボーン

2
@Oskarでは、1つのゲームを出荷するよりも1000個のプロトタイプを作成する方が簡単です。最終的には、出荷によって成功する一方、プロトタイプによってコーディングスキルが向上します。
ashes999

2
「コーディングスキルを少しだけ高める」を却下するのはなぜですか?彼は特に学習体験について尋ねています。
11:19にジョッキング

パトリックの答えのために@jhocking。私の答えは、コーディングスキルだけにとどまりません。
ashes999

1
@Yannbane人々がそれをプレイし、「はい、それは完全なゲームだ」と思うなら、たとえそれが短いゲームであっても、それは完全です。不完全とは、通常、壊れたゲームまたは1レベルのゲームです。ドアから発送したら、完了です。
ashes999

8

前の2つの答えを統合することをお勧めします。基本的に、アイデアを取り入れ、完全で洗練されたゲームを出荷する方法を学ぶことが非常に重要であることに同意します。インターネットには、誰かが始めてから退屈してしまった半分完成したプロジェクトが散らばっています。プロジェクトを最初から最後まで続ける能力、私が「仕上げ能力」と呼んでいる能力はまれであり、貴重であり、それを実践することを強制することによって得られます。

しかし、あなたはまだ学習のその段階ではありません。最初のゲームでこれを行うことはお勧めしませんが、最初の完全なプロジェクトに取り組む前に、いくつかの小さなゲームを作成して学習することをお勧めします。

(さておき、私はこれをこれまで特定したことは一度もありませんでしたが、今考えているので、経験を積んだ開発者を初心者から切り離すのは仕上げ能力が主なものだと思います)


追加:答えの間の多くの不一致は、彼が自分のプロセスのどこにいるかについての異なる仮定に帰着するだけだと思います。たとえば、彼が「アルカノイドクローンの最初の完全バージョンを完成させた」と言ったとき、それは多くの異なることを意味する可能性がありました。私の場合、彼は以前に「メニュー、サウンド、スコアを含むゲーム全体に行くべきだと読んだことがある」と言ったので、彼は実際にそのようなものを実装し、さらに先へ進むべきかどうか尋ねていると思います。私がノーと言う場合、このプロジェクトを完了と呼び、次のプロジェクトに進みます。

しかし、それは私の側の単なる仮定です。彼が実際に彼はいた言わなかっ行われ、彼はそれを読んだだけであること、そのものを。彼がそのようなことをしていない場合は、あなたがそのようなことをするまで先に進まないでください。


1
+1それに私を打ち負かす!あなたはまだ始まったばかりのように聞こえますので、できるだけ多くのものを作り、学び、学び、学びましょう。良くなるにつれて、磨きに集中できます。そうしないと、最初のゲームに2年を費やすことになります。
NoobsArePeople2

1
同意しない。コーディングに10年費やしても、1つのゲームを出荷することはできません。または、最初の6か月で簡単なアルカノイドクローンを出荷できます。後者は全体的に強力な開発者になり、前者はソフトウェア開発スキルに役立ちます(それほど多くではなく、ツールやライフサイクルなど、コーディングだけについては考えません)。
ashes999

さて、私は今10年と言っていませんでしたか?それでも、最初のプロジェクトとして6か月の完全なプロジェクトを直接行うよりも、6か月の完全なプロジェクトの前に一連の練習問題を1年間コーディングする方が良いかどうかは疑問です。これは私が教えていることの大きな問題です。学生が学期全体を小さなプロジェクトの全体の束またはクラス全体をとる単一の大きなプロジェクトに費やす方が良いでしょうか 個人的には、「学部生向けの小さなプロジェクトがたくさんあり、大学院の単一の大きなプロジェクト」に傾倒しています。
ジョッキング

私のスタンスは、完全なプロジェクトと同じくらい重要であり、そのプロジェクトが成功するためには、まず以前の一連のプロジェクトの基本をすでに学んでいなければならないということです。

1
以前の2つの答えはどれですか?現時点では、これは投票で2位にランクされています
ADB

5

今すぐ次のプロジェクトに移るべきだという正しい考えがあると思います。これは、最初から学んだことがあり、学んだことを応用したいからだと思います!基本の学習が遅くなったら、学習を続けることができるより詳細な機能を複製します。

ゲームデザインではなくプログラミングスキルに取り組んでいることを忘れないでください。したがって、学習が完了したら、ゲームデザインをプログラムできるようになります。


3
私は@ ashes999とあなたに等しく同意しますが、OPの述べられた文脈では、彼は実装を実験し、異なるタイプのゲームを書くことを学んでいると感じています。この場合、私は彼が次のものに進むことを支持すべきだと思います。
エンジニア

実際、彼はゲームプログラミングだけでなく、ゲームデザインを学びたいということを暗示していました。彼は最後の文で、「誰かのアイデアをクローンするのではなく、自分のゲームを作る方法を学ぶ最も効果的な方法」と述べました。
11

2

クローンを「自分のもの」にしてみませんか?あなたが興味を持ち続けるいくつかの新しい興味深いひねりを追加します。

「独自の」プロジェクトを開始する利点があります。これまでに行われたことがないように感じます。現実には、おそらく誰かがすでに似たようなものを持っています。新しいジャンルのゲームを発明する予定がない限り、これらの「クローン」を自分のものにすることをお勧めします。

たとえば、大学の仲間がポンポン「クローン」を作成しました。彼はそれを自分で作り、まったく新しいタイプのゲームプレイを追加しました。このゲームプレイでは、パワーアップにより15秒間甘いタンクを運転し、できるだけ多くのレンガを破壊することができました。

ゲーム開発(アート、コード、デザイン)を学ぶ最良の方法は、それをすることです。最初はうまくいかないかもしれませんが、重要なことは、それを維持し、より多くのコードを記述し、より多くのアニメーションを描画し、より多くのレベルを設計することです!! 私の意見では、自分で作成して、それを続け、面白くして、楽しんでさえいれば、何かを「クローン」しているかどうかは関係ありません。


2

はい、あなたの質問に答えるには、現在のプロジェクトを磨くことは、新しいプロジェクトを開始するよりも良い学習経験になります。

1)物事を仕上げる習慣を身に付ける必要があります。それ自体が学習体験です。

2)「追加するのが面倒」なタスク(より良い用語がないため)には、大量のゲーム開発のレッスンが組み込まれている可能性があります。

3)アルカノイドに飽きている場合は、いつでもそれを脇に置いて、当面の間、他の何かに取り組むことができます。それには何の問題もありません。

1)未完成のものが多すぎるのは悪いことです。未完成の製品を実際に使用して、スキルを効果的に披露することはできません。

これは、未完成の物の配列を持つことは、ゴミ箱でいっぱいのクローゼットを持つことに似ているからです。いくつかは便利に見えますが、実際にはまったく役に立たず、ゲーム業界の現実は、「ジャンク」(未完成のゲーム)に感謝する人はほとんどいません。

未完成のゲームはあまりにも一般的です。人々はそこにそれらを入れて、のようなもの「当たり前、このゲームは今あなたが前後に移動することができます.. STREETFIGHTERことsapposaだった」 印象を。ゲームが「サッポーザ」であったことを誰もあなたの頭で見ることができません。彼らはそれが何であるか、それが未完であるということだけを見る。

未完成のゲームは中途半端なタルトのようなものです。一部の人々はそれを理解できるかもしれませんが、実際には嫌な味がし、オーブンでさらに20分はあなたがすでに半分やっていることを皆に美味しくすることができます。

2)作業を避けている機能には、非常に貴重な教訓が含まれている場合があります。

あなたが仕上げを控えているもの:

実装されていない機能:

  • レンガを壊すときのパワーアップ。
  • 複雑なレンガ(複数の「ヒットポイント」と無敵)。
  • より良いグラフィックス(私はあまり得意ではありません)。
  • プログラミングの研磨(より集中的に設計パターンを使用)。

これらのいくつかは、あなたが除外することができます。たとえば、「設計パターンをより集中的に使用する」。このようなリファクタリングはペットプロジェクトにとって時間の無駄です。これを適用するには、新しいプロジェクトを開始するだけです。

これらのいくつかは簡単です。たとえば、複雑なレンガ。これらのいくつかは、実際には多くの作業です。パワーアップは簡単ではありません。銃、弾丸などの機能を構築する必要があり、光線交差コードを追加する必要があります。

あなたが見ているのは、「足場を所定の位置に置くことはとても簡単でした。そして、それはほぼ完了しているように見えます。仕上げは非常に多くの作業であり、今やまないかもしれません。」うん、家のために木枠を立てるのも「簡単」で、作業の半分かもしれません。乾式壁、電気、配管はすべて「詳細」です。しかし、家を完成させないことによって、誰も家どれだけ素晴らしく「買う」つもりはありません。

3)自分が取り組んでいることにうんざりしているのであれば、他のことを始めても何も問題はありません。

これはあなたが取り組んでいるものをジャンクすることを意味するものではありませんが、他のことを考えたり、新しいゲームを開始したりするのに1、2ヶ月費やすことは害はありません。新鮮な視点でアルカノイドに戻ってくるかもしれません。

最後のポイント。アルカノイドの期待されるすべての機能を構築することに加えて、独自の工夫を加えることはさらに興味深いです。そのため、クローンを短期間停止するのではなく、さらに一歩踏み込んで元のゲームを革新する必要があります。


1

正しい答えは、次に何をしたいかによって異なります。新しい何かに進むと、同じ古い問題をもう一度解決し、スキルを実際に伸ばすことができないことに気付くかもしれませんが、新しい何かに進むことができます。あなたが磨き続けるなら、あなたが与えた短いリストから学ぶべき有用なものがあり、それらは将来あなたを立たせるでしょう、しかしあなたはまだ同じ古いコードベースに取り組んでいます。

私がお勧めするのは、これは純粋に個人的な意見であり、新しいものに移り、そのために磨きをかけることです。同時に、新しい何かで自分自身を伸ばしてみてください。したがって、現在3D APIを使用していない場合は、3D APIを学習して使用してください。一方を使用している場合は、もう一方を学習して使用します。または、使用しているレベルでより高度なレベルに移動します。より良いサウンド、物理学、または入力エンジンを入力してください。いずれにせよ、私が重要だと思うことは、あなたの現在の快適ゾーンの少し外側に移動し、楽しみながら、より多くのスキルと知識を構築することです。

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