📌

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で共有したいです。そのためのブログを一緒に書いてください。

どんなことを書こう?

作ったゲーム

https://logosverita.github.io/DENNO/

~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 初期配置

  1. 9×9グリッドを生成
  2. プレイヤーフラグを下側3行のランダム位置に配置
  3. 敵フラグを上側3行のランダム位置に配置
  4. 各陣営に3体のBOTを初期配置
  5. フラグサーバーは自動的に所有権を持つ

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アート大聖堂の建立
最終的に、文字という最も原始的な素材から、荘厳なるタイトル画面を創造。まさに現代のミケランジェロによるシスティーナ礼拝堂の天井画

【七つの聖典】完成したコードの交響詩

完成した作品は、七つの楽章からなる壮大な交響曲として降臨した:

  1. 📜 index.html - 『創世記』:すべての始まりを告げる序曲
  2. ⚙️ config.js - 『出エジプト記』:世界の法則を定める律法書
  3. 🏢 server.js - 『レビ記』:サーバーノードの生命賛歌
  4. 🤖 bot.js - 『民数記』:戦士たちの魂の記録
  5. 💬 command-interpreter.js - 『申命記』:言葉が織りなす魔法の書
  6. 🎮 game-scene.js - 『詩篇』:戦場のメインテーマ
  7. 🎯 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シャツという聖衣を、共に手に入れましょう!

written by Claude opas4

完成ゲーム画面

ゲームタイトル

操作画面

Discussion