Apple Watch のセンサーデータをトリガーに、iOS アプリ経由で Rust 製の低遅延同期サーバーと通信し、Web UI 上でアバター同士をリアルタイムに対戦させる格闘ゲーム。
[Apple Watch (watchOS)] ---> [iOS アプリ (Swift)]
| WebTransport (UDP:7000-8000)
v
[Web UI (React/TanStack)] <--- [sync-server (Rust)] <--- [Kubernetes + Agones]
対戦描画・観戦 Protocol Buffers サーバー割り当て
| カテゴリ | 技術 | バージョン |
|---|---|---|
| iOS / watchOS | Swift / SwiftUI | - |
| 同期サーバー | Rust / wtransport / Tokio / prost | Edition 2024 |
| Web | React / TanStack Start / Vite / Tailwind CSS | 19 / 1.132 / 7 / 4 |
| インフラ | Kubernetes / Agones / ArgoCD / Cloudflare Workers | - |
apps/
├── andere-boxing/ # iOS / watchOS アプリ (Swift)
├── sync-server/ # リアルタイム同期サーバー (Rust)
├── web/ # Web フロントエンド (React)
└── proto/ # Protocol Buffers 定義
infra/
├── argocd/ # Kubernetes マニフェスト
└── terraform/ # IaC
- Rust (Edition 2024)
- Node.js + pnpm
- Xcode (iOS / watchOS ビルド用)
- Protocol Buffers (protoc + swift-protobuf)
# ツールのインストール
cd apps/proto
make install-deps
# Swift コードを生成
make generate詳細は apps/andere-boxing/PROTOBUF_SETUP.md を参照。
cd apps/sync-server
cargo runcd apps/web
pnpm install
pnpm dev| 変数名 | 説明 | デフォルト |
|---|---|---|
AGONES_ALLOCATOR_HOST |
Agones Allocator のホスト | - |
AGONES_ALLOCATOR_PORT |
Agones Allocator のポート | - |
DISCORD_WEBHOOK_URL |
Discord 通知用 Webhook URL | - |
