Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 43 additions & 33 deletions ROADMAP.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,15 @@ exclusive rows; the Japanese server is enabled.
- The server runs as a separate process, stores the player document and answers the game's
requests. The game sends it binary-encoded requests over HTTP.
- Launcher: chooses, downloads and verifies a resource version, and starts the server and the game.
- Packages for Windows x64, Linux x64 and macOS arm64, and a separate server package.
The Linux and macOS packages have not been tested on real machines; feedback is welcome.
- Stable launcher locations: the home folder, data, logs, program versions and resources can each
be changed, and existing content is moved along; settings and saves can be imported from the
folder of an earlier version.
- Checks for new versions and updates the game and the launcher itself in one click, downloading
the full package.
- When the server refuses a save, the game shows the error and the save location instead of
staying on the entry screen.

**Entry and movement**
- The flow and banner for entering MySekai.
Expand All @@ -33,18 +42,27 @@ exclusive rows; the Japanese server is enabled.
- Obstacles, gathering particles and holding limits.
- Notices and dialogs for obtained items.
- Gathering HUD: current tool, action icons, a hint bubble when a tool is missing, and the stamina bar.
- Hammer gathering for clearing a map in one action: hold to charge, cancel, target settings,
effects and sound, and the settlement of costs and rewards.

**Delivery, crafting and placement**
- The full delivery flow, with honor rewards and total rewards.
- The crafting screen and its result dialog, and the server replies for crafting and blueprints.
- The server rules for furniture conversion.
- The inventory screen, placing furniture from the inventory, and layout editing for floor furniture.
- The road and tile page: choosing a style, planning the paving, confirm and cancel, moving the
selection, taking back and saving; the inventory and placed objects update in the same layout
transaction.
- The weather page: choosing an environment from unlocked content, saved or discarded together
with the layout.

**NPCs**
- Pathfinding, conversations after pairing, overhead tweet bubbles, idle action decisions,
autonomous behaviour and furniture interaction.
- Target positions chosen from the original walkable cells, and the behaviour route while
waiting to talk.
- The layered NPC state machine of the Japanese 7.0.0 version, and conversations between
characters of different units.

**Weather**
- The weather phenomena pipeline, end to end: host lifecycle, sub-emitters, curves, raindrop quads
Expand All @@ -64,45 +82,37 @@ exclusive rows; the Japanese server is enabled.
- MCP server: lets AI clients start and drive native or browser instances, read state, run scripts
and capture frames.

**Plugin layer**
- The native program loads Luau plugins. Each plugin has a `plugin.toml` manifest: name, version,
the moly versions it supports, dependencies and conflicts. Which plugins are enabled is saved in
the personal profile; no plugin is enabled by default.
- Replaceable parts of the original logic are interfaces. A plugin can replace a provider as a
whole or for selected characters only; when two plugins provide the same interface and the
profile does not choose one, the game reports it by name at startup and does not start.
- Plugins can read scene state, subscribe to events, schedule asynchronous tasks, call game
actions and keep their own data.
- Each plugin has its own sandbox, a memory limit and a per-frame execution budget.
- Example plugins: a greeting example, and a scripted companion that walks, builds furniture with
a hammer, turns to react to the player and uses the furniture it has just built.

**Browser stage and text**
- The embedded stage is a separate program, `moly-stage`; the full game is provided separately.
The browser packages each contain WebGPU and WebGL2 builds.
- When Chinese is selected in the browser, matching official text from the Chinese server can
replace the Japanese display text; without a matching translation the Japanese text is shown.
The text pack, font pack and resource snapshot are versioned separately.
- The open-source Resource Han Rounded font is used.

**Data**
- Master tables are read at run time from the public per-region master repositories, with a
mirror as a fallback.

## 0.0.4 (in progress)

**Releases**
- Packages for Windows x64, Linux x64 and macOS arm64, and a separate server package.
The Linux and macOS packages have not been tested on real machines; feedback is welcome.

**Launcher**
- Stable locations: the home folder, data, logs, program versions and resources can each be
changed, and existing content is moved along.
- Imports settings and saves from the folder of an earlier version.
- Checks for new versions and updates the game and the launcher itself in one click, downloading
the full package.

**Game**
- When the server refuses a save, the game shows the error and the save location instead of
staying on the entry screen.

## 0.0.5: plugin layer and AI player
## Next release: remaining plugin layer and AI player

**Plugin layer**
- Each plugin has a manifest: name, version, the moly versions it supports, dependencies and
conflicts. Which plugins are enabled, and their settings, are saved per profile and managed in
the launcher.
- Replaceable parts of the original logic (NPC decisions, player control and others) become
interfaces whose default provider is the original implementation. A plugin can replace a
provider as a whole or for selected characters only.
- Plugins can read game state, subscribe to events and change the world through the same actions
as the UI.
- Conflicts are reported by name at startup: when two plugins provide the same interface and the
profile does not choose one, the game does not start. Human input always takes precedence over
plugin control.
- Plugin data is kept per plugin in the save; disabling a plugin does not delete its data.
- Plugins are written in Luau. The game generates type definitions for the plugin API from its
own type registry, so editors can type-check plugins.
- Plugins run in a sandbox and can use only the interfaces the game provides.
- The game generates type definitions for the plugin API from its own type registry, so editors
can type-check plugins.
- Human input always takes precedence over plugin control.
- Built-in plugins: the MCP agent interface, SD character switching and the AI player, each of
which can be turned on or off.

Expand Down
53 changes: 28 additions & 25 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,12 @@ moly 分两部分:
- 服务端作为独立进程运行,保存玩家文档并应答游戏的请求;游戏通过 HTTP 向它发送
二进制编码的请求。
- 启动器:选择、下载并校验资源版本,启动服务端与游戏。
- Windows x64、Linux x64 与 macOS arm64 的程序包,以及单独的服务端包。
Linux 与 macOS 包未在真机上测试,欢迎反馈。
- 启动器的长期稳定目录:主目录、数据、日志、程序版本与资源各自可更改,更改时迁移已有内容;
可从旧版本的文件夹导入设置与存档。
- 检查新版本,一键更新游戏与启动器自身,下载完整包。
- 存档被服务端拒绝时,游戏显示错误与存档位置,不再停在进入画面。

**进入与移动**
- 进入 MySekai 的入场流程与入场横幅。
Expand All @@ -31,16 +37,20 @@ moly 分两部分:
- 障碍物、采集粒子、持有上限。
- 获得提示与获得物对话框。
- 采集 HUD:当前工具、动作图标、缺少工具时的提示气泡、体力条。
- 一键清图的大锤采集:长按蓄力、取消、目标设置、特效与音效,以及消耗与奖励结算。

**配送、制作与摆放**
- 配送的完整流程,荣誉奖励与总奖励。
- 制作界面与制作结果对话框,制作与图纸的服务端回复。
- 家具转换的服务端规则。
- 背包界面,以及从背包摆放家具;地面家具的布局编辑。
- 道路/地砖页:选择样式、规划铺设、确认与取消、选中移动、收回与保存,库存与已放置对象随同一份布局事务更新。
- 天气页:按已解锁内容选择环境,与布局一起保存或放弃。

**NPC**
- 寻路、配对后的对话、头顶 tweet 气泡、待机动作决策、自主与家具互动。
- 按原版可行走格选取目标位置,以及等待交流时的行为路线。
- 日服 7.0.0 的分层 NPC 状态机,以及不同团体角色之间的对话。

**天气**
- 天气现象的完整链路:宿主生命周期、子发射器、曲线、雨滴面片等。
Expand All @@ -57,36 +67,29 @@ moly 分两部分:
- 用 JSON 脚本编排玩家、角色、相机、天气与服务端模拟面板。
- MCP 服务器:让 AI 客户端启动并驱动原生版或网页版实例,读取状态、运行脚本、截取画面。

**插件层**
- 原生端加载 Luau 插件;每个插件有 `plugin.toml` 清单:名称、版本、要求的 moly 版本、依赖与冲突。
启用与配置按个人配置保存,默认不启用任何插件。
- 原版逻辑中可替换的部分做成接口,插件可以整体替换某个提供者,也可以只针对某个角色替换;
同一接口有两个提供者而配置未选择时,启动时指名报告并拒绝启动。
- 插件可以读取场景状态、订阅事件、安排异步任务、调用游戏动作,并保存各自的数据。
- 每个插件有独立沙箱、内存限制和每帧执行预算。
- 示例插件:问候示例,以及脚本伙伴示例(行走、敲锤建造家具、转向玩家、使用刚建好的家具)。

**网页舞台与文本**
- 嵌入舞台作为独立程序 `moly-stage`,完整游戏另行提供;网页包各含 WebGPU 与 WebGL2 构建。
- 网页选择中文时,可用匹配的国服官方文本替换日服显示文本,没有匹配译文时显示日文;
文本包、字体包与资源快照分别版本化。
- 使用开源字体 Resource Han Rounded。

**数据**
- master 表在运行时从公开的各区服 master 仓库读取,镜像作为后备。

## 0.0.4(进行中)

**发布**
- Windows x64、Linux x64 与 macOS arm64 的程序包,以及单独的服务端包。
Linux 与 macOS 包未在真机上测试,欢迎反馈。

**启动器**
- 长期稳定的目录:主目录、数据、日志、程序版本与资源各自可更改,更改时迁移已有内容。
- 从旧版本的文件夹导入设置与存档。
- 检查新版本,一键更新游戏与启动器自身,下载完整包。

**游戏**
- 存档被服务端拒绝时显示错误与存档位置,不再停在进入画面。

## 0.0.5:插件层与 AI 玩家
## 下一版:插件层余项与 AI 玩家

**插件层**
- 每个插件有清单:名称、版本、要求的 moly 版本、依赖与冲突。启用与配置按档案保存,
在启动器里管理。
- 原版逻辑中可替换的部分(NPC 决策、玩家控制等)做成接口,原版实现是默认提供者;
插件可以整体替换某个提供者,也可以只针对某个角色替换。
- 插件可以读取游戏状态、订阅事件,并通过与界面操作相同的动作改变世界。
- 冲突在启动时指名报告:同一接口同时有两个提供者而未指定时拒绝启动;
人类输入始终优先于插件的控制。
- 插件数据在存档里按插件分开保存,停用插件不会删除它的数据。
- 插件用 Luau 编写;游戏从自身的类型注册表生成插件接口的类型定义,编辑器里即可做类型检查。
- 插件在沙箱里运行,只能使用游戏提供的接口。
- 游戏从自身的类型注册表生成插件接口的类型定义,编辑器里即可做类型检查。
- 人类输入始终优先于插件的控制。
- 内置插件:MCP 智能体接口、SD 角色切换、AI 玩家,各自可单独开关。

**AI 玩家**
Expand Down
2 changes: 1 addition & 1 deletion release-notes/v0.0.5.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,6 @@
- 游戏资源单独提供,不包含在程序发布包内。体验上述日服新增内容需要配套的 JP 7.0.0 资源;网页资源上线状态以站点当前提供的版本为准。
- 解压到新目录后通过启动器运行;保留原安装目录和存档。升级及目录迁移方式见[发布包说明](https://github.com/empty-sekai/moly/blob/v0.0.5/docs/release-package.md)。

本轮原生编辑与采集功能已由维护者实际体验验收。Linux、macOS 的构建通过不代表实机验收;WebGL2 提供构建,但本轮不宣称已完成播放验收。
Linux、macOS 的构建通过不代表实机验收;WebGL2 提供构建,但本轮不宣称已完成播放验收。

[完整变更](https://github.com/empty-sekai/moly/compare/v0.0.4...v0.0.5)
Loading