Amazon Q Developerを使って、ただのタイマーを「体験」に変えた話

## デモタイム

**GitHub**: https://github.com/keyaki80/one-day-walking-simulator

**動画**: https://x.com/fullen789/status/1936212640411664579


---

**今日話すこと**
Amazon Q Developerを使って、ただのタイマーを「体験」に変えた話

ゲーム開発経験なし

---

## きっかけ：JAWS-UG茨城イベント

**2025年6月18日**
- Amazon Q Developerのハンズオン参加
- 2時間でゲーム作成にチャレンジ
- **結果**: 未完成...でも楽しすぎた！

**帰宅後の決意**
「絶対に完成させる！」

---

## 作ったもの：一息つけるタイマー

### 基本コンセプト
普通のタイマーじゃない、**「休憩体験」** を提供するアプリ

### 動作フロー
1. **1分目**: キャラクターがベンチまで歩く
2. **中間時間**: ベンチで様々なアクションで休憩
3. **最後の1分**: ベンチから出発地点まで歩いて完了

**設定時間**: 3分〜60分

---

![app4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43031/f6049088-bf19-462a-8ccc-081efb11446c.jpeg)

![app6.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43031/a95a32e3-25cd-49ac-97d4-3b2931dfe224.jpeg)

![app7.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43031/7e6841bf-4778-4302-9e0a-914a0679ee70.jpeg)

---

## なぜ「体験」にこだわったか

### 従来のタイマーの課題
- 時間を「待つ」だけ
- 単調で味気ない
- 休憩の質が向上しない

### 目指したもの
- 時間を「楽しむ」
- 視覚的な癒やし効果
- ユーザーとキャラクターの同期感

---

## Amazon Q との開発体験

### 開発プロセスの特徴
- **対話的開発**: 自然言語で機能要求
- **迅速な問題解決**: バグ修正が高速
- **創作的コラボ**: AIとの共同創造

### 印象的だった瞬間
> 「明確な要求を伝える → 即座に実装される」
> この繰り返し自体に**ゲーム性**を感じた

---

## 技術的な工夫①：ウィンドウリサイズ機能

### 課題
ウィンドウサイズが変わると、キャラクターの移動が破綻

### 解決策
```python
# リサイズ検知 → 動的再計算
- 歩行速度の自動調整
- 背景要素の再生成（雲、海、道路）
- キャラクター位置の比例調整
```

### 結果
**リアルタイムで風景が連動**する没入体験

---
![app5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43031/22f73e45-5094-46f0-a5c8-db9aca10fb48.jpeg)

---

## 技術的な工夫②：ベンチアクションシステム

### 実装内容
- **ベンチサイズ**: 3倍に拡張
- **8種類の座位活動**:
  - 空を見上げる、ストレッチ、犬を撫でる
  - スマホチェック、水分補給、深呼吸
  - 景色を眺める、服装を整える
- **ランダム発生**: 30%の確率で新アクション

### 効果
単調な「待ち時間」→ 楽しい「観察時間」

---

## 技術的な工夫③：視点同期システム

### コンセプト
ユーザーとゲーム内キャラクター（K）の視点を同期

### 3段階の遷移アニメーション
1. **Phase 1**: 椅子から立ち上がり（高さ変化）
2. **Phase 2**: 窓への移動（横移動とスケール変化）
3. **Phase 3**: 窓フォーカス（窓が画面全体に拡大）

### トップ画面
レトロなCRTモニター → 部屋の中でPC作業するシーン

---
![app1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43031/8105bde3-ce33-4422-ae8f-9a43e7e4d9ea.jpeg)

![app3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43031/965df117-987e-4975-a36d-4aefb355535a.jpeg)

![app2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43031/26b726c1-9caa-4076-a0a1-050827a588e9.jpeg)


---

## 使用技術

### メインスタック
- **Pygame**: 2Dゲーム描画
- **Python**: メイン言語
- **Amazon Q Developer**: AI開発支援

### システム設計
- **時間帯対応**: 朝・昼・夕・夜の背景変化
- **季節対応**: 春夏秋冬の景色変化
- **フェーズベース状態管理**: 明確な動作制御

---

## 開発時間と成果

### 開発時間の内訳
- **イベント時間**: 2時間（未完成）
- **帰宅後追加開発**: 約2時間
- **合計**: **約4時間で完成**

### Amazon Q の効果
- バグ修正が高速化
- 新機能実装が効率的
- 創作的なアイデアも素早く形に

---

## 開発体験での学び

### Amazon Q Developer活用のコツ
- **明確な要求を伝える**: 曖昧だと期待と違う結果
- **段階的な機能追加**: 一度に全部やろうとしない
- **バグは即座に相談**: 早期解決が重要

### 創作における AI の価値
実装の**技術的ハードル**を下げることで、
**創作的なアイデア**により集中できる

---

## 今後の拡張予定

### 機能追加案
- **サウンド**: 海の音、タイマー終了音
- **オブジェクト追加**: 季節・時間帯別の詳細化
- **キャラクター**: 描画の精密化
- **設定**: デバッグ用日時データ対応
- **トップ画面**: 窓に近づく描写を細かくしてリアルに

---

### この開発で感じたこと
1. **AI支援開発の楽しさ**: 対話的プログラミングの魅力
2. **創作への集中**: 技術的制約を気にせずアイデアに専念
3. **完成の達成感**: 4時間で「体験」まで作り上げる満足感
4. **ハンズオンの価値**: 集中して大人数で取り組む/作り上げるという環境


![ft2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43031/ff09ca4c-fce9-4ae9-9691-d316702375f2.jpeg)


---

### メッセージ
Amazon Q Developerは単なる**コーディング支援ツール**ではなく、**創作パートナー**として活用できる


**みなさんも、何か作ってみませんか？**

- **Amazon Q CLI でゲームを作ろう Tシャツキャンペーン (好評につき期間延長！)**:
https://aws.amazon.com/jp/blogs/news/build-games-with-amazon-q-cli-and-score-a-t-shirt/

---

## ありがとうございました！

## 発表者

- **Name**: 佐々木 健成 (ささき けんせい）
- **Background**: インフラエンジニア

- **X**: https://x.com/fullen789
- **GitHub**: https://github.com/keyaki80/
- 記事
    - Amazon Q でゲームを作る体験が楽しすぎた。【JAWS-UG 茨城 イベント参加レポ】
https://note.com/ideaio/n/n48e9d42f7858?from=notice

    - Amazon Q で一息つけるタイマーを作成する
https://zenn.dev/kns/articles/8e8d20ecf99245