Skip to content

什么是灵泛引擎 ​

灵泛引擎(LingFan Engine)是一个基于 .NET 10 + Avalonia 12 的跨平台视觉小说 / 互动叙事引擎。

核心特性 ​

⚡ 高性能 ​

  • 2K 下稳定 120 FPS
  • 零 GC 主循环,事件驱动异步等待
  • AOT(Ahead-of-Time)编译,冷启动 < 400ms

🎮 跨平台 ​

一套代码,全平台运行(基于Avalonia12,理论如此):

平台状态
Windows (x64/ARM64)✅
macOS (Intel/Apple Silicon)✅
Linux (X11/Wayland)✅
Android✅
iOS✅
Browser (WASM)⚠️ 实验性(待测试)

📝 双开发范式 ​

DSL 写故事,C# 写扩展——两者平权,可混合使用。

dsl
// .story 文件——用 DSL 写剧情
say "你好,旅人。" speaker="老张"
menu "你要怎么做?"
  "聊天" -> chat
  "离开" -> leave
csharp
// C# 写游戏逻辑扩展
public class MyScene : StoryScript
{
    public override async Task RunAsync()
    {
        await SayAsync("Hello!", speaker: "Narrator");
        var choice = await Ctrl.ShowMenuAsync("What?", new[] { "A", "B" });
    }
}

🔒 即解即用加密 ​

AES-256-GCM 资源加密,发布时按文件类型勾选加密,运行时自动解密。不需要打包,资源保持散文件部署。

🎬 多媒体 ​

  • 音频:BGM / SE / Voice / Ambient(通过 LingFan.Media 跨平台 AOT 媒体库,原生库随包自带、零系统依赖)
  • 视频:过场动画(通过 LingFan.Media 跨平台解码,支持 Windows / macOS / Linux / Android / iOS)
  • 立绘:Live2D 动态角色(管线/接口已实现,视觉渲染待接入——Cubism SDK 授权中)
  • 动画:过渡、补间、屏幕震动
  • 对话框模板:内置底部条 / 中央气泡 / 全屏 NVL,可自定义

设计哲学 ​

灵泛引擎遵循三个核心原则:

1. 数据驱动 ​

所有状态(场景、角色、变量、布局)都存在 Dictionary + List 中,是唯一真相源(SSOT)。UI 是数据的"提线木偶"——只读不绑。

2. 命令驱动 ​

所有操作封装为不可变的 ICommand,经无锁 Channel 异步投递,主循环消费,绝不阻塞渲染。

3. 非 MVVM(UI 只读) ​

引擎运行时不使用 MVVM——UI 只是状态容器的"提线木偶",只读不绑、不反向写回。所有变更都通过命令驱动状态容器(SSOT),UI 下一帧从状态重绘。MVVM 数据绑定只存在于 SDK 编辑器工具层,不进入引擎运行时。

4. AOT 优先 ​

所有代码必须 AOT 友好:JSON 用 source generator,命令路由按命令类型(Type)策略分发,表达式用 Parlot 解析器。零反射。

适用场景 ​

  • 📖 视觉小说 / 互动叙事游戏
  • 🎲 文字冒险 / RPG 对话系统
  • 🎮 剧情驱动的独立游戏
  • 🤖 也许,更多待发现的

下一步 ​

准备好了?让我们安装并创建第一个项目。

基于 .NET 10 + Avalonia 12 · Apache-2.0 License