Show HN:C#游戏引擎,自带脚本语言和IDE
摘要
ArcadeMaker 是一个用 C# 编写的开源 2D 跨平台游戏引擎,具有自己的脚本语言和集成开发环境(IDE),灵感来源于 GameMaker 8。该项目尚未完成,作者希望获得社区贡献。
暂无内容
查看缓存全文
缓存时间: 2026/08/14 09:30
ArcadeMakerSources/ArcadeMaker 源代码:https://github.com/ArcadeMakerSources/ArcadeMaker # ArcadeMaker 使用该引擎制作的示例游戏视频(https://youtu.be/KRDHFFZZdIQ) ArcadeMaker 是一个简单的 2D 跨平台游戏引擎,包含自己的编程语言(其原型称为 Exp)和一个集成式 IDE。引擎和 IDE 本身是用 C# 编写的,但你在 ArcadeMaker 中编写游戏所用的语言是我自定义的语言,而不是 C#。目前,图形和音频后端由 MonoGame 驱动,支持导出到桌面、移动端和主机平台。我还计划添加一个 KNI 引擎实现,以支持 Web 导出。 这个项目尚未完成。但由于我只有很少的时间来开发它,我决定将其开源,希望其他人会感兴趣,并帮助把它变成一个真正可用的东西。ArcadeMaker 基于 GameMaker 8 设计,因此如果你曾经用过 GameMaker 8,你会觉得它非常容易上手。 — # 项目背景 ArcadeMaker 是在几年间分多个阶段构建的,不同部分是在我编程生涯的不同时期编写的。 - IDE 大约是三年前写的,当时我的编程技能与现在截然不同。 - Exp 语言是在 IDE 之后创建的,但仍然早于当前的核心引擎和 MonoGame 实现。 最初,ArcadeMaker 是一个基于 C# 的引擎,用户直接用 C# 编写游戏逻辑。在离开项目一段时间后,我最终创造了自己的编程语言,并决定回到 ArcadeMaker —— 用我的语言替换旧的 C# 脚本层,并围绕它重写核心引擎。 由于这段漫长且分散的开发历史,IDE 目前包含许多新的引擎后端尚不支持的功能。例如: - 父对象 —— IDE 中支持,但引擎中尚未实现。 - Dll 包管理器 —— 存在于 IDE 中,但目前没有任何作用(在引擎使用 C# 脚本时它有作用)。 长期目标是将新引擎的功能提升到与旧 C# 版本持平 —— 然后在此基础上大幅扩展。 — # 计划功能 - 在引擎中完整实现 IDE 中缺失的功能 - KNI 引擎后端,用于 Web 导出 - 更完整、更稳定的 Exp 语言版本 - 实现所有常见的日常游戏函数,例如 drawRect()、deactivateInstancesInRegion()、setRoomWidth() 等等 - 面向移动端和主机构建的跨平台模板 - 文档、教程和示例项目 — # 为什么开源? 我喜欢开发 ArcadeMaker,但我没有足够的时间以它应得的速度来开发它。通过开源,我希望其他人能够: - 尝试使用该引擎 - 改进语言和工具 - 添加缺失的功能 - 修复错误 - 帮助塑造项目的未来 如果你喜欢 GameMaker 风格的工作流,或者想为一个轻量级、对初学者友好的 2D 引擎做贡献,非常欢迎你加入。 — # 如何构建 1. 克隆仓库。 2. 在你喜欢的 C# IDE(Visual Studio、Rider 或 VS Code)中打开解决方案。 3. 还原 NuGet 包。 4. 构建项目。 5. 运行 IDE 项目以启动 ArcadeMaker。 6. (可选) - IDE 加载后,转到“文件 -> 打开项目”以从“tests/Example Projects”加载示例项目。 — # 贡献 欢迎各种形式的贡献: - 代码改进 - 错误修复 - 文档 - 功能提案 - 引擎后端实现 - 语言设计想法 在提交拉取请求之前,请先打开一个 issue 来讨论你的想法。目前我只是一个开发者,在空闲时间独自开发这个项目,所以文档确实非常缺乏。我会尽力改进,但请随时提出任何与项目相关的问题,我会回答所有问题! — # 许可证 本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。 — # 关于本 README 和 AI 使用的说明 我使用 GPT 帮助编写了这份 README 文件。既然提到了 AI,就多说几句:这个项目几乎 0% 的代码或架构是由 AI 生成的。唯一的例外是我使用 Claude 编写了用于碰撞检测的分离轴定理公式,因为那部分数学对我来说有点太难了。除此之外,所有内容 —— 引擎、IDE、语言、架构 —— 都是手写的。这并不是因为使用 AI 作为编程工具有什么问题。我知道它是软件开发未来的重要组成部分。只是我构建这个项目是为了乐趣和挑战,而且我个人更喜欢自己编写代码,而不是让机器替我完成。 在 AI 及其能力日益强大的时代,我仍然相信这个项目的完整版本会真正有用。ArcadeMaker 是一个对初学者友好的引擎,人们永远需要理解代码是如何工作的,即使他们最终不再逐行手写代码。学习这一点的唯一真正方法就是实际编写代码。除了学习之外,这个引擎也可以成为任何想独自制作游戏、不想依赖 AI 来完成所有工作的人的好工具。
相似文章
Show HN:Parin — 介于 raylib 与 Godot 之间的 2D 游戏引擎,使用 D 语言编写
Parin 是一个用 D 语言编写的 2D 游戏引擎,定位介于轻量库 raylib 与大型引擎 Godot 之间,强调代码驱动、模块化和开箱即用,内置像素物理、对话系统、动画与瓦片地图等常用功能。
Show HN: Homegames. 一个我开发了8年的开源游戏平台
Homegames 是一个免费的开源游戏平台,用户可以在浏览器中游玩、制作和分享游戏,并提供代码编辑器和实时多人预览功能。该项目自2018年起作为副业开发。
Show HN:Pyxel —— 内置美术与声音编辑器的 Python 复古游戏引擎
Pyxel 是一款开源的 Python 复古游戏引擎,提供类似复古主机的简约规格(16 种颜色、4 个声音通道),并内置美术与声音编辑器,方便制作像素风游戏。
Show HN:AI 制作的浏览器游戏,汇聚一处
一篇 Show HN 帖子介绍了 Playground Arcade,这是一个自动更新的网站,汇集了 700 多款由 AI 构建的浏览器游戏,提供游戏分类、创作者署名和手柄支持,并允许创作者提交自己的游戏。
Making a game in Visual Studio from 1997
一名资深开发者使用1997年的Visual Studio 6和纯C语言在Windows 7上搭建了双摇杆射击游戏框架,展示了固定时间步长、对象管理和OpenGL兼容模式等复古开发实践。