洗練された技術は魔法と区別がつかない。
だったかな。
そういう意味でプログラミングというのは現状のハードウェアをフルスペックに使いこなすにはまだ洗練されていない古い技術に寄ったものだと思うんだ。
コーディングしてコンパイルして実行すると一定の手続きでコンピュータが動く。
俺はそれを基礎だと思っていたので、プログラマーとして会社を渡り歩き、納品してお金をもらう代償として自分で組んだシステムをお客さんのものとしてきた。それに対する喪失感で時々夜も眠れないときが今尚あるんだ。
だけど、下位モジュールやコンパイラにドライバにOS、ハードウェアやインフラに携わる人もいるし電気だって使ってる。そう考えると、目に見えない多くの人の支えの上に立つ偶像のようなプログラマーなのかもなと思い直す。
今持っているものだけでも満足している時は良いのだが、ふと過去の開発環境でソフトをチューンナップしていた感覚が懐かしくて思い出すんだ。それがそういう悩みだと分かると「解決できるわよ、ほんの少しお金を出す必要はあるわ」と謎の女性の声がして、夜中に新しいノートパソコンにIDEをインストールして将棋ベーシック改を動かしてみたんだ。動くようになったしマシンが速いので手を返す時間も短い。ぐっと安心感が増した。
そしてUnityのことを考え始めた。学校出たての俺はカネがなかった。通っている間には実習室のマシンにソフトが色々と充実していたので、俺はそれにブーストされていたが、サラピンのOSだけが入ったマシンでは出来ることなど大してなかった。それが3年勤めた会社のマシンは自分の分身のように自分が組んだシステムと一体で愛着があった。
ゲームエンジンUnityはそのシステムを上回る巨大なシステムだが、まだ俺はそれに慣れておらず、思い通りには操れない。プログラミングしてコンパイルして実行するというプログラマ的な発想ではGUIで配置したオブジェクトにコードを書き足す時にいったいどういう仕組でそのコードが実行されるかが分からず何を書いたら良いか分からなかったりもする。
しかし考えてみればアセンブラで資格をとってVC++のプログラマになった時に最初はスケルトンを作ってみたが、実務を重ねる上で重要だったのは根っこから作ることではなく道具としての使い方を覚えることだったように思い出すんだ。
プログラマとして成長するには便利なIDEやAPIに頼ることなくローレベルなモジュールから理解を積み立てることという論理の人もいるが、絵を書くのに既成のペイントツールを使うのは普通のことだし、素人くさいと思われるかもだがウインドウズのアプリを作るのにVBを使ってヘルプを見ながら作るのはプログラミングを下位モジュールからOSレベルまで積み立てる勉強量よりはるかに少ない労力で成し遂げられる。
ゲーム開発もスペックで頭を打つとローレベルでの最適化や作り込みで差をつける開発手法が重要になるけど、一方でスペックを余して全世代的なゲームを作るだけならツールでいくらでも省力化出来る。
その延長で、プログラムを組まずにツールで出来ることの範囲が未来に於いてさらに拡張されるなら、そのエンジンを操っているだけでマシンの計算資源をイメージとリンクして操るのに必要な知識は現状のプログラミングによる下位モジュールからの積立の発想とは全然違う落とし所で実現するのではないかと思えてきた。
もしそうなったら、過去に組んだシステムを手放した喪失感以上の穴埋めを新しいシステムの扱いに慣れるだけで取り戻せるんじゃないかという楽観視が出来る。
またシステムと合体できる未来を見据えてシステムを考え直したい。