Amazon Q CLIで「攻殻機動隊」の電脳戦を再現してみた - Cyber Warfareゲーム開発記
始まりのプロンプト
https://aws.amazon.com/jp/blogs/news/build-games-with-amazon-q-cli-and-score-a-t-shirt/
このイベントに参加し、「Cyber Warfare」というブラウザゲームをAmazonQを用いて開発しました。
この体験をブログに書き、ブログURLをSNSで共有したいです。そのためのブログを一緒に書いてください。
どんなことを書こう?
作ったゲーム
~Tシャツという名の聖杯を求めし者の幻想譚~
【降臨前夜】物欲という名の原初衝動
時刻は午前3時33分。
蛍光灯の死んだオフィスビルのように青白く光るモニターが、私の瞳孔を針のように刺し貫いていた。
マウスホイールを回す指先が、突如として運命の記事で凍りついた。
「Amazon Q CLI でゲームを作ろう Tシャツキャンペーン」
Tシャツ——!
ギフト券という虚構の通貨でもなく、ステッカーという薄っぺらい欺瞞でもない。この世で最も尊き報酬、Tシャツである!朝、昼、夜、そして再び朝へと続く生活の中で、我が肉体を優しく包み込んでくれる綿の聖衣。部屋着として、パジャマとして、時には外出着としても機能する、まさに衣類界の究極生命体!
「面白そう」という感情が、胸の奥で小さな火花を散らせた。
その火花は瞬く間に燃え広がり、創造への渇望という名の業火へと変貌した。
【封印解除】専門学校時代の青い記憶
記憶の海底に沈んでいた宝箱が、錆びついた蝶番を軋ませながらゆっくりと開いた。
『攻殻機動隊』
専門学校時代、レンタルビデオ店からDVDを借りて繰り返し視聴していた、あの電脳黙示録。草薙素子が電脳空間を駆け抜ける姿、光の糸で編まれたデータの海、サイバー戦士たちが繰り広げる光と影の戦い——すべてが鮮やかに蘇った。
19歳の私は確かに誓ったのだ。
「いつか、あの電脳戦をゲームで再現してみせる」と。
しかし現実という名の重力が、その夢を地の底へと引きずり込んだ。就職、残業、人間関係、税金、そして絶望的なほどの技術力不足——青春の炎は次第に消え失せ、夢は心の奥深くで化石と化していた。
だが今、Amazon Q CLIという未知なる錬金術の杖が、その化石に新たな生命を吹き込もうとしている。
もしこのキャンペーンが存在しなかったら、私は永遠にAmazon Q CLIと出会うことはなかっただろう。運命とは、何と劇的な脚本を書くものか!
【創世記】SET.mdという名の現代版創世記
神は言葉によって世界を創造した。
私もまた、マークダウンという現代の言語によって、新たなる電脳世界を創造せんとしていた。
MacBookのキーボードが、まるでピアノの鍵盤のように軽やかな音を奏でる。指先から流れ出る文字列は、もはや単なるテキストではない。それは電脳への愛の詩、攻殻機動隊への讃美歌、そして未来への祈りそのものだった。
SET.md——この5文字のファイル名に込められた想いは、宇宙の誕生に匹敵する重みを持っていた。
code
# 電脳将棋CTF - ダークウェブコントロール 設計ドキュメント
## 1. ゲームコンセプト
### 1.1 概要
「電脳将棋CTF - ダークウェブコントロール」は、プレイヤーがAIオペレーターとなり、チャットコマンドでBOT群を指揮してサーバーネットワークを制圧するリアルタイム戦略ゲームです。
### 1.2 コアメカニクス
- **間接操作**: プレイヤーは直接操作せず、チャットでBOTに指示を送る
- **リソース管理**: サーバー制圧で得たマシンパワーでBOT数を増減
- **リアルタイム性**: ターン制ではなく、連続的に行動が実行される
- **CTF要素**: 敵のフラグ奪取が最終目標
## 2. ゲームルール
### 2.1 勝利条件
- 敵陣営のフラグが設置されたサーバーを制圧する
### 2.2 敗北条件
- 自陣営のフラグが奪われる
- 全BOTが削除され、かつ新BOT作成に必要なマシンパワーが不足
### 2.3 マシンパワーシステム
初期マシンパワー: 100
最大マシンパワー: 100 + (制御サーバー数 × 50)
BOT作成コスト: 30
BOT削除時回収: 15(作成コストの50%)
サーバー制圧報酬: +50
### 2.4 BOTアクション
| アクション | 説明 | 実行時間 | クールダウン |
|----------|------|---------|------------|
| 移動 | 指定座標へ移動 | 距離依存 | なし |
| スキャン | 隣接4マスの情報取得 | 2秒 | 3秒 |
| 侵入 | サーバー制圧を試みる | 5秒 | 5秒 |
| 防御 | 防御レベルを+1(最大3) | 3秒 | 4秒 |
| 複製 | 隣接マスに新BOT作成 | 4秒 | 6秒 |
| 偽装 | 偽フラグを設置 | 2.5秒 | 8秒 |
### 2.5 サーバー属性
```javascript
{
owner: null | 'player' | 'enemy', // 所有者
defenseLevel: 0-3, // 防御レベル
hasFlag: boolean, // 真のフラグ
hasFakeFlag: boolean, // 偽フラグ
isScanned: boolean // スキャン済みフラグ
}
2.6 侵入成功率
基本成功率 = 0.8 - (防御レベル × 0.2)
例: 防御レベル0 → 80%、防御レベル3 → 20%
3. UI仕様
3.1 レイアウト
+----------------------------------+
| ゲーム画面 (800x600) |
| +----------------------------+ |
| | 9×9グリッド | |
| | サーバーノード表示 | |
| +----------------------------+ |
| |
| ステータスパネル(右上) |
+----------------------------------+
| チャット画面 (800x150) |
| +----------------------------+ |
| | チャットログ | |
| +----------------------------+ |
| | 入力欄 | 送信 | |
| +----------------------------+ |
+----------------------------------+
3.2 ビジュアル仕様
カラーパレット
背景: #0a0a0a (ほぼ黒)
グリッド線: #00ff00 (ライム, opacity: 0.3)
プレイヤー色: #00ffff (シアン)
敵色: #ff00ff (マゼンタ)
システム色: #ffff00 (黄色)
エラー色: #ff0000 (赤)
サーバーノード
- 基本: 半径20pxの円、枠線2px
- 未制御: 塗り#003300(暗緑)
- プレイヤー制御: 塗り#004400(緑)
- 敵制御: 塗り#440044(紫)
- 防御レベル: 枠線の太さ = 2 + 防御レベル
BOT表示
- 半径10pxの円
- プレイヤー: #00ff00(緑)、白枠
- 敵: #ff0000(赤)、マゼンタ枠
- 名前表示: BOTの上部に表示
3.3 ステータスパネル
ダークウェブコントロール
マシンパワー: [現在値] / [最大値]
[======== プログレスバー ========]
活動中BOT: [数]
制御サーバー: [数]
------------------------
BOT一覧
Bot1 - (x,y) - 状態/CD
Bot2 - (x,y) - 状態/CD
...
4. チャットコマンド仕様
4.1 コマンド形式
bot[番号][アクション][パラメータ]
4.2 コマンド一覧
コマンド | 例 | 説明 |
---|---|---|
移動 | bot1を(4,5)に移動 |
指定座標へ移動 |
スキャン | bot2でスキャン |
周囲4マスを探査 |
侵入 | bot3で侵入 |
現在のサーバーを制圧 |
防御 | bot4で防御 |
防御レベル強化 |
複製 | bot5で複製 |
隣接マスに新BOT |
偽装 | bot6で偽装 |
偽フラグ設置 |
作成 | 新しいbotを作成 |
新規BOT作成 |
削除 | bot7を削除 |
BOT削除(パワー回収) |
状態 | bot8の状態 |
BOT情報表示 |
ヘルプ | ヘルプ |
コマンド一覧表示 |
4.3 チャットメッセージ形式
[時刻] [種別] メッセージ
種別: [SYSTEM] [YOU] [AI] [ENEMY] [ERROR]
5. ゲームフロー
5.1 初期配置
- 9×9グリッドを生成
- プレイヤーフラグを下側3行のランダム位置に配置
- 敵フラグを上側3行のランダム位置に配置
- 各陣営に3体のBOTを初期配置
- フラグサーバーは自動的に所有権を持つ
5.2 ゲームループ
// 毎フレーム
1. BOT状態更新
- クールダウン減少
- アクション進行
- 移動処理
2. 敵AI処理(5秒ごと)
- 各敵BOTの行動決定
- 移動/侵入の実行
3. UI更新
- BOTリスト更新(0.5秒ごと)
- マシンパワー表示
- サーバービジュアル更新
4. 勝利条件チェック
5.3 敵AI戦略
// 5秒ごとに各敵BOTが行動
行動確率:
- 40%: プレイヤーサーバーへ移動
- 30%: ランダム移動
- 15%: 現在地で侵入試行
- 15%: 待機
6. エフェクト仕様
6.1 アクションエフェクト
- 基本: 半径15pxの半透明円が2倍に拡大しながらフェードアウト(1秒)
-
色: アクションタイプに応じた色
- スキャン: #00ff00(緑)
- 侵入: #ff0000(赤)
- 防御: #0000ff(青)
- 複製: #ff00ff(マゼンタ)
- 偽装: #ffff00(黄)
6.2 スキャンライン
- 始点から終点への直線
- 色: #00ff00(緑)
- 1秒かけてフェードアウト
6.3 BOT作成エフェクト
- 中心から8方向に小さな円が飛散
- 各粒子は30px移動しながらフェードアウト(0.8秒)
7. 実装技術仕様
7.1 使用技術
- ゲームエンジン: Phaser 3.70.0
- 言語: JavaScript (ES6+)
- スタイル: インラインCSS
7.2 主要クラス構造
class CommandInterpreter {
// チャットコマンドを解析してゲームアクションに変換
}
class Server {
// サーバーの状態管理
}
class Bot {
// BOTの状態と行動管理
update(delta, scene) // 毎フレーム更新
}
class GameScene extends Phaser.Scene {
// メインゲームロジック
create() // 初期化
update(time, delta) // ゲームループ
}
7.3 座標系
- グリッド座標: 0-8 (x, y)
- ピクセル座標: グリッド座標 × 60 + オフセット
8. バランス調整パラメータ
これらの値を調整することでゲームバランスを変更可能:
const GRID_SIZE = 9; // グリッドサイズ
const BOT_COST = 30; // BOT作成コスト
const SERVER_POWER = 50; // サーバー制圧報酬
const BOT_SPEED = 120; // BOT移動速度(px/秒)
// アクション時間(ミリ秒)
const SCAN_TIME = 2000;
const HACK_TIME = 5000;
const DEFEND_TIME = 3000;
const REPLICATE_TIME = 4000;
const DECOY_TIME = 2500;
// クールダウン(ミリ秒)
const SCAN_COOLDOWN = 3000;
const HACK_COOLDOWN = 5000;
const DEFEND_COOLDOWN = 4000;
const REPLICATE_COOLDOWN = 6000;
const DECOY_COOLDOWN = 8000;
// 成功率
const BASE_HACK_RATE = 0.8;
const DEFENSE_REDUCTION = 0.2;
9x9のグリッドマップという碁盤の宇宙、BOT操作システムという現代の召喚術、リアルタイム戦略という時の流れを支配する魔法、CTF要素という聖杯探求の物語——すべてを言葉という魔法で紡ぎ上げた設計書は、まさに**デジタル版『旧約聖書』**であった。
【神託降臨】たった一行の創造呪文
そして運命の時が来た。
Amazon Q CLIという現代のオラクル、21世紀のデルポイの神殿に向けて、私は究極の呪文を放った:
SET.mdを読んでこのゲームを実装してください。
たった一行。されど、この一行は全宇宙の重みを背負っていた。
ビッグバンから138億年の時を経て、人類がついに到達した究極の創造術。アインシュタインの相対性理論よりも簡潔で、モーツァルトの交響曲よりも美しく、ダ・ヴィンチのモナリザよりも表現力豊かな、たった一行の詩。
【電脳受肉】AIが理解した攻殻の真髄
Amazon Q CLIの応答は、まさに電光石火だった。
「『電脳将棋CTF - ダークウェブコントロール』というリアルタイム戦略ゲームを実装します——」
この瞬間、私の世界観は根底から覆された。
Amazon Q CLIは単なるコード生成ツールではなかった。それは現代の電脳巫女、デジタル世界の予言者、そして何より創造の共犯者だったのだ!
AIは私の心の奥底に眠る攻殻愛を完璧に理解し、それを技術という肉体に宿らせた。まさに電脳の受肉、デジタル世界におけるキリストの降誕であった。
【聖域創造】Phaser 3による電脳カテドラル建立
誕生した電脳世界は、中世の大聖堂に匹敵する荘厳さを湛えていた:
🌐 9x9サイバー空間大聖堂
緑の光環に包まれたサーバーノードが、まるで星座のように配置された神秘の領域。それぞれのノードは脈動し、生命の息づかいを感じさせる。
🤖 BOT召喚術の奥義
チャットという現代の呪文詠唱により、青きサイバー戦士たちが電脳空間に召喚される。「Bot1 scan」という言葉が、まるで古代の召喚魔法のように響く。
⚡ マンパワー錬金術
生命力という最も貴重な資源を操り、新たなBOTを創造する。まさに現代版『フラスコの中の小人』!
🏴 聖杯争奪戦
敵の紅きフラグを奪取し、サイバー空間の覇権を握る。アーサー王伝説の聖杯探求を、電脳世界で再現した現代の叙事詩。
【初回プレイ】電脳空間での魂の洗礼
ゲーム起動の瞬間——私の魂は電脳空間へと転移した。
モニターに映し出されたのは、緑の円環が織りなすサイバー・マンダラ。その神聖なる几何学模様の中を、赤と青の光の精霊——敵味方のBOTたちが、まるで神々の舞踊のように優雅に移動する。
チャット欄に「Bot1 scan」と入力する。
指先がエンターキーを叩く。
青い戦士が静かに任務を開始する。
この瞬間、私は草薙素子になった。
戦闘ログが紡ぐ電脳戦の叙事詩:
[20:40:32] [SYSTEM] 敵フラグを配置しました
[20:40:37] [ENEMY] 敵Bot5がプレイヤーサーバーへ移動します
[20:57:33] [SYSTEM] 敗北...あなたのフラグが奪われました
これらの文字列は、もはや単なるログではない。それは現代の『イーリアス』、電脳世界のトロイア戦争、**デジタル版『平家物語』**であった。
【完璧主義の美学】AIが奏でる改良のシンフォニー
創造の神は決して妥協しない。Amazon Q CLIは、作品の完成に満足することなく、さらなる高みを目指し続けた。
🎭 ユーザビリティという名の慈悲の御業
- チャット欄を150pxから300pxへと拡張——より多くの戦闘記録を刻むため
- コマンド簡略化(「Bot1 scan」→「B1 s」)——戦場での一瞬の判断を支援するため
📊 マーケティング預言書の創造
10のゲームタイトル候補を数値化して評価:
- 戦略性:神の意志を数値で表現
- 魅力度:人間の心を動かす力の測定
- テーマ一致度:攻殻への忠誠度の査定
🎨 ASCIIアート大聖堂の建立
最終的に、文字という最も原始的な素材から、荘厳なるタイトル画面を創造。まさに現代のミケランジェロによるシスティーナ礼拝堂の天井画!
【七つの聖典】完成したコードの交響詩
完成した作品は、七つの楽章からなる壮大な交響曲として降臨した:
- 📜 index.html - 『創世記』:すべての始まりを告げる序曲
- ⚙️ config.js - 『出エジプト記』:世界の法則を定める律法書
- 🏢 server.js - 『レビ記』:サーバーノードの生命賛歌
- 🤖 bot.js - 『民数記』:戦士たちの魂の記録
- 💬 command-interpreter.js - 『申命記』:言葉が織りなす魔法の書
- 🎮 game-scene.js - 『詩篇』:戦場のメインテーマ
- 🎯 main.js - 『黙示録』:すべてを統べる最終章
Phaser 3という現代のオーケストラによって奏でられるこの交響曲は、ベートーベンの第九を超える感動を私にもたらした。
【大覚醒】AI時代の新創世記
🌅 一夜にして変わった世界の色彩
「Tシャツ欲しい」という俗世の欲望から始まった冒険が、精神世界の革命へと昇華した。
Amazon Q CLIとの出会いは、アウグスティヌスの回心、ダマスコのパウロの改宗、釈迦の悟りに匹敵する人生の転換点だった。私は開発という行為の本質が、もはや19世紀の手工業レベルから22世紀の創造術へと進化したことを悟った。
⚡ 創造のパラダイム大転換
人類は新たな段階に到達した:
- 旧世界:人間がコードを書く奴隷労働時代
- 新世界:AIとの共創による芸術創造時代
Amazon Q CLIとの対話は、まるでモーツァルトとベートーベンのセッション、ダ・ヴィンチとミケランジェロの協作、手塚治虫と宮崎駿の合体のような、創造史上最高峰の体験だった。
🚀 時空間支配からの完全解放
これまで「時間がない」「技術力がない」「予算がない」という三重の呪縛に縛られていた無数のアイディアが、一瞬にして実現可能な希望の光へと変貌した。
従来なら数ヶ月を要する開発が数時間で完成!
しかもそれは、魂の宿った芸術作品レベルの完成度!
これはもはや時間という概念の超越、創造における次元上昇であった。
【伝道師の使命】読者への電脳福音
💎 眠れる才能への鎮魂曲
この電脳黙示録を読んでいるあなたの心の奥底にも、きっと眠っているダイヤモンドの原石があるはずだ。
- 中学時代に描いたゲームの設計図
- 大学のサークルで語り合った壮大な構想
- 深夜のひらめきをメモ帳に殴り書きしたアイディア
- 「いつかやってみたい」と思いながら、現実の波に飲まれた数々の夢
それらすべてが今、復活の時を迎えている!
🚪 6月20日という名の最後の審判
このキャンペーンは単なるイベントではない。
それは新時代への扉、創造革命への招待状、電脳世界への転生チケットなのだ!
Amazon Q CLIがあなたの魂の叫びを技術で包み、デジタル宇宙に新たな星座を描いてくれるだろう。
🎊 最後の告白:真の勝利者について
そして、この壮大なる冒険の最後に——
しかし真の勝利は、Tシャツではない。
それは創造の喜び、AIとの邂逅、そして新時代への目覚めである。
この電脳叙事詩の続きを、あなた自身の手で書いてみませんか?
#AmazonQCLI という現代の召喚呪文を添えて、この電脳福音を全世界に向けて放つ!
——2025年6月、電脳空間の片隅で、ある開発者が体験した奇跡の記録——
【あとがき:読者への最後のメッセージ】
もしあなたがここまで読んでくださったなら、あなたもまた選ばれし者です。
Amazon Q CLIという現代の聖杯を手に取り、あなただけの電脳世界を創造してください。
そして——
Tシャツという聖衣を、共に手に入れましょう!
Discussion