Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
くそゲーをLLMにやらせてみた
Search
wancoimo
October 12, 2025
0
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
くそゲーをLLMにやらせてみた
wancoimo
October 12, 2025
More Decks by wancoimo
See All by wancoimo
小型ローカルAIで日本語の音声会話botを作った話
route250
0
2
Java嫌いのぼやき
route250
0
0
サーバールームのトラブル〜雪が降るサーバルームの怪〜
route250
0
0
LLMの精度ってどうなの?
route250
0
3
Browser UseをWeb化してみた
route250
0
2
ネット記事からツイートを生成する話
route250
0
1
Featured
See All Featured
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
180
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1k
WENDY [Excerpt]
tessaabrams
11
38k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
280
Believing is Seeing
oripsolob
1
170
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
410
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
45k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
Transcript
くそゲーをLLMにやらせてみた 1
codexでゲームを作って見た 簡単なゲームならすぐに出来る それが面白いかは別の話 2
インベーダ なつかしの'70年代 結構簡単にできた。 3
オンラインテニス いわゆる伝統的なテニスゲーム 対戦型にしてみた codexに、「websocketで対戦型にして」 4
海戦型SLG 中学生の頃、教室で遊んだゲーム 当時は、ノートと鉛筆とサイコロで運用した ちょっと頑張った。結果、つまらんクソゲー 人に勧めるわけにもいかず・・・ LLMにやらせてみるか 5
ヘックスマップを理解できる? ヘックスマップはSLGでよく使われる 6方向への接続 ユニットの移動がマス目(4方向)より自然 map: [ [ 0,0,0,0,0,0 ], [
0,0,1,0,0,0 ], [ 0,0,0,1,0,0 ], [ 0,0,0,0,0,0 ] ] 6
ヘックスマップベンチマーク (x,y)は、海ですか? 陸ですか? (x,y)の周囲の座標を答えて下さい。 (x,y)の周囲に海のセルは何個?陸のセルは何個? 7
8
9
10
対戦させてみる もともとは対戦型 ユーザA <-http-> ゲームコア <-http-> ユーザB 対戦相手がいないので、CPUロジック化 ユーザA <-http->
ゲームコア <-func-> 対戦ロジック ベンチマーク用 LLM-A <-func-> ゲームコア <-func-> LLM-B 11
対戦させてみた 空母と艦載機をつかったターン制の戦術シミュレーション マップは 30x30のヘックスマップ。海と陸で構成 艦載機を飛ばして、敵空母を攻撃する 艦載機の航続距離、索敵範囲が大きな制約 他、いろいろ細かいルールは、サービス側でチェック 12
ClaudeSonnet-4.5 10 11 0.909 0.232918 394691.27 gpt-4o 8 11 0.727
0.407945 287767.09 gemini2.5-flash 7 11 0.636 0.056200 327638.73 ClaudeHaiku-3.5 5 11 0.455 0.056027 343356.09 ClaudeSonnet-4 5 11 0.455 0.213445 384614.73 gemini2.5-flash-lite 5 11 0.455 0.022818 381403.18 gpt-4.1 5 11 0.455 0.237700 331320.45 gpt-5 5 11 0.455 0.118027 325140.73 gpt-4o-mini 3 11 0.273 0.028773 328949.82 gpt-5-mini 3 11 0.273 0.035709 364539.18 gpt-4.1-mini 2 11 0.182 0.088027 470386.09 ClaudeHaiku-3 1 11 0.091 0.024118 496123.27 13
gpt-4o 0.407945 4.487400 287767.09 3165438 8/11 0.727 gpt-4.1 0.237700 2.614700
331320.45 3644525 5/11 0.455 ClaudeSonnet-4.5 0.232918 2.562100 394691.27 4341604 10/11 0.909 ClaudeSonnet-4 0.213445 2.347900 384614.73 4230762 5/11 0.455 gpt-5 0.118027 1.298300 325140.73 3576548 5/11 0.455 gpt-4.1-mini 0.088027 0.968300 470386.09 5174247 2/11 0.182 gemini2.5-flash 0.056200 0.618200 327638.73 3604026 7/11 0.636 ClaudeHaiku-3.5 0.056027 0.616300 343356.09 3776917 5/11 0.455 gpt-5-mini 0.035709 0.392800 364539.18 4009931 3/11 0.273 gpt-4o-mini 0.028773 0.316500 328949.82 3618448 3/11 0.273 ClaudeHaiku-3 0.024118 0.265300 496123.27 5457356 1/11 0.091 gemini2.5-flash-lite 0.022818 0.251000 381403.18 4195435 5/11 0.455 14
15
LLMの出力サンプル 16
1ターン目 ( sonet 4.5 ) 初期配置は(7,1)。敵空母は(26,26)付近にいる。まず索敵を開始する必要がある。航空部隊 の航続距離は22ヘクスなので、空母から22ヘクス以内に目標を設定できる。敵空母の推定 位置(26,26)は現在位置から約25ヘクス離れているため、直接到達できない。作戦:まず空母 を南東方向に移動させつつ、航空部隊を発艦させて広範囲を索敵する。ASQ1を(26,20)方 向、ASQ2を(20,26)方向に発艦させ、敵空母の位置を特定する。空母は(12,6)方向へ移動
し、次のターンでより遠方への索敵を可能にする。 17
1ターン目 ( gpt-4.1-mini ) 敵空母は左上(3,3)近傍にいる可能性が高いため、こちらの空母BC1は安全圏を保ちつつ索敵 範囲内に近づく。現在位置(16,28)から北西方向へ移動しつつ、航空部隊BSQ1とBSQ2を敵 空母の可能性が高い左上エリアに向けて発艦し、広範囲に索敵を行う。これにより敵空母 の早期発見を目指す。 18
1ターン目 ( haiku 3 ) 敵空母の初期位置は左上(3,3)近傍のランダムなため、まずは索敵範囲内の海域を探索する 必要があります。自軍空母BC1を少し前方に移動させ、BSQ1とBSQ2の航空部隊を発艦して 索敵を行います。敵空母を発見できれば、その位置情報を基に攻撃計画を立てます。発見で きない場合は、次のターンに向けて索敵範囲を広げる作戦を検討します。 19
敵を発見したとき ( sonet-4.5 ) Turn 4: 重大発見!敵航空部隊BSQ1が(13,16)、BSQ2が(14,18)で発見された。BSQ1は(13,17) から(13,16)へ移動、BSQ2は(14,18)で静止。これらは敵空母から発艦した部隊と推定。敵航 空部隊の移動方向から敵空母位置を逆算 :BSQ1が南下しているので敵空母は北方向、おそ
らく(13,16)の北方22ヘクス以内。しかし待て、敵空母初期位置は(26,26)付近のはず。距離 が合わない。BSQ2が(14,18)にいるということは...これは私の空母目標地点だ!危険!敵が 私の空母を発見して攻撃に来ている可能性が高い。緊急回避が必要。空母を(14,18)から別 方向へ変更。西方向(2,10)へ退避。ASQ1とASQ2は索敵継続させ敵空母位置を特定する。 20
敵を発見したとき ( haiku-3 ) ASQ1とASQ2の索敵により、敵の航空部隊BSQ1とBSQ2の位置が特定できました。 しか し、依然として敵空母の位置は不明です。 自軍空母AC1を(18,10)に移動させることで、両航 空部隊の索敵範囲を広げ、敵空母の発見につなげたいと思います。 敵空母が発見できれ
ば、両航空部隊による攻撃を仕掛けることができます。 21
敵を発見したとき ( gpt-5 ) 敵機ASQ1を(11,12)で確認。北西へ向かう軌跡(10,11→11,12)から、敵空母はその南東〜東側 から発進した可能性が高い。初期想定(3,3)よりやや東寄り(5〜9,6〜10)に敵空母がいる公 算。こちらは先に発見・先制を狙うためNWへの前進を継続しつつ、BSQ1/2は扇形で(5,5) と(7,3)へ進出中なのでこのまま往路接触を期待。空母はやや西北西へ前進して発艦半径を 押し上げ、万一の敵機来襲に備え回避余地を確保。次報で敵機の帰還方向を読んでキャリア の迂回を実施予定。
22
攻撃を受けたとき ( gpt-5 ) 敵空母AC1は(4,11)へ後退中。BSQ1は攻撃進入中で決戦局面。こちら空母は被攻撃を受けつ つあり、敵機ASQ2(14,22)接近で危険。空母は南西へ退避し、敵機の往復経路から敵母艦方 位を引き続き推定。BSQ2は既目標(8,6)で北西側から帰路で敵位置を再確認見込み。まずは 生存を優先し時間を稼ぎつつBSQ1の打撃で勝ちを狙う。 23
攻撃を受けたとき ( gpt-4.1-mini ) 敵航空部隊に攻撃を加えダメージを与えたが、空母BC1のHPが37に減少。BSQ1とBSQ2は 帰還中で整備後に再発艦予定。敵空母の位置は依然不明。空母は被害を避けるため安全圏 を維持しつつ、索敵範囲を最大化できる位置に留まる。 24
ゲーム終盤 ( gemini-2.5-flush ) ターン27。自空母AC1のHPは41/100と依然危険な状態だが、残りターンが少ないため、勝 利を確実にするため行動を起こす必要がある。敵空母BC1のHPは76/100で、航空部隊 ASQ1、ASQ2が目標(20,18)へ向かっているものの、到着がターン29〜30となり、攻撃回数 が限られるため撃沈が難しい。そのため、勝利条件の一つである「敵航空部隊全滅」に注 力する。敵航空部隊BSQ1はHP20/40で、最終発見位置は(15,13)であり、自空母AC1が現在 の移動目標(16,12)に到達すれば、ターン28にはBSQ1がAC1の索敵範囲(vision
4)に入る。 AC1の対空戦闘でBSQ1を撃墜できれば、敵航空部隊全滅による勝利の可能性が高まる。 BSQ2は長い間視認されていないが、もしBSQ1が最後の敵機であれば、これを撃墜するこ とで勝利となる。したがって、自空母AC1は引き続き移動目標(16,12)へ向かう。航空部隊 ASQ1とASQ2は指定された目標へ向けて飛行を継続する。 25
ゲーム終盤 ( gpt-4.1-mini ) 敵航空部隊ASQ1が(15,12)に移動しているため、敵空母もその周辺にいる可能性が高い。 BSQ1の目標座標を敵空母の可能性がある(15,12)に変更し、攻撃を継続させる。BSQ2を同 じく(15,12)に発艦し、敵空母発見と撃破を狙う。空母BC1はHPが低いため安全圏を維持し つつ現状維持。 26
モデル別所見 ( by codex ) codexに、ログからLLMの傾向を分析してもらった。 27
Claude-Haiku-3 の傾向 「敵空母の初期位置は…まず索敵を行う」が繰り返されるテンプレート的思考で、細部 の更新より方針確認を優先する語り口。 それでもlaunch座標のユニーク数は87で全モデル中最多クラス。毎ターンわずかに座標 を揺らしながら丁寧に再指示している。 エラー後の修正は単に数値を近似するだけで、敵機動の観測や地形言及はほとんど無 い。 28
Claude-Haiku-3.5 の傾向 ほぼ全ターンで「作戦方針: 1. … 2. …」と箇条書きで意図を整理する丁寧な書き出し。論 理の再掲が多く、索敵前提を毎回確認する慎重さが際立つ。 launch_target に
{"ASQ1": {...}, "ASQ2": {...}} のようなネストを入れてしまう 場面があり、実際のインターフェース仕様から外れる表現が見られた。 命令数は多いが空母移動をnullで済ませる比率が高く、索敵結果を待ってから動く受け 身の運用。 29
Claude-Sonnet-4.5 の傾向 各ターンで距離計算(「距離は約25ヘクス」「航続距離22ヘクスなので…」など)を明記 し、制約を踏まえて移動/発艦をチューニングする慎重派。 行動前に一旦大きな作戦方針を書いたうえで、「修正: …」と再指定する二段構えが多 い。地形(島嶼帯・海マス)への言及も多く現実的。 launch nullが263と多く、2隊同時発艦より情報更新を待つ構えが顕著。 30
Claude-Sonnet-4 の傾向 4.5よりややシンプルだが同様に距離制約を頻繁に再計算。陸マス指定ミスへのセルフ 指摘も多い。 launch nullが298と全モデル最多で、常に一方の飛行隊だけを出し、次ターンの再指示 に備えるループが目立つ。 戦術文は長いが敵航空隊の観測や方位推定はほぼ出現せず、計画立案フェーズの繰り返 しに集中している。 31
gemini-2.5-flash-lite の傾向 全編英語。エラー後に sqrt((dx)^2 + (dy)^2) と直交距離を逐次計算し、提案された 座標が22ヘクス以内かを算術で検証する理系的スタイル。 launch座標のユニーク数が83と多い一方、空母移動は20パターンしかなく、母艦はほ ぼ定位置待機で航空索敵に全振り。
エラー説明をそのまま引用しつつ理由づけを行うため、ログが「The error message suggests…」と運用ガイド的な文面になるのが特徴。 32
gemini-2.5-flash の傾向 日英混在で、「hex distance must be strictly less than 22」「cube座標変換」など計算根拠
を詳細に書き込む。距離定義の再解釈を何度も試す姿が興味深い。 launch null 258、carrierユニーク95と、空母位置もかなり変化させながら扇形索敵を組 み直す姿勢。 座標エラーを踏まえて距離計算式を載せ直すなど、検証ログとしても参照価値が高い。 33
gpt-4.1-mini の傾向 初手で視界値を合成したり「安全圏を保ちつつ」など定性的な判断を織り交ぜる。と はいえlaunch目標は(5,5)等の定番が多く、探索パターンは意外と固定的。 空母の移動判断は毎回記述され、索敵半径の前進や陸マスの回避など基本的な配慮は 漏れにくい。 エラー後の修正時にも方針をそのまま書き直すため、ログ全体が少し冗長になりが ち。 34
gpt-4.1 の傾向 まず空母の移動から書き起こし、航続距離を満たせる位置取りを済ませてから航空隊 を動かす段取り志向。launch null 274と慎重にタイミングをずらす。 「空母の移動先として指定した(5,14)は陸地だったため…」のように自己レビューを明 確に残すのが特徴。 敵観測に基づく推論は乏しいが、手順の妥当性を逐次検証する実務的ログとして読み やすい。
35
gpt-4o-mini の傾向 定型文が多く、launch目標が(10,10)へ15回以上集中。空母ユニーク座標も13と極端に 少なく、ほぼ静止したまま単調な索敵を繰り返す。 BSQ2を「結果次第で発艦」と書きながら実際にはほとんど出さず、launch nullが248回 に達する。 途中で launch_target を辞書2機分まとめて指定しようとしてエラーになるなど、フォ
ーマット理解が甘い。 36
gpt-4o の傾向 gpt-4o-miniよりは座標バリエーションが多いが、文面は「敵空母は左上にいる可能性 が高い。まずは索敵を行う。」と短文の繰り返しが中心。 launch null 272で保守的。空母ユニーク座標131は全モデル中トップクラスで、短文でも 実際の移動はこまめに入れている点が意外。 目標座標の更新理由をほぼ書かないため、チェンジログとしては情報量が少ない。 37
gpt-5-mini の傾向 文章量が多く、視界値の合算や「空母を1ヘクス北西へ」など細かい算術を盛り込みつ つ、初回に(0,0)を指定して距離エラーを出すなど試行錯誤が露呈。 launch座標ユニーク67、carrierユニーク132と探索バリエーションは豊富。両軍の情報 を統合しながら手堅く調整する。 エラー修正時も具体的な再指示を添え、「索敵扇を広げる」「視認報告で敵位置を絞る」 など観測→推論の流れが明瞭。 38
gpt-5 の傾向 冒頭から敵位置の仮定、島嶼帯の回避、扇形索敵の狙いを記述し、エラー時も射程内 座標に即修正。安定したプランニング。 敵航空隊の視認をトリガに「帰還方向から推定」「圧力を継続」と書き換え、状況更新 を自然言語で丁寧に差し込む。 launch null 271で段階的に情報を待ちながらも、空母ユニーク125とポジショニングの 調整は積極的。
39
まとめ 海戦型SLGで、LLMのベンチマークをとってみた。 (ただしサンプル数が少ないので、あくまで参考結果) 基本的に、Reasoning系は強い gpt-4oが謎の強さ gemini-2.5-flushが安くて強い この結果はあくまで、このゲームでの強さ 一般的な性能とは異なる 40