私の問題は、ゲームのクローン(練習用)、自分のゲーム、またはその他の問題のプログラミングを開始するたびに、興味を失ったために開発の途中で停止することです。
ゲームの開発、または一般的な開発にどのように関心を持ち続けていますか?
私の問題は、ゲームのクローン(練習用)、自分のゲーム、またはその他の問題のプログラミングを開始するたびに、興味を失ったために開発の途中で停止することです。
ゲームの開発、または一般的な開発にどのように関心を持ち続けていますか?
回答:
デザイナーとして、私は人々を統計と変数のコレクションと考える傾向があります。質問をすると、[Pong_Dev_Interest]が減少し、[Spa_Inv_Dev_Interest]が増加することを簡単に想像できます。2つの差が[Dev_Project_Inertia]([Dev_Completion_Desire]にある程度関連する)よりも大きい場合、[Pong_Dev]のアクティビティは停止し、[Spa_Inv_Dev]が開始されます。
英語で:完成品を見たいという生の願望が、現在のプロジェクトへの関心の欠如によって無効にされるため、プロジェクトを完了できません。あなたが本当に 1つを終了したい場合、唯一の解決策は1つを選択することです(私はあなたのポンクローンで行きます)、それを終了します。「自分自身、クローンをさらに洗練させたかもしれないことは知っているが、プロジェクトをドアから追い出すのはいい気分だ」その後、作業を続けます。
退屈したら、働き続けてください。それがうまくいくとき、働き続けてください。がらくたに落ちたら、働き続けましょう!頑張って!できる小さな開発者になろう!あなたを信頼しています!
エヘム。そこに少し過剰になった。しかし、あなたはドリフトを取得します。
私は毎日自分のアドバイスに従っています。環境とアクターを機能させ、勝ち負けの条件を組み込み、プレイヤーが使用するオブジェクトを作成しました。基本的に、いくつかのレベル設計を開始する準備ができており、私の興味は失われました。しかし、私は毎日いくつかを行います。毎日。いつか私は終わります。
そして、それはとてもgooooooodを感じるでしょう。
私はいつも同じ質問を自問しますが、自分のやる気を起こさせるためにできることがいくつかあります(それらの多くはすでにここに投稿されています)。私にとってうまくいくのは、今年のGDCでのインディートークの1つで聞いたことです。モナコのゲームを作っている人だったと思います:-)
最初に、あなたの経験に合ったプロジェクトを見つけてください。つまり、OpenGL / DirectXの基本さえ知らなくてもFPSを作成することは始めません。(ゲームエンジンを使用している場合を除き、それはここでのポイントではありません;-))
それから、自分がすべきことと達成したいマイルストーンのリストを自分で作成してください。TODOは重要な部分です。各タスクを1日または数時間で簡単に実行できるようにタスクを定義します。そのため、コーディング、設計、モデリングなどを始めるとき、すでにトンネルの終わりに光が見えています。1か月間、フィニッシュラインに近づくことなく、大きなゲームエンジンを設計およびコーディングすることほど憂鬱なことはありません。大きなタスクを小さなタスクに分割します。タスクを迅速に完了することは本当にやりがいのあることであり、継続していきます。たとえば、これはかつての小さなスペースシューティングゲームの私のタスクリストでした。
これらのタスクはすべて簡単に実行でき、ゲーム内で作業が完了すると、それらの領域を繰り返して磨くことができます。
そしてちょっと、私は小さなゲームを終えました。それはきれいではありませんが、最終的に本当にやりがいのある基本的に行われました:-)
問題を解決するには、問題を特定する必要があります。なぜ興味を失うのですか?
私にとっては、通常、フレームワークに多くの時間を費やしているために発生し、数週間後、単一のゲームプレイ要素を取得することさえできませんでした。
私のモチベーションを向上させる方法の1つは、反復的なプロトタイピング、または何らかのテスト駆動開発を行うことです。通常、これにはテストケースの自動化が含まれますが、ゲームはグラフィックを多用するため、画面やアニメーションをテストとして自動化することはできませんが、ゲームロジックは自動化できます。
自動化できない部分については、基本的にゲームのマイルストーンをいくつか計画します。マイルストーン1は、おそらく画面上にスプライトをレンダリングし、WASDを機能させるでしょう。徐々に、機能を追加し、リファクタリングします。
それは分割と征服の形式です。小さなチャンクに割り込んで、使いやすいものに取り組んでから、統合します。すすぎ、繰り返します。最終的には、より良いものを再配置する方法を見ることができ、コードをリファクタリングできます。前もってアーキテクチャを用意するのは面倒ですが、通常、プログラミングを始めたとき、数年の経験を積むまでアーキテクチャを視覚化することは困難です。
ゲームを正しく構成する方法がわからない場合は、その要素をゲームに依存しないブロックに抽象化する方法を学習する必要があります。これは、実装から抽象化を分割する経験、継承とインターフェース設計のより良い活用、またはゲームを複数のファイルに入れて見栄えをよくする(または提供する)など、多くの方法で(興味深いことに加えて)あなたを助けるかもしれませんダイナミックリンクライブラリまたは他のインターフェイスの使用による実装の柔軟性。遅かれ早かれ、すべてができることに気付くでしょう。そうすれば、あなたはそのモチベーションの問題なしに自分自身を見つけるでしょう(あなたはそれをやるだけです)。
最初に立ち往生したときに同じ問題を抱えていましたが、最善の解決策は動き続けることです。または、何かが何らかの形でリセットされるまで永遠にストールすることができます(そして時間がかかりすぎるかもしれません)。数日で2行をコーディングするだけでも構いませんが、毎日、少なくともプロジェクトを開いて何かを改善しようとする必要があります(終わりのないタスクですが、それは問題ではありません)。
ある時点でプログラムが機能しない場合は、最後に行った操作を元に戻して(バックアップは日付の名前を持つsvnまたは少なくとも.rarを使用して)、機能した時点までやり直してください。もう一度、または再試行するまで行う必要がある他の変更に取り組みます。
最初はデバッガの助けを借りてエラーを修正しようとする必要がありますが、あなたの言語がデバッガをサポートしているのかどうかはわかりません...ゲームを作成したい場合)、1回の実行で高速にエラーを見つけるのに役立つので、デバッガをより有効に使用する必要があります。
ゲームプログラミングについて読むことも、特に何かに取り組みたくない場合にこのトピックを維持するのに適しています。あなたがオンラインで見つけることができるゲームエンジンとデザインに関するいくつかの良い本と記事があります。
練習しないと何もできなくなります。バグを見つけようとすると、最初は非常にイライラすることがありますが、その方法を知っていれば実際に簡単であることがわかります。これは、変更がプログラム全体に影響を与えないようにコーディングし、エラーを探す場所の量を減らすことで、時間をかけて回避する方法を学ぶものです。困難になるたびにあきらめた場合、ゲームを作ることを考えるたびに、始める前にあきらめます。悪い瞬間を乗り越えることで克服する方法を学びましょう:Pあなたがモチベーションを失うその瞬間を通り抜けなければ、あなたの怠inessが勝ち、あなたは失うでしょう、それがあなたがモチベーションを取り戻す方法を学ぶまでそれがどのように働くかです多くの努力なし。
PS私は疑問に思っていました...あなたはゲームを作るために何を使用していますか?
[anonの回答へのコメントとして残す必要があります。これは投稿時に削除されました。彼は、このすべての機能が動作しており、単一のファイルコードを複数のファイルに分割し、すべてがバラバラになるようにしたと述べました。
再:リファクタリング、プロにとってさえ、何かが起こる可能性があります。Gitのような優れたツールを使用しても、マージが失敗することがあるため、機能Aと機能Bの両方が機能する代わりに機能します。唯一の選択肢は、Aに戻って再試行することです。幸いなことに、バージョン管理によってこのコードが保存されます。実際のバージョン管理を使用しない場合は、少なくともdevフォルダーを定期的に圧縮して手動で実行してください。HDスペースは安価です。結論として、機能するものに戻って小さなステップでリファクタリングし、各ステップでゲームが機能することを確認します。すべてがばらばらになるのを見るためだけにコードをクリーンアップするのは本当に憂鬱です。古いコードに戻すだけです。
やる気を保つには、ゲームエンジンではなくゲームを作っていることを自分に伝え続けてください。そして、それは素晴らしいことです。ゲームエンジンは優れていますが、ゲームの作成を邪魔することが多すぎます。
私のポイントを説明するために、物事がどのくらいの頻度で進行するかを説明します。最初にいくつかのスプライトを作成し、それらをプロトフレームワークで画面上で動かします。進捗を確認でき、順調に進んでいます。友達に見せることができます。
次に、コンセプトを少し試してみると、フレームワーク(またはゲームエンジン)をより柔軟にする必要があることがわかります。または、最新のパターンに従っていないクラスをリファクタリングする必要があります。そしてそこから、あなたは死のスパイラルに乗り出します。あなたはゲームの仕事をやめ、ゲームエンジンの仕事を始めます。そして、ゲームエンジンは作るほど面白くありません。ゲームでは、リファクタリングに何時間も費やすことができます。そして、あなたは興味を失います。
覚えておいてください:ゲームエンジンではなくゲームを作りましょう。必要な場合にのみリファクタリングします。柔軟すぎないでください-最低限必要です。*
*:もちろん、リファクタリングと柔軟性が重要です。しかし、実際にゲームを終了するほど重要ではありません。