現在、趣味で横シューティングゲームを作っています。
これはVibe codingという手法……もといノリで作っていますので、今日はその辺の話をします。
Vibe codingとは
Vive codingとは、バイブス(音楽用語 : ノリ、雰囲気という意味)とAIに身を任せ、AIに全部コードを書いてもらうコーディング方法です。何か修正してもらっても差分は読まず「すべて承認」し、エラーメッセージが出たらそのエラーメッセージをコピペして直してもらいます。バグがなくならない場合は、回避できるまでランダムに変更を依頼するのです。
いうなれば音楽の即興演奏のように、自然言語によるAIとの即興コーディングスタイルです。
……いや、冗談とかではなくて。
発端となった投稿は以下です。
There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It's possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper…
— Andrej Karpathy (@karpathy) 2025年2月2日
妄想したことを伝えるとそれ通り動くものができる世の中になった
以下を見てください。妄想の絵です。妄想を走り書きしているので汚いのはご勘弁をw

↓実際にできたもの(3番目の動画)
https://x.com/mty_mno/status/1919610487249256651/video/3



最近のAIのコーディング能力はすさまじく、思ったことを伝えると大体想像したものができてきます。(私はo4-mini-highを使っています)
今朝は、会社に行く前にガンダムに出てくるビット(敵を追尾して攻撃するドローン(厳密には違うけど怒らないで))を作りたいと思い、以下のように頼んだ結果、37秒で妄想が具現化しました。ちなみにコードは読んでいません。


このコードを私が自分で実装するとしたら、出社前のちょっとした時間にはできません。少なくとも土日に腰を据えてようやく出来上がるといったところです。
これがコードを知らない人だったら、実現方法の調査からはじまりかなりの時間を費やすことでしょう。
しかし今はやりたいことをAIに伝えるだけで、コードを読まなくても(知らなくても)、妄想したものを具現化できる世の中になってきたわけです。
もちろん仕事上のコードでは非常に危険ですが、日曜大工よろしく、趣味としてのモノづくりをするには最高です。
プログラミング初心者ほど趣味のVibe codingをしてみるといい
このブログを読む人はテスターの方が多いと思います。
「プログラミングは知らないんだけど……ちょっと触ってみたい気もする」という人が結構いらっしゃるかと思っています。
そういった人ほど、ちょっと暇な時間に作りたいものを想像して、AIと即興のプログラミングをしてみるとよいです。
ゲームのような大掛かりのものではなく、javascriptなど準備がほとんどいらないもので(これもAIに聞けばpythonのセットアップでもなんでも丁寧に教えてくれます)試してみるとよいです。
今まではプログラムをはじめるまでの心理的障壁が高かったと思います。
思いのほか、非常に簡単に始められます。
それこそ「ちょっとやってみようかな」レベルでできてしまいます。
youtubeの視聴時間集計のextentionを作ってみたい?
作れます。
気になっていたテストコードというものを書いてみたい?
書けます。
dockerとやらを試してみたい?
いけます!
妄想したものが実際にモノになって動くと「おおお~!」と興奮すること間違いなしです!
ソフトウェア関係の「やってみたかったこと」へのハードルが大幅に下がりました。
まずは細かなお作法は置いておいて、バイブスに身を任せて色々と書きながら遊んでみるとよいです。
そうしているうちに、プログラミングへの心理的な障壁も減っていきます。
日曜大工ならぬ、日曜プログラミングという趣味になるかもしれませんw
以下はおまけ。思い浮かぶままに。
バグの直し方
最近は触っていて「そんなバグ作るなよ~」というものはほとんど見なくなりました。
けどやっぱり試しているとバグを見つけます。例えば先ほどの例ですと、実は一回でできたわけではなかったです。オブジェクトの向きやビームの向きが違いました。
どうやって修正するかというと、コードも読んでませんのでAIに全部頼みます。


他にもエラーコードが表示されるときがあります。
そのときもエラーコードを張り付けて修正を頼みます。
それでもうまく直せないバグは一からやり直す
うまく直せないバグも現れます。
私の場合、主人公を狙う敵弾が主人公からずれてしまうという問題があり、AIに質問をしまくりましたが直りませんでした。
仕方がないのでコードを読んで問題点を見つけて修正しました。
こんな苦労をするなら自分で描いたほうが早い……とmixi2でつぶやいたりしましたが、他の人から聞くには
「AIにイチからまた書かせた方が早い」
との意見をもらいました。
これはその通りで、そもそもAIの出力にはそんなに時間がかかりません。
なので「今まで描いたコードを消すのがもったいない」もありません(そもそも正しく動かないんだし)
なので今までのことを整理して、最初から「こういう仕様です」と伝えて作り直す方が問題個所を見つけるよりも早そうです。
即興で作っているのでテストコードが書きにくい
そもそも趣味で遊んでいるコードなのでそれはそうです。
それに、もし「作ったコードからテストコードを書く」になってしまうとマッチポンプになります。
なので、テストコードを書く場合は妄想したもののふるまいを書いたテストコードを先に書いて、そこからそれが通るプロダクトコードを書くことになりそうです。
ただ、テストコードも必要なコードを書くならバイブス言ってないでしっかりとしたプロセスで開発を進めるのが良いです。
Vibe codingはさておき、AIでコードを書く全般についてTDDの相性がよさそうだとは考えています。
慣れているつもりでも「え、そんな書き方があったの」が出てきて学べる
シューティングゲームの場合、画面外に弾が出た場合は削除します。
難しいことはなく、画面の座標を超えたらオブジェクトを削除すればいいです。
ロジックも簡単なので調べることなく自分なら書いてしまいます。
ですがAIに頼んだら
「カメラの外に出たら自動的に呼ばれるメソッド」
なるものが存在していて1行で完了!
そんな便利なものがあることをそもそも知りませんでした。
AIに書いてもらったことによってその存在を知ったわけです。
こういう場面が何度もありました。
というより自分で書くより処理がいいじゃん……となりました><
レビューやテストの重要性が増す
最後にバイブスに身を任せるVibe codingから少し離れて、AIによるコーディング全般に目を向けます。
AIによって動く成果物が提出されるわけです。
つまり最初の要求や要件定義と、それと対になる「検証」「妥当性確認」が人間側の役割になります。
こうなってくると、AIが作ったものをいかに効率よく検証するか、どのように妥当であるか確認するかの技術がより求められてきます。
我々テスターの今やっている仕事がメインになる可能性があります。
