Sakura / Chapter 2 · Season 4

Sakura は、Fortnite 14.40(チャプター2 シーズン4)を独自のバックエンドとゲームサーバーで遊ぶための非公式プロジェクトです。デスクトップランチャー、バックエンド API、マルチプレイ用のゲームサーバー、アンチチートを自分たちで開発・運用しています。

プロジェクトを見る お問い合わせ
対象ゲーム
Fortnite 14.40Unreal Engine 4.26
対応環境
Windows 10 / 11 (x64)
開発段階
In Development限定テスト中
提供地域
日本

Overview

何を解決するプロジェクトか

過去のシーズンは公式サービスでは遊べません。Sakura は、14.40 をオンラインで遊ぶために必要なものを、クライアント側からサーバー側まで一通りそろえることを目指しています。

  • オンラインで遊べる環境

    ログイン、プロフィール、フレンド、パーティー、マッチメイキングなど、14.40 のクライアントが必要とするサービスを独自のバックエンドで提供します。

  • 導入の手間を減らす

    ゲームビルドのインストール・修復・起動とアップデート確認をランチャーにまとめ、手作業の設定を不要にします。

  • 試合を成立させる

    専用ゲームサーバーとマッチメイカーで、バトルロイヤル・アリーナ・カスタムマッチを運営できるようにします。

  • 公平さを保つ

    アンチチートとアカウント単位の BAN・アクセス制御で、不正なクライアントからマッチを守ります。

Platform

4 つの構成要素

それぞれ独立したリポジトリで開発しています。「実装済み」はコードで確認できる機能、「予定」はまだ実装していない作業です。

Sakura ランチャー

ゲームランチャー

In Development

プレイヤーが最初に使うデスクトップアプリです。アカウントへのログインから、ゲームの導入・起動、バックエンドへの接続までを担当します。対応 OS は Windows 10 / 11(x64)です。

実装済み

  • Discord アカウントでのログイン
  • ゲームビルドのインストール・修復・起動
  • ゲームの通信をバックエンドへ中継するローカルリレー
  • 署名付き API による最新バージョンとサービス状態の確認
  • インストーラーによる配布

Electron · React · TypeScript · C# (.NET 8 / NativeAOT)

Accolade

バックエンド

In Development

すべての構成要素がつながる中心のサービスです。ゲームクライアント、ランチャー、ゲームサーバー、アンチチートからの通信を受け、アカウントとゲームデータを管理します。

実装済み

  • OAuth 形式の認証、トークン更新、セッション破棄
  • プロフィール、ロッカー、フレンド、パーティー、XMPP によるプレゼンス
  • アイテムショップ、ニュース、大会・イベント、リーダーボード
  • マッチメイキングの待ち行列とゲームサーバーの割り当て
  • BAN・アクセス制御・通報確認を行う管理パネルと Discord コマンド

Bun · Hono · TypeScript · MongoDB

Etude · Gioiko

ゲームサーバー基盤

In Development

Etude は 14.40 のホストプロセスを専用サーバーとして動かすゲームサーバーです。Gioiko は外部マッチメイカーで、ゲームホスト上のサーバーを必要に応じて起動・割り当て・終了します。

実装済み

  • バトルロイヤル・アリーナ・カスタムマッチの進行
  • AI ボットによるプレイヤー補充
  • 試合結果・スタッツ・報酬のバックエンドへの報告
  • 試合後や無人時のホスト自動再起動、クラッシュレポート
  • スキル別の待ち行列とサーバーの自動起動・割り当て(Gioiko)

C++ (MSVC / x64) · Bun · TypeScript

Etude は Magnesium(上流は Erbium)をもとに開発しており、BSD-3-Clause の権利表示を保持しています。

Maihime

アンチチート

Prototype

改造されたクライアントや不正なツールからマッチの公平性を守るための仕組みです。想定している脅威は、クライアントの改ざん、許可されていない追加ファイルの読み込み、通信の改ざんやなりすましです。

実装済み(試作)

  • ゲームクライアントと並行して動作する Windows アプリ
  • バックエンドとの暗号化・改ざん検知付きの常時接続と、アカウントへの紐付け
  • 接続を確認できないプレイヤーの参加を、マッチメイカーとゲームサーバーで制限する仕組み(サーバー設定で段階的に有効化)

予定

  • 検知範囲の拡充と、制限の本格的な有効化
  • ゲームファイルの整合性検証の強化

C++ (MSVC / x64)

悪用を防ぐため、検知の仕組みの詳細は公開していません。

Architecture

全体の構成

バックエンドの Accolade が中心にあり、ランチャー・ゲームサーバー・アンチチートはすべて Accolade とやり取りします。ゲーム本体の通信だけは、クライアントからゲームサーバーへ直接届きます。

接続の流れ
Sakura のシステム構成図 プレイヤー PC 上のランチャー、アンチチート、ゲームクライアントが、クラウド上の認証 Worker とバックエンド Accolade に接続し、ゲームホスト上のマッチメイカー Gioiko とゲームサーバー Etude も Accolade に接続する。ゲーム通信はクライアントから Etude へ直接届く。詳細は図の下の番号付きリストを参照。 プレイヤー PC クラウド ゲームホスト (Windows) Sakura ランチャー Electron · React · C# Maihime アンチチート · C++ ゲームクライアント Fortnite 14.40 認証 Worker Cloudflare Workers Accolade バックエンド API 認証 · プロフィール ソーシャル · ショップ マッチメイキング · 管理 Bun · Hono · MongoDB Gioiko マッチメイカー · Bun Etude ゲームサーバー · C++ 1 2 3 3 4 5 6 7 8 9
  1. ランチャーから Discord アカウントでログインします。
  2. 認証 Worker がバックエンドにアカウントを作成し、セッションを発行します。
  3. ランチャーがアンチチートと一緒にゲームを起動します。
  4. アンチチートはバックエンドと暗号化した常時接続を保ち、接続状態をアカウントに結び付けます。
  5. ゲームクライアントのログイン・プロフィール・フレンド・マッチメイキングの通信は、ランチャーのローカルリレーを経由してバックエンドへ届きます。
  6. マッチメイキングでは、バックエンドの内蔵マッチメイカーか、外部マッチメイカー Gioiko がゲームサーバーを割り当てます。
  7. Gioiko がゲームホスト上で Etude を起動・停止します。
  8. Etude はプレイヤーの衣装を取得し、試合結果・スタッツ・報酬をバックエンドへ報告します。
  9. ゲーム本体の通信(UDP)は、バックエンドを経由せずクライアントから Etude へ直接届きます。

使用している技術

領域技術
ランチャーElectron、React、TypeScript、Vite(画面)/ C#・.NET 8・NativeAOT(インストール・起動・リレー)/ Inno Setup(インストーラー)
ログインDiscord OAuth、Cloudflare Workers
バックエンドBun、Hono、TypeScript(strict)、MongoDB(Mongoose)、XMPP、discord.js(運営用コマンド)
ゲームサーバーC++(MSVC / x64)、Windows のゲームホスト
マッチメイカーBun、TypeScript
アンチチートC++(MSVC / x64)
運用Docker Compose、Ubuntu(Oracle Cloud Infrastructure)、GitHub Actions による検証とデプロイ

Status

開発状況

現在は限定テストの段階で、一般公開はしていません。公開時期・進捗率は公表していません。

Available対象の利用者が使える In Development動作しており、限定テストで使用中 Prototype試作段階 Planned未実装の予定
構成要素状態現状
ゲームランチャー(Sakura)In Developmentログイン・インストール・起動まで動作。限定テストで配布しています。
バックエンド(Accolade)In Developmentテスト用サーバーで稼働中。機能追加と修正を継続しています。
ゲームサーバー(Etude)In Developmentバトルロイヤル・アリーナ・カスタムマッチをテストで運用しています。
マッチメイカー(Gioiko)In Developmentサーバーの自動起動・割り当てを実装済み。バックエンド内蔵のマッチメイカーと切り替えて使えます。
アンチチート(Maihime)Prototypeバックエンドとの接続と参加制限の仕組みを実装済み。制限は段階的に有効化します。
一般公開Planned時期は未定です。

テストサーバーの状態

確認中
オンライン
—
対応ビルド
—
シーズン
—

バックエンドの公開 API から取得した値をそのまま表示しています。

Engineering

開発方針

ここに書いているのは、現在のリポジトリで実際に行っていることです。

  • 役割ごとに分けた構成

    ランチャー、バックエンド、ゲームサーバー、マッチメイカー、アンチチートを別々のリポジトリで開発し、連携の仕様は共通のアーキテクチャ文書にまとめて各リポジトリでそろえています。

  • 取り込む前の自動検証

    バックエンドへの変更は、プルリクエストごとに型チェック(TypeScript strict)、自動テスト、MongoDB を使った起動確認、秘密ファイルの混入チェックを通します。

  • 認証と権限の分離

    プレイヤーは署名付きトークンで認証し、ゲームサーバーからの報告や管理操作には別のキーと管理権限を使います。ランチャーが受け取る状態情報や配布物の情報には署名を付けています。

  • ログに残す情報を絞る

    API ログには日時・URL・応答コードなどを記録し、リクエスト本文・Cookie・認証ヘッダー・URL のクエリは記録しません。

  • 止まっても状況が分かる運用

    管理プロセスはバックエンド本体とは別に動き、本体が停止中でも管理画面とこのページを表示できます。デプロイでは、テストしたものと同じコミットを反映し、ヘルスチェックで起動を確認します。

  • 責任あるセキュリティテスト

    セキュリティの診断は自分たちの環境に対してだけ行い、見つかった問題を記録して修正しています。

AI-assisted development

開発での Claude の使い方

Sakura では、Anthropic の Claude を開発ツールとして使っています。

  • 実装・コード生成 — 機能の実装やコードの作成
  • コードレビュー・デバッグ — 変更の確認や不具合の原因調査

リポジトリには AI エージェント向けの作業ルール(AGENTS.md)を置き、ブランチの扱いや検証手順をそろえています。AI が作成した変更も、他の変更と同じく型チェックと自動テストを通し、main への取り込みはメンテナーが判断します。

About

Sakura について

名称
Sakura
形態
独立したソフトウェアプロジェクト。Epic Games, Inc. とは関係のない非公式のファンプロジェクトです。
目的
Fortnite 14.40(チャプター2 シーズン4)を、独自のバックエンドとゲームサーバーで遊べるようにすること。
開発範囲
デスクトップランチャー、バックエンド API、ゲームサーバー、マッチメイカー、アンチチート
現在の段階
限定テスト中(一般公開は未定)
提供地域
日本
公式ドメイン
projectsakura.team
ソースコード
現在は非公開です。

Contact

連絡先

Epic Games のアカウントや公式サービスに関するお問い合わせには対応できません。