計画通り進まなくても落ち込まなくて良いのです【趣味のゲーム開発】
- 2020.11.11
- ゲーム開発
趣味でのゲーム開発にフォーカスして、計画通りに進まなくても自分を責めないようにすべき、という考え方に触れています。スケジュールの見積もりってかなり難しいので、ざっくり見積もって、やってみて、次のゲームを作る時の見積もりに生かす、くらいの楽な気持ちでいいと思います。
あなたのゲームをいち早く完成させるための研究所
趣味でのゲーム開発にフォーカスして、計画通りに進まなくても自分を責めないようにすべき、という考え方に触れています。スケジュールの見積もりってかなり難しいので、ざっくり見積もって、やってみて、次のゲームを作る時の見積もりに生かす、くらいの楽な気持ちでいいと思います。
「ちょっとだけやる」というのは作業を始める心理的なハードルを下げるために有効です。作業を始めること自体がやる気スイッチなので、ほんのちょっとだけ始めてみるのはとても大事。これに加えて別の観点でも作業へのメリットを考えてみます。
大きな問題を大きなまま解決したくなる……というのは痛いほど気持ちが分かります。一気に解決しちゃいたいですもんね。でもここで一手間加えて問題を細かく分割することで、格段に問題解決がしやすくなるんです。
「全力でやらなかったからこの出来でも仕方がない」と言い訳してしまうと成長を妨げてしまいます。全力をぶつけて出来ないことを見つめるのは辛い作業ですが、成長してしまえばできることが増えていってその辛さも少なくなっていきます。
実現したらゲームが良くなる機能であっても、作業自体がめんどくさいなーと思うことはあります。めんどくさいと感じることはあまり大っぴらに言うことではありませんが、多くの人が感じているんじゃないかと思います。そのめんどくささは実は成長のチャンスかもしれません。
長く触れているもの、何度も触れているものに愛着を持ってしまうのは人間のサガ。特に自分が心血を注いで作っている作品についてはどうしても愛着を持ってしまいます。自分の作品を好きになるのは大事なことですが、同時に困ったことも起こり得ます。
「このゲームを遊んだユーザーさんがどんな点で楽しむのか」といった観点から、あなたのゲームを一言で表してみましょう。自分でそれを実現できているかの指標にもなります。
Dictionaryの中身についてforeachを使おうとして「あれ? 型の指定どうするの?」と詰まった個人的な経験から、Dictionaryについてまとめてみました。キーと値のペアであるKeyValuePairというまんまなクラスがあるのでこれを使うべし。
UnityでC#を使い始めて一番最初にぶつかった壁がジェネリックだった記憶があります。きちんと理解すると心強い味方になりますし、プログラミングの負担が減るのでぜひマスターしたい機能です。特にジェネリックリストは一度使い始めると手放せなくなりますからね。
個人的にはListを使うことが多いのですが、Listと配列の違いを意識してどちらを使うのか決めるのが大切です。ポイントは「要素数を後から変えるか」「パフォーマンスを重視するか」ですね。複数の値をまとめて扱いたいケースは多いので、是非ともマスターしたいところ。
C#で使っている型名のintやfloatは実は本名じゃなくてエイリアス(別名)なんです。これを知っていること自体は「ふーん」で終わるのですが、C#が使っているフレームワークである.NET Frameworkにも目を向けてみることでより情報を得やすくなるかもしれません。
横文字が並んでいてアレですが、アイディアを出すためのブレインストーミングはたとえひとりでもやっておいて損はありません。たくさんのアイディアがあるからこそ、いいアイディアを厳選することができますからね。
C#でコードを書いた結果、重い処理になっているなーと気になったらProfiler(プロファイラー)を使ってみましょう。CPUの処理時間だったり、メモリの使用量だったりをグラフ化して表示してくれます。パフォーマンス調整もしやすくなるのでぜひ。
ブラックボックステストやホワイトボックステストについて紹介しています。ユーザーが楽しくゲームを遊べるように、ゲームのシステム部分についてはテストを重ねて安定した動作になるようにしたいところ。テスト手法について知ることは、テストの質を上げてゲームの安定性を向上させることにもつながります。
IDEやコードエディタに搭載されているデバッガーの機能を使ってステップ実行していくことでゲームのシステムの中身が把握しやすくなります。この記事ではブレークポイントを設定してその時点での変数の中身を確認する方法を紹介しています。
適切にログを出力するようにしておくと開発者の助けになります。動いているゲームの中身は、そのままの形だと人間が把握するのは至難の技。そこで人間にも分かりやすいログの形で処理内容を出力することで、システムの中で何が起きているのかを知ることができます。
フローチャートは処理の流れを図として分かりやすく表現したもので、これに沿ってコーディングを行うことで作業を進めやすくなります。コーディングは設計段階が大切なので、フローチャートを使って処理の流れを整理しておくことでスムーズにコーディングを行うことができます。
リリース日を宣言するのって、かなり勇気がいるんですよね。「もし間に合わなかったら……」と不安になりますし。でもこの不安を逆手にとって自分を行動させることで、ゲームの完成までいち早く近づくことができるんです。
Boltでは処理の流れを作っていくフローと、状態を管理するステートがあります。キャラクターやゲームの進行フェーズに合わせてステートを切り替えていくと管理しやすいので、Boltを使うならステートを扱えるようにすると便利です。
「やってみたいけど、どうしようかなー」と悩んで行動までに時間がかかるのはよくあることなので気に病むこともないと思います。ただ、その悩みを抱えたまま生活するのは中々辛いものがあるので、やってみるか、それとも自分には合わないから辞めるのか、挑戦してから自分の体験をもとに決めると悩みを減らせるかもしれません。