2025年8月10日日曜日

将棋ゲームをバイブコーディングで本気で作ってみた話

 

最近、ちょっと本気で将棋ゲームをバイブコーディング(対話型でAIにコードを書かせるやつ)で作ってみたんですよ。
結論から言うと、「結構難しいけど、やろうと思えば最低限は作れる」という感じでした。

調べてみると、バイブコーディングで将棋を作った人は意外といるみたいなんですが…正直、中途半端なものが多いんですよね。というのも、将棋ってルールが複雑すぎて、プロンプト1発で完璧に作れることはほぼ無いんです。動くことは動くけど、細かいルールや挙動に不具合があったり、AIが勝手に勘違いしていたり。
で、その「手直し作業」がなかなかの地獄。

さらに言えば、ちゃんと盤面や駒まで再現している人は探しても見つかりませんでした。おそらく多くの人はそこまで手間をかけたくないんでしょうね。「とりあえず動いたし、まあいいか」で終わるパターンが多そうです。
でも自分はそこにこだわりたかった。本格的な雰囲気を出したかったんです。なので、AIで盤面や駒のグラフィックまで頑張って作りました。これがまた面倒で…。

一番苦労したのは、駒の適切な表示。
王なら王の画像、歩なら歩の画像…というように、それぞれがちゃんと表示されないと話にならない。でもこのルールをAIに理解させるのが本当に一苦労。
さらに駒の動きや盤面の位置も微妙にズレるので、数ピクセル単位での調整が必要。地味に時間を食いました。

ルール自体はAIが自動でそこそこ作ってくれたんですが、問題は「弱すぎる」こと。そこで、強い思考ルーチンを作るためにClaudeにも何度も質問して、プロンプトを改善。その結果をAIゲームビルダーに持っていって組み込み…という作業を延々繰り返しました。

難易度を上げると今度は思考時間が長くなってしまうので、シングルコアからマルチコアに対応させてスピードアップ。
それでも難しいモードではCPUの性能によっては結構待たされます。今回は最大5手先まで読むように設計しました。もっと先まで読ませることも可能ですが、何分も待たされるのはゲームとして成立しないので断念。

ちなみに自分は将棋初心者なんですが、この開発を通じてだいぶ勉強になりました。テストプレイを繰り返しているうちに、ちょっと腕も上がった気がします。
ただし初心者にしては結構難しい設定になってます。それでも全体的にはかなり親切設計。例えば、打てる場所がすぐ分かったり、相手が動かした駒が色付きで表示されたり。こういうところは初心者に優しいかなと自負しています。

将棋ゲームをバイブコーディングで本気で作ってみた話

  最近、ちょっと本気で将棋ゲームをバイブコーディング(対話型でAIにコードを書かせるやつ)で作ってみたんですよ。 結論から言うと、「結構難しいけど、やろうと思えば最低限は作れる」という感じでした。 調べてみると、バイブコーディングで将棋を作った人は意外といるみたいなんですが…...