什么是灵泛引擎
灵泛引擎(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
"离开" -> leavecsharp
// 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 对话系统
- 🎮 剧情驱动的独立游戏
- 🤖 也许,更多待发现的
下一步
准备好了?让我们安装并创建第一个项目。