AX 爱鲜报

Duality 2D 游戏开发框架

Duality 是一个基于 C# 与 OpenTK 的插件化 2D 游戏开发框架,自带可视化编辑器与场景系统,采用 MIT 协议开源,适合用 .NET 技术栈制作 2D 游戏与原型。

爱鲜报评分

0.0

0 人评分

1.4k

星数

否

中文

C#

主语言

是

活跃

47

贡献者

人工分析

EDITORIAL

推荐理由

Duality 把「引擎内核 + 可视化编辑器」打包成一套完整的 C# 2D 开发方案,组件化设计与插件机制让扩展相当自由,对于熟悉 .NET 的开发者上手成本低。项目已停止维护但最新版本稳定可用,适合学习 2D 引擎架构或做小型项目与 Game Jam。需要注意包管理器已失效,插件需手动从 NuGet 下载解压。

适用场景

  • 用 C#/.NET 开发 2D 独立游戏
  • Game Jam 快速原型与玩法验证
  • 学习 2D 游戏引擎与编辑器架构
  • 为教学/课程制作 2D 游戏示例
  • 在现有 Duality 项目上做二次开发与插件扩展

优点

  • C# + OpenTK 技术栈,.NET 开发者上手快
  • 自带可视化编辑器,场景、资源、组件编辑一体化
  • 插件化架构,核心与编辑器均可扩展
  • MIT 协议,商用与修改限制少
  • 跨平台可移植,非 Windows 平台可构建核心项目

缺点

  • 项目已无限期搁置,不再有新功能与官方支持
  • 包管理器因 NuGet API 变更而失效,插件需手动安装
  • 社区与中文资料较少,遇到问题主要靠读源码
  • 非 Windows 平台只能构建核心项目,编辑器项目需卸载
上手难度 进阶

Duality 是什么

Duality 是一个基于 C# 和 OpenTK 的 2D 游戏开发框架,采用插件化架构,并附带一套可视化编辑器。它把「引擎运行时」和「编辑器」放在同一个解决方案里,开发者可以在图形界面中搭建场景、挂载组件、编辑资源,再用 C# 编写游戏逻辑。

项目使用 MIT 协议开源,在 GitHub 上约有 1.4k Star,官方主页为 https://adamslair.github.io/duality,文档位于 https://adamslair.github.io/duality-docs。

核心特性

  • 组件化对象模型:游戏对象由组件组合而成,逻辑与数据分离,便于复用。
  • 可视化编辑器:内置场景编辑器、资源管理与属性面板,所见即所得地搭建 2D 场景。
  • 插件体系:核心、编辑器、渲染等模块都以插件形式组织,可按需裁剪或扩展。
  • 跨平台:基于 OpenTK 与 .NET,可在 Windows、Linux、macOS 上构建运行。
  • 示例项目:仓库自带多个示例工程,构建后可直接作为启动项目运行。

从源码构建

在 Windows 上可用 Visual Studio 或 MonoDevelop 打开 Duality.sln,选择「Build Solution」即可。命令行构建前需要先还原依赖:

nuget restore Duality.sln

构建产物统一输出到 Build/Output 目录,示例项目的产物位于各自的 Content/Plugins 子目录。运行示例时,可在 IDE 中将其设为启动项目,或直接使用 DualityEditor / DualityLauncher 作为启动项。

注意:在非 Windows 系统上只能构建核心项目,需要先卸载编辑器相关工程。

项目现状与注意事项

项目作者已明确表示 Duality 处于无限期搁置状态,最新版本稳定可用,但存在以下限制:

  1. 包管理器已失效:由于 NuGet API 变更,编辑器内的包管理功能无法工作。如需使用插件,可在 NuGet 上搜索 duality plugin,下载包后手动解压 dll 到 Duality 的 plugins 目录。
  2. v4 分支:master 分支上曾开发 v4,相对稳定,可按上述方式构建,但官方没有后续开发计划。

适合谁使用

如果你熟悉 C#/.NET,想找一个轻量、可读性强、带编辑器的 2D 框架来做小项目、教学示例或 Game Jam 原型,Duality 仍然值得一看;但若需要长期维护与活跃社区支持,建议优先考虑 Godot、MonoGame 等仍在持续更新的方案。

评论

登录后才可评论与评分

0 条评论

  • 暂无评论,来写第一条吧。