Skip to content

syuhei176/city-simulator

Repository files navigation

都市シミュレーター (City Simulator)

交通重視の本格的な2D都市シミュレーター。TypeScriptで開発されています。

🎮 デモを試す(GitHub Pages)

🎯 プロジェクト概要

このプロジェクトは、リアルタイムの交通シミュレーションを中心とした都市建設・管理シミュレーターです。 プレイヤーは道路網を設計し、ゾーニングを行い、都市の成長と交通の流れを最適化していきます。

✨ 現在の機能 (Phase 8完了)

コアシステム (Phase 1)

  • ✅ グリッドベースのマップシステム (200x200セル)
  • ✅ Canvas 2D レンダリング
  • ✅ スムーズなカメラ制御(パン、ズーム)
  • ✅ ゲームループとシミュレーションエンジン

建設ツール (Phase 1)

  • ✅ 道路建設(小・中・大の3種類)
  • ✅ ゾーニング(住宅・商業・工業)
  • ✅ ブルドーザー(破壊)

UI/UX (Phase 1)

  • ✅ HUD(統計表示)
  • ✅ ツールバー
  • ✅ キーボードショートカット

道路ネットワークシステム (Phase 2)

  • ✅ 道路配置システムの拡張
  • ✅ グラフ構造でネットワーク構築
  • ✅ A*経路探索実装
  • ✅ 道路種類と接続ルール

交通シミュレーション (Phase 3)

  • ✅ 車両エージェント実装
  • ✅ 交通流シミュレーション
  • ✅ 渋滞発生ロジック
  • ✅ 交通データ収集

ゾーニング & 建物システム (Phase 4)

  • ✅ R/C/I ゾーン実装
  • ✅ 建物成長システム(3段階)
  • ✅ 需要計算システム
  • ✅ 建物レベル別の視覚表現
  • ✅ リアルタイム需要インジケーター

iPad/モバイル対応

  • ✅ タッチ操作サポート(タップ、スワイプ)
  • ✅ ピンチズーム機能
  • ✅ タッチフレンドリーなUI
  • ✅ レスポンシブデザイン

人口 & 経済システム (Phase 5)

  • ✅ 市民エージェント(住宅に基づく市民生成)
  • ✅ 通勤システム(市民と職場のマッチング)
  • ✅ 経済循環(税収・支出の計算)
  • ✅ 月次予算システム
  • ✅ 雇用統計(失業率、求人数)
  • ✅ 財政状況の可視化

公共交通システム (Phase 6)

  • ✅ バス停・駅の配置システム
  • ✅ 路線作成(バス、地下鉄、路面電車)
  • ✅ 車両シミュレーション(路線上を巡回)
  • ✅ 乗客システム(乗降処理)
  • ✅ カバー率計算(公共交通の都市カバー範囲)
  • ✅ 公共交通統計の可視化

UI/UX & 分析ツール (Phase 7)

  • ✅ 複数ヒートマップモード(交通・人口・需要・土地価値)
  • ✅ 時系列統計データ収集システム
  • ✅ 統計グラフ描画(人口・経済・交通推移)
  • ✅ 拡張統計パネル(タブ式UI)
  • ✅ リアルタイムチャート可視化

高度な機能 (Phase 8)

  • ✅ セーブ/ロード機能(LocalStorage対応)
  • ✅ オートセーブ(5分間隔)
  • ✅ マップテンプレート(グリッド、放射状、河川都市)
  • ✅ セーブファイルのインポート/エクスポート
  • ✅ レンダリング最適化(フレームスキップ、可視範囲計算)
  • ✅ パフォーマンスモニタリング(FPS測定)
  • ✅ 折りたたみ可能なコンパクトHUD(iPad対応)

🎮 操作方法

iPad/タブレット操作

  • 1本指スワイプ: マップをパン(移動)/ 道路・ゾーン配置
  • 2本指ピンチ: ズームイン/アウト
  • ツールバー: 画面下部のボタンで道路やゾーンを選択

PC/マウス操作

カメラ操作

  • ドラッグ: マップをパン(移動)
  • マウスホイール: ズームイン/アウト
  • 矢印キー: カメラ移動
  • +/-: ズーム

建設ツール

  • 1: 小道路
  • 2: 中道路
  • 3: 大道路
  • R: 住宅ゾーン
  • C: 商業ゾーン
  • I: 工業ゾーン
  • D: ブルドーザー
  • ESC: ツール選択解除

ゲーム制御

  • Space: 一時停止/再開
  • L: セーブ/ロードパネル表示
  • Ctrl/Cmd + P: クイックセーブ
  • 0: マップクリア

🚀 開発環境

必要なもの

  • Node.js 18+
  • npm

デプロイ

このプロジェクトはGitHub Pagesに自動デプロイされます。mainブランチまたは開発ブランチにプッシュすると、GitHub Actionsが自動的にビルドとデプロイを実行します。

セットアップ

# 依存パッケージのインストール
npm install

# 開発サーバー起動
npm run dev

# 型チェック
npm run type-check

# プロダクションビルド
npm run build

# ビルド結果のプレビュー
npm run preview

📁 プロジェクト構造

city-simulator/
├── src/
│   ├── core/              # コアロジック
│   │   ├── types.ts       # 型定義
│   │   ├── Cell.ts        # セルクラス
│   │   ├── Grid.ts        # グリッドシステム
│   │   └── GameEngine.ts  # ゲームエンジン
│   ├── renderer/          # レンダリング
│   │   ├── Camera.ts      # カメラ制御
│   │   └── MapRenderer.ts # マップ描画
│   ├── ui/                # UI コンポーネント
│   │   ├── InputHandler.ts
│   │   └── HUD.ts
│   ├── transport/         # 交通システム(実装予定)
│   ├── buildings/         # 建物システム(実装予定)
│   ├── systems/           # ゲームシステム(実装予定)
│   ├── simulation/        # シミュレーション(実装予定)
│   ├── utils/             # ユーティリティ(実装予定)
│   └── main.ts           # エントリーポイント
├── public/
│   └── assets/
├── index.html
├── package.json
├── tsconfig.json
└── vite.config.ts

🗓️ 開発ロードマップ

✅ Phase 1: 基礎システム(完了)

  • ✅ グリッドマップシステム
  • ✅ 基本的な建物配置
  • ✅ Canvas描画とカメラ制御
  • ✅ 基本UI

✅ Phase 2: 道路ネットワーク(完了)

  • ✅ 道路配置システムの拡張
  • ✅ グラフ構造でネットワーク構築
  • ✅ A*経路探索実装
  • ✅ 道路種類と接続ルール

✅ Phase 3: 交通シミュレーション(完了)

  • ✅ 車両エージェント実装
  • ✅ 交通流シミュレーション
  • ✅ 渋滞発生ロジック
  • ✅ 交通データ収集

✅ Phase 4: ゾーニング & 建物(完了)

  • ✅ R/C/I ゾーン実装
  • ✅ 建物成長システム(3段階の成長レベル)
  • ✅ 需要計算(人口、雇用、交通を考慮)
  • ✅ 道路アクセス、電力、水道の成長条件
  • ✅ 建物レベル別の視覚表現(サイズと詳細が変化)
  • ✅ リアルタイム需要インジケーター表示

✅ Phase 5: 人口 & 経済(完了)

  • ✅ 市民エージェント(年齢層、雇用状態)
  • ✅ 通勤システム(住宅⇔職場のマッチング)
  • ✅ 経済循環(税収/支出の月次計算)
  • ✅ 雇用統計(失業率、求人追跡)

✅ Phase 6: 公共交通(完了)

  • ✅ バス路線システム(停留所配置、路線作成)
  • ✅ 地下鉄/路面電車(複数種類の公共交通)
  • ✅ 乗客シミュレーション(乗降処理、容量管理)
  • ✅ 車両巡回システム
  • ✅ カバー率分析

✅ Phase 7: UI/UX & 分析ツール(完了)

  • ✅ 複数ヒートマップ(交通、人口、需要、土地価値)
  • ✅ 時系列統計グラフ(人口、経済、交通、雇用)
  • ✅ 拡張統計パネル(タブ式、リアルタイム更新)
  • ✅ データ可視化システム(Canvas 2Dベース)

✅ Phase 8: 高度な機能(完了)

  • ✅ セーブ/ロード機能(LocalStorage、最大5スロット)
  • ✅ オートセーブ機能(5分間隔)
  • ✅ セーブファイルのエクスポート/インポート(JSON)
  • ✅ マップテンプレート(空、グリッド、放射状、河川)
  • ✅ レンダリング最適化(可視範囲計算、フレームスキップ)
  • ✅ パフォーマンス監視(FPS測定、劣化検知)
  • ✅ 折りたたみ可能HUD(iPad/モバイル対応)

🛠️ 技術スタック

  • 言語: TypeScript
  • レンダリング: HTML5 Canvas (2D)
  • ビルドツール: Vite
  • テスト: Vitest (予定)

📝 ライセンス

MIT License

🤝 コントリビューション

このプロジェクトは開発中です。Issue やPull Request を歓迎します!


開発開始日: 2025-10-25 現在のPhase: Phase 8 完了!

🎉 プロジェクト完了

都市シミュレーターの全8フェーズが完了しました!

  • 完全な都市建設シミュレーション
  • リアルタイム交通システム
  • 経済と人口管理
  • 公共交通ネットワーク
  • 高度な分析ツール
  • セーブ/ロード機能
  • パフォーマンス最適化

Releases

No releases published

Packages

 
 
 

Contributors

Languages