这个项目能做什么

Scythe 是一款基于 Raylib 的轻量级 C# 游戏引擎。它将现代渲染管线、完全集成的编辑器和运行时整合在同一个代码库中,强调可修改性和快速迭代。作者将其描述为处于开发早期阶段的个人爱好项目,尚未进入 Alpha 或 Beta 阶段,因此功能可能随时更改或移除,不建议作为商业项目的基础。 目标用户包括希望掌控引擎内部机制的独立开发者、对可修改和可脚本化游戏架构感兴趣的开发者、围绕渲染、物理和工具链的学习型项目,以及偏好代码优先工作流而非黑盒引擎的人。 架构:采用基于组件的对象模型而非 ECS,编辑器和游戏执行共用同一个运行时。项目目标运行时为 .NET 10。 核心能力包括混合运行时/编辑器环境,以及通过文件系统监视实现热重载的集中式资源管理器。支持的资源包括模型(.fbx、.obj、.gltf)、纹理(.png、.jpg、.jpeg、.tga、.bmp)和着色器(.vs、.fs)。 图形:基于着色器的 PBR 渲染、带实时阴影贴图的动态光源、按深度排序的透明渲染队列,以及立方体贴图天空盒渲染。列出的后处理选项包括 SSAO、FXAA、SMAA、带抖动的 TAA、泛光、模糊、像素化、交叉影线、交叉缝合、Sobel 边缘检测、扫描线、鱼眼、梦境视觉、铁血战士、灰度和色调分离。 动画:带网格蒙皮和骨骼动画的骨骼动画系统,以及用于平滑过渡的动画混合。 物理:完全使用 C# 编写的 Jitter2 集成,支持动态和静态对象。 编辑器:基于 ImGui 的停靠式界面,窗口可自由停靠,提供分层结构的层级关卡浏览器、实时对象属性面板、撤销/重做系统,以及内置音乐播放器。 脚本:C# 脚本支持自动编译并可访问引擎组件,同时为编辑器和脚本层提供动态鼠标和键盘输入管理。 README 明确说明了该项目不是什么:不是完整的 AA/AAA 级引擎,不以 ECS 为先,也不专注于可视化脚本。 构建需要 .NET SDK 10.0 或更高版本。克隆仓库,进入目录并运行 dotnet build。运行使用 dotnet run,会打开一个项目启动器,可以在其中打开或创建项目;按 F5 进入运行模式。 许可:项目采用 MIT 许可。它使用 Raylib 的 C# 绑定和 rlImGui(zlib/libpng),以及 ImGui、Newtonsoft.Json、Jitter Physics 2、NLayer 和 AssimpNet(MIT)。许多后处理和其他着色器来自或基于 Raylib 示例。捆绑字体包括 Font Awesome、Montserrat 和 Cascadia Code。示例资源按 CC BY 4.0 协议归功于其创作者。