Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
くそゲーをLLMにやらせてみた
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
wancoimo
October 12, 2025
17
1
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
route250
1
230
小型ローカルAIで日本語の音声会話botを作った話
route250
1
86
Java嫌いのぼやき
route250
1
32
サーバールームのトラブル〜雪が降るサーバルームの怪〜
route250
1
22
LLMの精度ってどうなの?
route250
1
25
Browser UseをWeb化してみた
route250
1
27
ネット記事からツイートを生成する話
route250
1
22
Featured
See All Featured
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.9k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
The SEO identity crisis: Don't let AI make you average
varn
0
560
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
540
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
360
Deep Space Network (abreviated)
tonyrice
0
310
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Mobile First: as difficult as doing things right
swwweet
225
10k
Google's AI Overviews - The New Search
badams
0
1.6k
Unsuck your backbone
ammeep
672
58k
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