一个 SDK、一次克隆、一条 dotnet run。没有需要安装的启动器,
没有需要注册的编辑器,也没有需要预热的资产管线。
| 目标 | 你需要 |
|---|---|
| 所有目标 | .NET 10 SDK。引擎与示例项目都将 LangVersion 设置为 preview。 |
| Windows | Windows 10 build 19041 或更新版本、一块 Direct3D 12 GPU,以及 .NET MAUI / Windows App SDK 工作负载。 |
| Linux | Vulkan 1.2 驱动与加载器(libvulkan1)。纯 net10.0 — 无需 MAUI 工作负载。 |
| Android | API level 33 或更新版本且带 Vulkan 驱动,外加 android 工作负载。 |
| iOS / Mac Catalyst | Xcode 与对应的 .NET 工作负载。示例应用目标为 17.0;引擎库本身支持 15.0。 |
| Web | 启用 WebGPU 的浏览器,外加 wasm-tools 工作负载。 |
桌面与移动端共享一个项目文件,因为应用项目是 MAUI
单项目(UseMaui 加
SingleProject)。只有入口点因平台而异,
而且每个入口点都只有几行 — 参见
平台入口点。
Season.csproj 仅为移动端与 Windows 目标框架设置
UseMaui。Linux 目标是纯 net10.0,
Web 目标是 net10.0-browser;两者都不引入 MAUI。
MAUI 只被用作需要的平台上的打包与生命周期宿主,而不是 UI 框架
— 引擎自己绘制每一个像素。
确认你的机器已就绪的最快方式,就是运行那个同时驱动每一个子系统的应用。
git clone https://github.com/SeasonRealms/SeasonEngine.git
cd SeasonEngine
# Windows, Direct3D 12
dotnet run --project Apps/Engine/Engine.csproj -f net10.0-windows10.0.19041.0
# Linux, Vulkan
dotnet run --project Apps/Engine/Engine.csproj -f net10.0
# Web, WebGPU - the ASP.NET host serves the Blazor WebAssembly client
dotnet run --project Apps/EngineWeb/EngineWeb.csproj
| 项目 | 它是什么 |
|---|---|
Apps/Engine | 3D 参考应用。多目标 Linux、Android、iOS、Mac Catalyst,以及在 Windows 主机上的 — Windows。 |
Apps/EngineWasm | 同一个应用作为 Blazor WebAssembly 客户端(net10.0;net10.0-browser)。 |
Apps/EngineWeb | 托管 WebAssembly 客户端的 ASP.NET 宿主。这才是你要运行的那个。 |
Samples/Creator | 基于同一套控件的 2D 应用,拥有同样的三项目结构(Creator、CreatorWasm、CreatorWeb)。 |
Samples/Creator 是更轻量的那个:没有 3D 场景挡路,
所以面板与布局模型更容易看清。在 Windows 上你也可以安装
Microsoft Store 版本,
完全跳过工具链 — 参见 下载。
包在 NuGet 上,MIT 许可证:
dotnet add package SeasonEngine
或者从克隆中引用引擎项目,仓库里每个示例都是这么做的:
<ProjectReference Include="..\..\Season\Season.csproj" />
包版本仍处于 0.x 区间,API 仍在变动。项目引用只花你一行, 却换来了阅读任何让你惊讶的实现细节的能力。引擎类型上的 XML 文档异常详细 — 它记录了决策是为什么做出的,而不仅仅是一个成员做什么 — 本站上好几处犀利的解释都直接摘自其中。
你的项目需要与示例相同的多目标结构。与其从零组装,
不如复制 Samples/Creator/Creator.csproj:它是仓库里
最小的完整多目标项目文件,而且已经包含
项目布局中描述的资产项组与 Linux include/exclude 目标。