太陽がまぶしかったから

C'etait a cause du soleil.

でもしかITエンジニアのゲームプログラマーへの憧れとAI

f:id:bulldra:20200105081905g:plain

ゲームプログラマーになりたかった

 迷路をランダム生成して、その最適解を強化学習するプログラムを書いていてゲームプログラマーへの憧れを思い出した。中学生の頃には Visual Basic で簡単なシューティングゲームを作ったりもしてたのだけど、高校生になるとオレオレゲームエンジン製作という沼にハマって、何も完成させられなくなってしまった。

 大学になるとプレイステーション2が出てきて、これを自分で作るのは無理だと分かったし、ドアドアボコスカウォーズのようにアイディアと実装を一人で作りあげるような時代はもうこないと思い込んでしまった所はある。ちょっと後にスマートフォンゲーム時代があったのだけど。

でもしかITエンジニアとゲームプログラミング

 それで、就職する段になってプログラミングも多少は経験があるし、営業や事務には向いてなさそうだし、なによりも求人が多かったから「SEにでもなるか」「SEにしかなれない」という感じで SIerシステムエンジニアに就職したのだけど、そこでは仕様調整や工程管理や受け入れテストばかりをしていて、自分でプログラムを書いた経験が未だに殆んどないままである。

 仕事は仕事なので仕方がないけれど、であるからこそ趣味としてのゲームプログラミングを継続しておけばと今更ながらに思ったりもする。大抵のシステムは情報を集めて集計して判定して出力するのだけど、「判定」のロジックを機械学習で実現できないか。データサイエンティストだとかAIだとか言われているけれど、「それ、パズルゲームのCPU対戦モードで作るやつだ」という程度の話で済んでしまう事も少なくない。

 実際問題としてルールベースの判定ロジックやスコアリングロジックを机上で漏れなくダブりなく矛盾なく考えるのは厳しくなってきているし、職人的なパラメータチューニングの工数と効果改善を証明しづらい状況が動かなくても良い理由を作ってしまう。今更ながらに「ここは機械学習で実現すべき」という選択肢を思いつきの妄想ではなくメリット・デメリットの確信をもって俎上に上げられるようになりたいという需要が自分の中で高まってきている。

自分で作る必要はないが理解はしておきたい

 もちろん、全てを自分で実装したいという話ではなくて、最低限の特性や効果測定やリスクなどを理解しておきたいという意図にはなるのだけど、久々にプログラミングをすると楽しいのも事実。ましてや解くべきゲームの状態を作って、それを動かしていくのにはある種の郷愁まで感じてしまう。

 それにしても無料の統合開発環境オープンソースのライブラリと各種情報が充実していて素晴らしい時代になった。Visual Studio や解説書などに高いお金を払っていたのはなんだったのかと思うし、そもそもしなくても良いタイプの苦労に時間が使われていた。

 今から機械学習エンジニアとしてコミットしていくという話ではないのだけど、Excel を使いこなす程度の選択肢には入れられるようにしたいし、ゲームプログラマーになれなかった自分を成仏させる趣味としてもなかなか良いのではないかとも思っている。