Skip to content

アーキテクチャ

システム構成図

リクエストフロー

コスト比較: ホスティングプラットフォーム

50万ユーザー規模(月間)でのコスト比較:

プラットフォーム帯域制限月額コスト(500K users)ビルド時間制限備考
Cloudflare Pages無制限$0500回/月帯域課金なし
Vercel (Hobby)100GB/月$0 → 超過で$40/100GB6,000分/月帯域超過で従量課金
Netlify (Free)100GB/月$0 → 超過で$55/100GB300分/月帯域超過で従量課金
AWS S3 + CloudFront従量課金$50~200+なしリクエスト+帯域の従量課金
Firebase Hosting10GB/月$0 → 超過で$0.15/GBなしSpark無料枠は厳しい

帯域計算の根拠

ゲームの総バンドルサイズ: 約 2MB(gzip後)
月間 500,000 ユーザー × 2MB = 1,000 GB / 月

- Cloudflare Pages: $0(帯域無制限)
- Vercel:  (1000GB - 100GB) × $0.40/GB = $360/月
- Netlify: (1000GB - 100GB) × $0.55/GB = $495/月
- AWS CloudFront: 1000GB × $0.085/GB = $85/月(東京リージョン)

バズった場合のリスク

Vibe Jam で話題になり、100万アクセスを超えた場合:

  • Cloudflare Pages: $0(変わらず)
  • Vercel: $720+/月
  • Netlify: $990+/月
  • AWS: $170+/月

Cloudflare Pages 以外では、バズ = 破産リスク となる。

クライアントサイドアーキテクチャ

データフロー

セーブデータ

全てのプレイヤーデータはブラウザの localStorage に保存する。

データ種別キーサイズ目安説明
キャラクターrift_character~1KBレベル、ステータス、経験値
装備rift_equipment~2KB所持装備一覧、装備中アイテム
進行状況rift_progress~500Bクリア済みミッション、アンロック
設定rift_settings~200B音量、画質、操作設定
合計~4KBlocalStorage上限5MBに対し余裕

ポータルデータ

Vibeverse ポータル経由のデータは sessionStorage + URLパラメータで受け渡す。

入場URL: https://rift-survivors.pages.dev/?portal=true&from=othergame&name=Player1

セキュリティ考慮事項

リスク対策
チート(localStorage改竄)シングルプレイのためランキングなし。改竄は自己責任
XSSユーザー入力なし(ポータルパラメータはサニタイズ)
CSRFサーバーなし。API呼び出しなし
DDoSCloudflare の DDoS 防御が標準適用

サーバーレスのセキュリティ

サーバーがないため、サーバー側の脆弱性が存在しない。 攻撃対象はブラウザのみであり、ゲームの性質上(シングルプレイ、ランキングなし)、 チートのインセンティブも低い。