18歳を振り返ってみる
hnaです。2022年12月19日に19歳を迎えたので、19歳を始める前に18歳を振り返ってみようと思います。またこの記事は『17歳を振り返ってみた』の続編です。毎年やろうと思います。たまに振り返ると楽しいので結構おすすめです。
【12月下旬~5月初旬】
この時期は、ゴルフゲームに続く新作のモバイルゲームを制作していました。このゲームは、ヤキトリ屋を経営してお金を稼ぎ、そのお金で新たなメニューを開発するというサイクルを楽しむゲームでした。ゲーム画面はこんな感じです。
また、このゲームはストーリーが凝っていて…。
というよく分からない壮絶なストーリーでした。
ストーリー作成は初めての経験で、構想を得るのに1か月要しました。また、ストーリーを考えるにあたって紛争や差別について調べまくりました。ストーリーがある程度定まった後は、セリフの書き起こしに入るのですが、この作業が全然に性に合っていなくて上手く書けずに、1か月の時間を要すことになりました。RPGツクール製のゲームでは長ったらしいセリフシーンをよく見かけますが、違和感なく複数人の会話を書けているのは本当に凄いと思いました。
また、お客さんは30人用意し、1人1人マウスで描いていました。
ここまでやったのですが、最終的にこのゲームは制作中止になりました。制作を止めてしまった理由は、単純に制作のやる気が失せたからです。
このゲームは要素を余りに詰め込みすぎました。実は上で書いた他にも、犯罪者との格闘や飲食店コンテストなど計画していた要素が沢山あります。他にも台詞を書いたり絵を描いたりなど、自分の性に合っていない作業をやりすぎたのも原因の1つですが、最大の要因は時間をかけすぎたことだと思っています。総合して約1年間も時間をかけてしまいました。
この失敗は、本当に悔やんでも悔やみきれないです。17~18歳という大事な時期を1年もこのゲームに費やしてしまいました。正直、思い出したくもないくらい嫌です…。なんで1年も時間を費やさないと、完成は無理だと気付けなかったんでしょうか?過去の成功体験から、自分には継続する力があると過信していました。
・1つの制作に完成までの時間をかけすぎない。
・要素を増やしすぎない。
全ての個人ゲーム制作者は、上の2つは遵守すべきだと思います。成功体験があったとしても、それができる保障はどこにもないです。結局、疲れたので4月は何もせず、5月初旬にようやく開発を止めることを決意できました.(苦しかった)
【5月中旬~7月中旬】
5月中旬には、「新しい事をやってみたい!」という欲望はすでに限界を迎えていたので、学校の図書館に行きました。そこでたまたま見つけた「プログラミング言語を作る」という技術書に目を惹かれ、学習を始めました。この本では実践的にC言語でインタプリタとコンパイラ形式の言語処理系を作成するという内容です。比較的古い本ですが、めちゃめちゃ面白かったので興味があれば読んでみてください。
この本を読んで、ある程度理解が深まったところで、この言語処理系を用いて何を開発するかを考えるようになりました。最初は、インタプリタに疑似的な感情を持たせて、インタプリタの機嫌を損ねないようにコーディング&実行する遊びを思いつきました。例えば、再帰処理は負担が大きいのでやりすぎると怒るみたいな…。で、怒ったら何にも実行してくれなくなるみたいな…。まあ、これはあんまり面白くなさそうなのでやめました。
そして次に考えたのが、トークン(if, =, +など最小構成要素)を物理オブジェクトとしてステージに配置し、それらを拾い集めてコーディングするゲームでした。つまりはこれがInterplayerです。(steamで販売してます)
最初はビリヤード形式で考えていました。玉にナンバーではなくトークンを書いて、記述したいトークンから先に落とし記述を完成させるというゲームシステムです。ですが、元々のパズル要素に加えて操作技術も要求されるようであれば、本当にクリアできる人は限られると思ってやめました。怖いのは、自分にとってはビリヤード形式でも全然出来ると思っていたので、これが難しいということに中々気付けなかったことです。Minecraftアスレやダークソウル、ホロウナイト、セレステなどで鍛えられた自分の忍耐力と操作技術は、時にこういう副作用をもたらすみたいです。ものづくりでは基本的に使用者のことを考えるのが重要ですが、自分は「相手の立場になって考えること」が苦手であると、制作を通じて理解しています。これは本当に自分の大きな欠点だと思っています。
話をもとに戻すと、ビリヤード形式から現在の形式へと構想を変えました。それで、まずはゲーム内で記述する言語とその言語処理系を作成しないといけなかったので、先述の本を読んだあと自作言語の開発に着手しました。実はこの作業は本当に楽しかったです。なぜだか、1からロジックを作っている感覚がたまらなく楽しくて、1か月くらいは言語の事しか考えていませんでした。6月初旬から7月中旬まで作成していて、完成したときは特に嬉しくて、満面の笑みでサイクリングしていたところを学校の先生に目撃されたこともありました。ほんと楽しかったー!
【7月中旬~8月下旬】
自作言語の作成を一旦終えて、次にUnity側の作業にかかりました。まず最初に、想定していたコーディングシステムのプロトタイプを作成しました。トークンを取得したときに、適切なスペースや改行を挿入したり、()括弧なら閉じ括弧”)”を自動で挿入したりなどしてトークンを選択するだけでコーディングができるようなシステムです。
また、この時文法的な記述ミスがあればAssemblyError(トークンの組み立てエラー)として即座にプレイヤーに通知する機構も作りました。
プロトタイプの作成が終わり、次はステージ作成の土台になるシステムの作成に入りました。ここでは、色々なUI設計とその実装、ステージ読み込み、またステージを簡単に実装できるエディタ拡張など、まあその他必要なもの全部です。UI設計は苦手なのでそこそこ時間を要しました。授業中ノートにUIを落書きしていた記憶もあります。事細かに書くと長くなるので、簡単に以降の作業を簡単に示すとこんな感じです。
土台のシステム実装
↓
ステージ作成(26ステージ)
↓
リファレンス実装
↓
会話システム実装
↓
チュートリアル実装
リファレンスとは、ゲーム内で記述する言語の仕様をプレイヤーが理解するための、ゲーム内で参照できるリファレンスのことです。これを書いていた時期はちょうどインターンシップの時期と重なっていて、仕事終わりの夜の空き時間に1日2、3ページずつ書いていました。普通に大変でした。仕事終わりに勉強しているサラリーマンマジで凄いと思いました。
夜の少しの空き時間にも制作をしていたのは、締め切りが迫っていたからです。実は7月あたりからU-22プログラミング・コンテストに出ようかと考えていて、その締め切りが8/31だった(インターンシップが8月中旬)のでかなり急いでいました。インターンシップが終わった時は期限までの猶予が1週間程度だったので、そこで猛スピードで制作して8/30に一区切りつき提出できました。
今までマイペースに開発していましたが、期限を設けることによってモチベーションと焦りが生まれ、とても効率的に作業できました。個人的に、これはコンテストに応募する1つのメリットかなと思います。自分で適当に設定した期限は、別に全然余裕で破れるので…(マイペース)
【9月】
終わったー!5月中旬から始まった一連の出来事がようやく終わって最高な気分でした。終わった後の1週間は、友達と男2人でスイーツバイキングに行ったり、1万円くらいのゲームを購入して遊んだりして夏休みの終わりを楽しみました。
夏休み明けも基本的にダラダラしていました。というかダラダラして良い権利はあると思ってダラダラしていました。自分を咎められる人間はこの世に1人も居ないはずなので…。まあそれとは別に、心の健康状態を回復させるという意味でダラダラは必要でした。ダラダラ…。
【10月初旬~11月中旬】
10月初旬だったかに、コンテストの事前審査の通過が通知されました。事前審査という名称ですが、いきなり328作品から32作品に絞られます。クレイジーすぎる。事前審査は概要だけ見て審査するみたいで、作品にインパクトがないと普通に落とされそうです。審査の段階をもう1つくらい増やしてもいいのではと思わなくもないですが、内部事情は知らないので適当なことは言えないです。
購入したゲームもクリアしてダラダラも飽きてきた頃に審査通過が通知されたので、ここらで制作を再開しました。主にUIが不親切だったのでそれを改善しました。
ちなみに高専の学祭が10/22と10/23にあって、学科展の班長も務めていました。開催の3週間前くらいから放課後に2、3年生と集まってみんなでUnityを触っていました。後輩たちを先導した経験は今までなかったので、不慣れな感じが伝わってしまっていそうです。申し訳ない。ちなみに後輩たちにコンテストに出たら?とか適当な事を言って、見事に2年生の1人をインスパイアすることができました。(彼に元々ポテンシャルがあったのもそう)来年Unity杯に出るそうなので、楽しみですね。
10月中旬の学科展の作業中にコンテストの1次審査通過の通知が来ました。今度は32作品→16作品に絞られました。正直不安だったので嬉しかったです。東京に行くことになったので、コンテスト事務局の方とのやり取りだったりスライド作ったりして大変でした。各方面にもご迷惑をおかけしたので申し訳ないです。
特にクラスの担任の先生にご迷惑をおかけしまくりました。苫小牧高専さんは本来推進すべき技術的なコンテストの出席にも関わらず特別欠席を認めてくれないそうで、そこで色々ごちゃごちゃしました。そのうえ、担任の先生にはプレゼンの練習にも付き合って頂いたので本当に感謝しています。
【11月下旬】
コンテスト出席のため、飛行機に乗って東京へ行きました。前日は秋葉原を探索してネコカフェに行ってみたり、久々に親戚と会って食事会をするなどしていました。めっちゃ楽しかったのでコンテストに対する緊張感も忘れて、当日はあんまり緊張していませんでした。
それからあーだこーだして最高賞の経済産業大臣賞を頂きました。結構本気で取ろうと思ってたので、取れて良かったです。ただめちゃめちゃ嬉しいという感情は無く、自分の作品よりも別の観点で優れている作品は多数あったので、たまたま自分の作品がコンテストの基準にハマったかなという印象でした。他の入賞作品が強すぎた。ですが、この結果に満足しなくて良かったと思っています。これが自分の限界!って思えた時こそに満足したいので…。そんな未来が来るかも分かりませんが、流石に今の自分はまだ未熟も未熟すぎるのでもっと成長した時に満足したいです。
ぶっちゃけコンテスト終了後の交流会が一番楽しかったです。ずっとお会いしたいと思っていた審査員の方々や、その他の受賞者さんなどと沢山お話しできて嬉しかったです。あの空間は何時間でも居たかったと思えます。今年からオンサイトの開催を再開したみたいなので、凄く幸運でした。
翌日の月曜の朝に飛行機で北海道へ帰り、学校には午後の授業から参加しました。(キツすぎ)
【12月初旬~現在】
コンテストが終わって1週間くらいはずっとゲームしていました。学校のレポートも滞納していたのでダラダラする期間は1週間に留めたのですが、1週間後も全然疲れが抜けなくてダメダメでした。やっぱり休むときはしっかり休んだ方がいいです。(レポートやテストがそれを許さないけど)
12月中旬に全く勉強できていないTOEICを始めて受けて見事に惨敗しつつ、ようやく自分を縛る予定が無くなり晴れて自由の身になりました。5月中旬から制作やコンテストで常に何かに追われていたので…。
そして自由の身になると同時に19歳の誕生日を迎えました。誕生日ケーキは母親が用意してくれて、ロウソクもちゃんと19本立っています。嬉しくて、幸せを感じました。
そして冬休みに入り、現在に至ります。
【まとめ】
ここまで振り返ってみると、忙しくも楽しい18歳だったと思います。来年は編入試験なので、コンテストに応募したり育英プログラムに参加したりは出来ないと思います。マイペースに開発や勉強するのも好きだし、それはずっとしてきたことなのでそれでも良いかなと思います。余裕があれば実績も作りたいですね。今は機会学習に興味があるので、とにかく技術書を読み進めます。
以上です。