---
title: ゲームとシーズン
description: ゲームの開始から結果発表までの流れと、複数のゲームを続けて開催する方法です。
sidebar:
  label: ゲームとシーズン
---

箱庭諸島２ TypeScript 版では、開始日時と最終ターンを決めた「シーズン」としてゲームを開催できます。

## ゲームの流れ

1. **ゲーム開始前**

    ゲームを作成すると「ゲーム開始前」の状態になります。この間もプレイヤーは島を発見し、計画を登録できます。

2. **ターン 1 から進行中**

    開始日時になると最初のターン処理が行われ、ターン 1 になります。以後、1 ターンの長さ (既定 6 時間) ごとにターンが進みます。

3. **結果発表**

    最終ターンに達するか、管理者が「このゲームを終了する」を実行すると、ゲームが終了します。

最終ターンを N に設定すると、N 回のターン処理でターン N に達した時点でゲームが終了し、以降はターンが進まなくなります。最終ターンは管理画面の「ゲーム設定」や CLI (`game set-final-turn`) からいつでも変更・解除できます。最終ターンを設定しなければ、ゲームは無期限に続きます。

## 終了後

ゲームが終了すると、次のことができなくなります。

- 計画の登録
- コメントや島名の変更
- 新しい島の作成

トップページ・観光・開発画面は引き続き閲覧でき、掲示板への記帳もできます。

## 次のゲームを開始する

同時に進行できるゲームは 1 つだけですが、現在のゲームが終了していれば、次のゲームを開始できます (管理画面の「新しいゲームを開始」または CLI の `game new`)。

終了したゲームは、読み取り専用の「過去のゲーム」として残り、`/games` から一覧・閲覧できます。過去のゲームを再開することはできません。

## ターンが進む仕組み

ターンは「最終更新時刻から 1 ターン分の時間が経過しているか」で判定されます。判定のきっかけは次のとおりです。

- **ページへのアクセス**: 誰かがページを開いたとき
- **Cloudflare 版**: Cron Trigger が 15 分ごとに確認します
- **Node.js 版**: サーバー内のタイマーが 60 秒ごとに確認します

Cloudflare 版では Cron の間隔の分 (最大 15 分) だけ進行が遅れることがありますが、アクセスがあればその時点で進みます。長時間ターンが進まなかった場合でも、1 回の判定で進むターン数には上限 (`HAKONIWA_MAX_CATCH_UP_TURNS`) があります。
