Logo
なぜエンジンを書き直したのか:入力、構造、そしてネイティブ Mod
なぜエンジンを書き直したのか:入力、構造、そしてネイティブ Mod

なぜエンジンを書き直したのか:入力、構造、そしてネイティブ Mod

fnf fnf
2026年7月1日
6分で読める
why-engine-overhaul

The Funkin’ Crew が Friday Night Funkin’ のコンテンツ更新をいったん止め、基盤から書き直すと発表したとき、多くのプレイヤーは「そこまでする必要があるのか」と感じました。旧版もひとまずは動いていたからです。

このページでは、FNF V-Slice の書き直しを構造面から見ていきます。旧プロジェクトがなぜ限界に近づいていたのか、入力まわりがどう進化したのか、そしてなぜ公式が独自のネイティブ Mod 路線を整えたのかを整理します。

対象読者:新規プレイヤー

最終確認日:2026-07-01

確認ビルド:デスクトップ版 v0.8.4(2026-03-26)と Android v0.8.5 hotfix(2026-04-06)

1. Ludum Dare の原型では限界が見えてきた

Friday Night Funkin’ は 2020 年 10 月の Ludum Dare 47 で生まれました。ジャム作品としては「まず作る」ことが最優先ですが、プロジェクトが拡大し続けると、その即席の土台は保守面で弱さを見せ始めます。

2022 年頃には、旧コードベースは安全に拡張しづらい状態になっていました。Tha V-Slice では、旧エンジンが「duct tape でつながっている」ような状態だと表現されています。

問題は主に二つでした。

  • アセットやメモリの扱いが弱く、大きなカスタムコンテンツで不安定になりやすい
  • コンテンツとコアコードが密結合で、曲追加、差し替え、UI 改修のたびに本体側を触りやすい

PC、モバイル、そして長期的な商用展開を見据えるなら、もっとモジュール化された構造が必要でした。V-Slice の重要な目標の一つは、エンジンロジックとゲームデータを分け、今後も拡張できる基盤を作ることでした。

旧構造の密結合と V-Slice のモジュール化を比べる図

図 1 - 著者作成図。密結合な構造からモジュール化された構造への変化を説明するためのものです。

2. 入力系は一度で完成したわけではない

リズムゲームでは、入力処理の質は体感に直結します。判定が不安定だったり、フレーム落ちで押したはずの入力が取りこぼされたりすると、プレイヤーはすぐに気づきます。

旧 FNF は古い HaxeFlixel 系の入力処理に依存しており、密度の高い譜面や負荷時の取りこぼしがよく話題になっていました。

V-Slice 時代の入力改善は、一気に完成したのではなく段階的に進みました。

初期 V-Slice から SDL3 までの入力進化図

図 2 - 著者作成タイムライン。公式リリースノートをもとに整理。

第 1 段階:v0.3.0 の初期 V-Slice

2024 年 4 月の初期 V-Slice は、いきなり SDL3 に移行したわけではありません。まず SDL2 ベースの経路を大きく見直し、描画ループの乱れが入力検出へ及ぼす影響を減らそうとしました。

第 2 段階:v0.8.4 で SDL3 へ

v0.8.4(2026-03-26)では、公式デスクトップ版が SDL2 から SDL3 に移行しました。公式リリースノートでは、より応答性が高く、より正確な入力になったこと、そしてコントローラー対応も改善されたことが説明されています。

そのため、同じ V-Slice 時代でも、初期 v0.3.x と後期 v0.8.4+ とでは体感差があって不思議ではありません。

3. 公式のネイティブ Mod 体系はどう整えられたか

V-Slice 以前、公式ベースゲームには成熟したネイティブ Mod サンドボックスがありませんでした。だからこそ、多くの制作者が Kade や Psych のようなコミュニティエンジンへ流れていった面があります。

V-Slice 以降、公式は独自の Mod 路線をより明確にし、その中心にあるのが次の二つです。

Polymod

Polymod は、公式版にサンドボックス型のファイル読込レイヤーを与えます。昔のように本体ファイルを直接上書きするのではなく、mods/ ディレクトリからリソースを動的に注入できます。

この方式の利点は:

  • 導入が安全
  • 問題が起きても元に戻しやすい
  • 公式の長期アップデートと噛み合わせやすい

v0.3.2 以降では ZIP 形式の Mod も扱えますが、_polymod_meta.json は引き続きアーカイブ直下に置かれている必要があります。

Polymod によるサンドボックス型の読込を示す図

図 3 - 著者作成の概念図。Polymod のリソース注入イメージを説明するためのものです。

HScript

多くのコミュニティエンジンは Lua ベースのゲームプレイスクリプトを使いますが、公式 V-Slice 系は HScript を採用しています。これは Haxe に近く、公式コードベースとの親和性が高い仕組みです。

プレイヤーと制作者の観点では、ここから次のことが言えます。

  • Psych / Kade の Mod は公式版へそのまま持ち込めない
  • 公式エンジン向け Mod は Polymod と HScript を前提に作られる
  • 公式路線は「コミュニティ全体との共通規格」より、「公式エンジンとの深い整合性」を重視している

参考資料

公式ソース

補足資料