引擎容器——Sonolus 不是单一音游
核心区别:容器 vs 独立游戏
传统音游(比如世界计划、BanG Dream!)是独立的应用——它们自带游戏引擎、内置歌曲和谱面,装完就能直接玩。每个游戏有自己独特的判定逻辑、视觉风格和操作方式。
Sonolus 则不同。它只提供一个通用的运行框架,具体的游戏逻辑、判定规则、关卡数据全部由外部提供。打个比方:
- 传统音游 = 一台预装了操作系统和所有软件的笔记本
- Sonolus = 一个空的电脑机箱 + 通用操作系统,装什么由你决定
这种架构带来了极大的灵活性——你可以在同一台手机上,通过切换服务器和引擎,体验完全不同的音游玩法。
三要素:引擎 + 服务器 + 资源
要让 Sonolus 真正跑起来,需要三个要素配合:
引擎(Engine):决定游戏的判定逻辑和操作方式。比如"世界计划引擎"的多轨下落判定、"osu!mania 引擎"的按键配置。引擎由 Sonolus.js 或 Sonolus.py 脚本编写,加载到 Sonolus 中运行。
服务器(Server):托管关卡数据、皮肤、背景、音效等资源。Sonolus 本身不附带任何服务器地址,需要你手动添加社区维护的服务器。
资源(Resource):具体的关卡谱面、音频文件、皮肤样式、背景图片、粒子效果等,都是从服务器按需下载的。
为什么这样设计
Sonolus 的设计理念来自社区对"一个应用玩遍所有音游"的需求。通过脚本化的引擎容器架构:
- 开发者不用为每种音游写一套独立应用,只要写引擎脚本
- 玩家不用在手机上装五六款音游,一个 Sonolus 就能玩遍社区服务器
- 谱师可以专注于做谱面,不用担心游戏引擎的更新换代
和模拟器的区别
很多人会把 Sonolus 和音游模拟器混为一谈。实际上 Sonolus 更接近一个可扩展的运行时环境:
- 它不模拟任何特定游戏的硬件或平台,而是让你用脚本重新定义游戏规则
- 理论上,只要有人写出对应的引擎脚本,任何音游玩法都能在 Sonolus 上重现
- 甚至可以创造出在原版游戏中不存在的全新玩法组合