不靠商业引擎,也能做出好游戏
当你打开 Steam 商店,看到《Celeste》这样的独立游戏时,可能会好奇:它是用什么工具开发的?答案可能出乎意料——这款游戏的开发者没有使用 Unity 或 Unreal 等商业游戏引擎,而是选择自己构建轻量级工具。这在 2025 年依然可行吗?
2025 年 5 月,独立开发者 Noel Berry 发表了一篇文章,分享他制作游戏时不使用商业引擎的经验。作为《Celeste》的联合开发者,他已有 20 年游戏开发经验。这篇文章在开发者社区引发热议。许多人以为制作游戏必须依赖 Unity、Unreal 这样的「大而全」引擎,但 Berry 指出,这些引擎往往带来不必要的复杂性——当它们突然改变商业政策或推出破坏性更新时,开发者只能被动应对。
商业引擎通常提供开箱即用的功能,但对小型团队来说,90% 的功能可能永远用不到。更糟的是,引擎的默认实现常常不符合具体需求,开发者最终仍要重写核心功能。Berry 直言:「当我用 Unity 时,项目后期几乎全是我自己写的工具,引擎只成了一个漂亮的 UI 外壳和渲染器。既然如此,为什么还要用它?」
轻量级工具的实际选择
Berry 的解决方案是用现代 C# 语言搭配开源框架。C# 在 2025 年已大幅改进,支持动态数组栈分配、热重载(通过 dotnet watch 实时更新代码),且性能足够满足游戏需求。他特别提到,C# 的反射功能让编辑器工具开发变得简单——只需几行代码就能实时检查游戏对象状态。
跨平台支持方面,他使用 SDL3 作为底层抽象层。这个开源库处理窗口、输入、渲染等基础功能,支持 Windows、Linux、Mac、Switch、PS5、Xbox 等平台。SDL3 的 GPU 抽象层能自动适配 DirectX、Vulkan 和 Metal,无需开发者手动处理复杂图形 API。对 2D 游戏来说,这已足够高效。
编辑器工具则依赖 Dear ImGui。这个轻量级 GUI 库能快速构建界面,连《塞尔达传说:王国之泪》都用它做调试工具。Berry 用它开发了自定义关卡编辑器,通过 C# 反射直接读取游戏数据,省去大量重复劳动。音频处理用 FMOD,虽然它是专有工具,但动态音频控制的需求让它成为必要选择。
为什么 Linux 成了开发主力?
Berry 完全转向 Linux 开发环境,只在测试时用 Windows。他认为 Windows 的商业策略越来越令人不适——例如强制 Microsoft 账户、系统更新带来的兼容性问题。而 Linux 提供了更透明、更可控的开发体验。
「现在我的 PC、游戏机、服务器和手机全是 Linux 平台,」他写道,「对于编程来说,Linux 比 Windows 更高效、更优雅。」当然,某些工具链(如 VS Code、GitHub)仍依赖微软生态,但开源社区的持续推动让 Linux 支持越来越好。
开发者社区对此有共鸣。一位评论者说:「用 SDL3 和 C# 开发,跨平台编译几乎无感。Native-AOT 让 C# 代码能直接编译成原生二进制,不再需要 IL2CPP 这类变通方案。」另一位指出:「在 Linux 上,我连编译速度都变快了——没有 Windows 那些后台进程的干扰。」
AI 真的能替代游戏开发?
文章提到 AI 时,评论区争论激烈。有人认为 AI 只是「为用而用」,比如用 AI 生成重复代码,但实际工作中更需要精准控制。一位开发者吐槽:「用 AI 写代码就像用计算器做除法——它可能更快,但算错时你根本不知道哪里出问题。」
但也有务实观点:「AI 在处理 JSON 序列化、基础类结构生成时很有用,能节省重复劳动。」还有人提到,如果 AI 速度提升 1000 倍,或许能直接生成完整游戏,但当前技术仍不成熟。
最犀利的评论来自一位独立开发者:「AI 是工具,不是魔法。它能帮你写代码,但无法替你设计一个有趣的游戏机制。」这呼应了 Berry 的核心观点——工具只是手段,核心始终是游戏内容本身。
3D 游戏是否必须用商业引擎?
有人质疑:2D 游戏或许能用轻量级框架,但 3D 游戏呢?Berry 回应称,即使做 3D,他也会自定义小型框架。例如《Celeste 64》就是用自定义工具在两周内完成的,没有复杂 3D 知识。
但社区普遍认为,3D 项目确实更依赖成熟引擎。一位资深开发者分享:「Talos Principle 2 用 UE5 后画面大幅提升,但性能却不如前作。这说明引擎虽强大,但过度依赖可能导致优化失控。」
更多人指出,Unity 和 Unreal 的普及让游戏视觉风格趋同——「同样的光照模型、同样的模糊效果、同样的纹理加载弹窗」。而早期游戏因引擎差异各具特色。正如一位评论者所言:「当所有游戏都用同一个引擎,它们就失去了灵魂。」
重要教训:别为了做引擎而做游戏
社区反复强调一个关键点:不要陷入「做引擎」的陷阱。一位开发者分享经验:「我曾花两年写引擎,结果游戏没完成。后来我明白了——引擎只是工具,游戏内容才是核心。」
另一位独立开发者提到:「做《Metropolis 1998》时,我只添加了真正需要的功能。没有场景编辑器、没有复杂场景图,整个游戏只有 45 MB。」他的经验是:从游戏需求出发,只构建必要的工具。
对于新手,建议很明确:先做简单游戏,再考虑工具链。一位评论者说:「如果你连个 2D 平台跳跃游戏都做不出来,却想自己写引擎,那就像还没学会走路就想跑。」而像《Celeste》这样的成功案例证明,小团队用轻量级工具完全能做出精品游戏。
开发者的选择权
技术选择永远没有绝对答案。Unity、Unreal 适合大型 3D 项目;Godot 等开源引擎提供平衡方案;而轻量级框架如 SDL3、Raylib 更适合 2D 独立游戏。
Berry 的总结很精炼:「如果你觉得有趣,就去做。」这背后是开发者对创作自由的坚持——用最适合的工具,而不是被工具限制。正如一位评论者所言:「游戏开发的真正挑战,从来不是技术,而是让玩家感受到你倾注的热情。」
更多推荐

所有评论(0)