何度か書いているが、現在僕は3Dアクションゲームを開発中だ。
敵へ攻撃をヒットさせた時に、敵がのけぞる処理を作ろうと思った。
他人の動画で申し訳ないが、こんな感じの処理である。
投稿にも書いてあるが、攻撃した位置に応じてのけぞり角度が変わる。それでいて、計算によってリアルタイムで角度を変えているため、決め打ちのモーションを用意する必要がない。
少ない手間で大きな成果が得られる表現だ。これを試さない手はない。
さて、この処理を実装するには、高校数学の知識が必要になる。
攻撃者の座標と敵(攻撃対象)の座標を比較して角度を算出し、その角度に応じて腰の角度の変化量を決める必要がある。
具体的に言うと、ベクトル・サイン・コサイン・アークタンジェントの知識を使う。
しかし、僕は高校数学など全くわからない。
となれば、AIの出番だ。
Windows11にも搭載されたCopilotを使い、質問を投げかけた。
さっそく、それっぽいコードを提示してくれる。
予想通りではあるが、コピペしても期待した動作をしない。
あれやこれやと指示を出すが、途中から堂々巡りになってしまった。
アークタンジェントを使えばいいところまでは割り出してくれたが、そこから先をいくら指摘しても同じようなコードばかりで、バグが取れない。
仕方がないので、専門学生時代の記憶を頼りにGoogle検索を繰り返した。
そして、どこの誰かも分からない昔のブログ記事がヒットした(プログラマーあるあるだ)。
そのコードを修正し、パラメータを微調整したところ、やっと動いた。
ふう……。
これにて完成だが、どうしてこれで動くのか、原理を全く理解していない。
このままでは同じミスを繰り返すので、Joplin(私用に特化したEvernoteのような使い方ができるMarkdownエディタ)にコードを保存し、Copilotにも完成したコードを共有し、お礼を言って終了した。
……。
AIがプログラマーの仕事を奪うかどうかと言われると、まあ奪う一面もあると思う。
具体的に言うと、誰が書いても同じような処理になる数学的な処理や、スクリプトと呼ばれる末端のコードなどである。
正直、これらのコードはクリエイティビティと何ら関係なく、AIが瞬時に済ませてくれるならそれに越したことはない。
その分野をAIが奪ったところで、別に僕はなんの脅威も感じない。
では仮に、簡単なプロンプト1つで完璧なゲームが仕上がるようになったら、どうだろう。
これもやはり、大した問題ではないように思う。
ゲームのプログラムはかなり複雑かつニッチな需要に応える必要があるので、そもそもAIをワンクッション挟んだだけで仕上がるものではないと思うが、仮に可能だとしても大して危惧はしていない。
というのも、そこまでゲーム開発が簡略化していたら、その行為に価値がなくなるからだ。
誰でもできる行為に価値は生まれない。
ツクールが浸透するまでは、ドラクエのモック版を自作するのは大変ハードルが高かった。
しかし今では、ツクールのデフォルト素材だけを使ってノンコーディングなゲームを作っても、よほどコンセプトが奇をてらっていない限りは見向きもされない。
今ツクールを使って注目されたいなら、魔改造を繰り返して自分専用のコードを大量にこしらえ、グラフィック諸々にもこだわる必要があり、それですら絶対に評価される保証はない。
簡単になった分だけ、それは当たり前となり、そこから先の差別化が必要になる。
スマホの普及で食いっぱぐれた写真家もいるが、誰でも写真が撮れるからこそ、素人が何も工夫せず撮った写真は注目されず、バズる写真のノウハウが生まれたり構図にこだわるプロの仕事が生きてくる。
ゲームも同じことだ。
そしてこれは長年の命題なのだが、複雑かつ多岐に渡るニーズに最も柔軟に応える手段は、コーディングが最適だ。
今まで数多くのゲームエンジンが生み出されてきたが、ノンコーディングで全てのニーズに完璧に応えられるものなど1つもない。
アンリアルエンジンでさえ、2Dは苦手分野だし、3DでもUnityに劣るジャンルはある。
適材適所、各々のエンジンの強みを生かした上で、もっと深いニーズにはコーディングで応じる。
それが、0と1の羅列で動くコンピュータに対し、最も的確かつ効率的に命令を下せる手段だからである。
この原理が覆されない限り、プログラマが完全にお役御免になる日は来ない。
すでにコードを予測変換するGitHub Copilotが出ている以上、フルスクラッチでプログラマが全て組む時代は終わるかもしれない。
今回のように、AIに頼りながらがスタンダードになるし、そうなれば知識の格差は縮まるだろう。
しかし、そのコードが本当に正しいのか。そして、例えば「攻撃対象がのけぞるにはベクトルから角度を割り出して腰の角度を変える」といった知識はどうやって導き出すのか。
それは、ある程度の原理を知っていて、自分で組める人でないと務まらない。
これは、希望的観測ではない。
本来僕はかなりの怠け者なので、正直AIが本当に仕事を奪ってくれるならさっさと奪ってくれと言いたいぐらいだ。
好き好んで働いているわけではない。
が、どうやらそうもいかないようだ。
プログラミングに20年近く触れているからだろうか。
明確な根拠ではないが、先程の考察も踏まえると、僕にはそう思えて仕方がない。