【招募合作者 & 思路梳理】关于Infernux的一切

Infernux 已经有一套能跑通 2D/3D 游戏的基础能力了,但单靠我一个人维护,越来越吃力。即使有 AI 辅助,仍然需要人投入精力去讨论设计、做技术取舍、维护具体模块。所以我想找一些认同这个方向的人,一起把它继续做下去。

愿景:我们想做一个怎样的引擎?

我个人很喜欢把游戏引擎分成三个不同的类别。第一类是DOOM那个年代常见的、主要面向特定游戏的引擎,或者说叫技术框架。 先有一款想做的游戏,再围绕它的玩法、画面和性能需求构建技术。

第二类,是以 UE、Unity 为代表的通用游戏引擎。 它们不再只服务某一款游戏,而是为不同类型的游戏、不同规模的团队提供一套可复用的开发环境。

那Unity之后,下一类引擎会是什么样的呢?现在大家还没有形成共识。而Infernux希望在这里押注的是,面向 AI 深度融入游戏开发与运行生态的引擎。换句话说,是Agentic Gaming Runtime。

我并不想做什么类似于“嘿快来看,我的引擎配上随便几个SKILL再加上一点harness工程就可以一句话生成骑马与砍杀”的东西,因为我个人认为引擎还是需要人的审美、架构与设计,而非完全交由一句自然语言去把控。因此你不会得到一个有额外聊天窗口的翻版Unity,上面还写着你的昵称,有一个聊天框问你今天想做些什么。

我想要的是 人工智能能够自然地成为游戏的一部分,无论是大模型还是小模型。 开发者可以方便地在游戏里使用Torch或者其他可能的神经网络库,去做强化学习的智能NPC、神经渲染、动态生成的交互式动画。模型需要和其他资产一样,可以随游戏一起发布,不需要每个项目都重新搭建一套连接机器学习框架与引擎的管线。这也是引擎选择Python作为脚本层的原因之一,它拥有目前世界上最健全丰富的神经网络框架,github上随处可见各种形态各异的神经网络仓库,可以直接引入使用。也是同样的原因,这里不会去维护一份大家都习以为常的C Sharp绑定。

另一方面,引擎本身也确实应该适合大模型和 Agent 工作。但是我们不应该停留在聊天框层面,而是人和Agent可以围绕同一个项目协作去共同调试同一个项目,而不互相干扰。

Infernux 就是我对这个方向的一次探索。它长期仍然会是一款具备通用开发能力的游戏引擎,但我不想只把它做成另一个功能清单相似的 Unity。这种把代码、模型、游戏世界和开发工具放在一起重新思考的方式,很契合我个人的技术品味,也是我愿意继续投入这个项目的原因。

如果你也对这个问题感兴趣,欢迎一起来探索。我们不必先对所有答案达成一致,可以从具体的功能、样例和真实问题开始,一点点把这个方向做出来。

现状:我们有什么,现在正在做什么?

从基本功能的完整度来看,引擎基本已经有了一套2D/3D渲染、动画、材质、着色器管理、游戏逻辑、物理、状态机、粒子系统、音频、后处理与自定义着色器了,大概可以放心地进行一个游戏的开发了。你可以点击这个链接,看看我使用Infernux搭建出的一个游戏的PV:Changeable: 改变世界的魔法。这也是我和团队的小伙伴们会在后期长线开发的独立游戏。

目前,我主要在 GitHub 上 041/ 开头的开发分支里推进下一轮更新。这个阶段的重点,是补齐实际做游戏时遇到的缺口,同时为后续的神经网络接入整理好基础设施。

补齐通用游戏开发的基础能力。 包括世界空间的 UI 绘制、运行时可修改的物体网格,以及 OnMouseDown 等更方便的 Unity Style API。我希望引擎不只是能展示一些技术效果,也能让人顺手地把一个游戏做出来。这部分会尽量由实际项目中的需求推动,而不是单纯对着其他引擎的功能表打勾。

继续完善插件系统。 在现有 InxPackage 机制上,继续打磨插件的安装、更新、资源与脚本刷新,以及编辑器内容和运行时内容的边界。后续的模型能力、开发工具和平台支持,也希望尽量通过清晰的扩展接口接入,而不是什么东西都往引擎核心里塞。

更强的高性能计算,以及为神经网络的引入做准备。 我们引入了Taichi,将 CPU 上的 JIT 编译和 GPU Kernel 明确区分,分别通过 inx.jit.compile 和 inx.compute.kernel 表达。这里的目标还包括理清计算在哪里执行、数据由谁持有、什么时候需要同步,为后续模型推理与引擎资源的互操作打好基础。得益于Taichi带来的GPU高性能计算,我们现在可以以大约1000帧的速度渲染一个黏糊糊的软体:

更新依赖,清理该退休的旧代码。 后续接入神经网络,会涉及不少内存、显存、资源生命周期和同步问题。我希望先把已有的实现和接口整理清楚,减少重复路径和历史包袱,而不是让新的复杂度继续叠在旧问题上。

近期重点会做什么?

2026 年剩下这几个月,我希望主要围绕三个方向推进。具体的实现范围和节奏,会根据实际验证结果和参与维护的人力调整。

第一,打通模型从开发到游戏运行的完整流程。 逐步完善模型资产、输入输出绑定、推理执行和构建发布,让模型不仅能在开发环境里跑起来,也能成为游戏中可以配置、替换、调试和交付的一部分。开发时方便使用机器学习生态,发布时则明确目标平台需要哪些运行依赖,而不是把作者电脑上的整个训练环境打包给玩家。

第二,用具体的玩法和渲染案例验证设计。 围绕神经网络驱动的角色行为、交互式动画或神经渲染,选择范围可控的组件和样例,探索模型如何与场景数据、游戏逻辑及 RenderGraph 配合。比起先设计一套包罗万象的接口,我更希望先把几个真实案例做完整,再从中提炼出其他开发者也能复用的能力。

第三,让引擎更可靠,也更容易参与。 持续改善保存与加载、脚本和资源刷新、Play/Stop、插件生命周期、跨平台构建与回归测试,同时补充文档、样例和模块说明。既要让使用者少踩坑,也要让想参与开发的人,不必先读完整个仓库才能动手。

当然,我们不会为了加入神经网络,就放弃通用引擎应有的基础能力。场景、物理、音频、动画、UI、资源管理和发布流程,仍然需要持续建设。神经网络应该扩展开发者的选择,而不是让普通游戏开发变得更困难。

怎样参与

引擎本身是一个很大很大的工作,很难有人一下子就解决一整个宏大的命题,即使借助AI神力也不行,例如各种平台的适配等。因此,从一个问题、一处文档、一个测试或一份样例开始,都很欢迎。

尤其想强调的是:非常鼓励大家提 Issue,不会写引擎代码,也完全可以参与。 Bug、文档里讲不清楚的地方、不顺手的工作流,以及“我想做某件事,但现在不知道该怎么实现”,都值得讨论。你不需要先找到问题的根因,更不需要为了提一个 Issue,就先把它修好。

关于反馈!反馈问题时,尽量带上引擎版本、运行平台、复现步骤,以及预期和实际发生的情况。日志、截图或最小复现项目也会很有帮助。还没有整理清楚的想法,也欢迎先在社区里聊。一次清楚的反馈,有时比一个新增功能的 PR 更能帮助引擎前进。

如果你已经有明确的修改方案,欢迎直接提交 PR;涉及较大的架构调整或新模块时,建议先开 Issue 交流目标、范围和方案,避免大家投入很多时间之后才发现方向不一致。我会认真看,也会尽量及时回复和审查。

如果你希望长期参与,或者负责更具体、更核心的工作,也欢迎给我发邮件:

chenlizheme@outlook.com

对于希望长期参与的小伙伴,我希望你至少深入了解了下图所列出的各种技术中的其中一种。 它有点大,你可能需要点开并放大才能查看到清晰的信息:

可以聊聊你做过的东西、感兴趣的方向,以及希望以什么方式参与。我们也可以交流彼此对架构、代码质量和技术取舍的想法,看看 taste 是否合拍,再一起确定适合推进的课题。没必要一开始就承诺长期投入,先合作解决一个具体问题,也是很好的开始。

我也在考虑,在个人能力允许的范围内,拿出一些预算尝试任务悬赏、贡献奖励,或围绕具体模块开展付费合作,甚至办一场由这个引擎引发的 Gamejam。 具体形式、预算和规则我还没有确定;但如果开始实行,会先把适用任务和奖励方式说明白。无论有没有报酬,有价值的 Issue、问题复现、测试、文档和持续维护,都会被认真对待。

欢迎使用 AI 辅助开发,但希望提交者能够理解自己的改动,解释关键设计,并提供必要的验证。比起一次提交很多代码,我更看重一个改动是否清楚、可靠,以及后续能否维护。

不管是来写代码、提问题、做样例,还是一起讨论某个设计,只要你也对这个方向感兴趣,都欢迎加入。

4 个赞

话说能考虑在引擎层面原生支持ui上的vfx不?在unity和unreal做起来其实也不麻烦但是感觉不够舒服,要是能有类似GitHub - mob-sakai/ParticleEffectForUGUI: Render particle effect in UnityUI(uGUI). Maskable, sortable, and no extra Camera/RenderTexture/Canvas. · GitHub 的方案感觉还挺好的

还没想过居然可以这样,可以纳入排期准备一下~

顺带推荐一下同作者的GitHub - mob-sakai/UIEffect: UIEffect is an open-source package that allows you to intuitively apply rich UI effects directly from the Inspector or via code. Combine various filters, such as grayscale, blur, and dissolve, to decorate your UI with a unique visual style! · GitHub 这个其实也挺好玩的

感谢支持~排了下时间 UI的优化如果我这里支持的话可能要等0.4.8版本左右了,因为目前Screen Canvas和正在进行的World Canvas的实现方式不是特别优雅,是通过imgui+一些奇怪的动态解析操作来实现的,目前不太好接着改去支持在imgui的pass里额外起一个粒子pass了,不过这两个仓库真的提供了非常漂亮的新视角,我完全没想过要在ui层做一层VFX,后续我会持续关注的,再次感谢~

1 个赞

要不先定个编辑器上的imgui式的过渡解决方案先?这样大伙想开发插件功能啥的也可以先用imgui顶一下,后续UI进行大的变动也可以不管这个过渡方案,等比较稳定的时候大伙库再考虑迁移到新的UI方案上

1 个赞

可能是我前面没说清楚:后续需要调整的是游戏里的 Screen Canvas 和 World Canvas,不是编辑器的 UI 方案。

编辑器这边会长期保留 ImGui,不会把它当成临时过渡方案。Unity 的编辑器扩展已经验证了即时模式 GUI 这条路线是可行的,所以后续编辑器 UI 的扩展也会继续基于现在这套框架。这里说的是同类技术路线,Unity 的 IMGUI 和我们使用的 Dear ImGui 并不是同一个库。

目前 UI 系统的调整主要涉及控件实现和渲染方式,例如 Text 的渲染策略、输入框,以及世界空间 UI。因此大家可以基于现有的编辑器窗口和控件接口开发插件,不需要等游戏 UI 重构完成。我们需要继续完善的是这套扩展接口和文档,而不是另外做一套过渡方案。

041 正在补充世界空间 UI 等功能,插件相关的问题也在同步修理,进展可以看这个 PR #81。这一轮涉及的改动比较多,其中一项是引入 Taichi,让开发者可以通过 Python 编写高性能并行计算逻辑,而不必直接手写 compute shader,因此整体推进时间也比较长。

其实就是这句给我整偏了,我看编辑器ui是imgui的,以为你准备整个什么编辑器运行时大一统的方案所以会出现imgui里需要加粒子pass的操作 :melting_face:

其实确实有往“大一统”方向做的想法,不过基础仍然是 ImGui,并不是准备换掉它。我前面表达得不够准确:希望统一的是底层绘制能力,以及可以复用的控件能力,不是要求编辑器和游戏 UI 的使用方式完全一样。

例如,需要特殊效果时,可以把 UI 先渲染到一张纹理,再将它贴到屏幕或世界空间里的 quad 上,接入引擎的多 pass 渲染流程,做模糊、发光,或者与粒子效果组合。当然,不需要这些效果的 UI,也不必全部绕一遍离屏渲染。(现在其实有camera overlay方案来服务这个需求,但是它不够优雅。不,不仅是不够优雅,它简直太暴力了…)

这与 ImGui 的机制并不冲突:它提供绘制数据,具体画到哪里、怎样合成,可以由我们的渲染后端决定。所谓接入粒子 pass,也不一定是让 ImGui 自己实现粒子系统,而是让 UI 和粒子能在引擎的渲染流程里组合起来。

所以方向是继续围绕 ImGui 深化,而不是先用它过渡、以后再集体迁移。

懂你意思,是在整个渲染流程上的“大一统”,而不是单纯业务逻辑框架上的“大一统”

现在bro对于新功能进入引擎的维护有什么想法吗?我预期先通过插件的形式提供一些gamplay有关的功能,比如基础的存档功能什么之类的,迭代到一定的程度再考虑是否需要并入引擎里面 :thinking:

我的总体目标是:引擎本体只保留 2D/3D 核心能力,其余全部按需插件化。这样用户能按需下载、项目体积更小、维护边界也更清晰,这一策略和godot、unity还有blender是类似的。

具体分三层:

第一层:核心改动 → 直接 fork 官方仓库维护
比如渲染策略优化、序列化方案调整。这类改动会触及引擎内部数据结构和关键路径,插件机制无法安全隔离,必须在上游仓库做。

第二层:非核心功能 → 独立插件开发和维护
比如存档、自动寻路、地形编辑器。它们只依赖公开 API,可以独立迭代。早期作为第三方插件存在,等足够完善、被社区验证后,再收录进内置插件注册表(类似现在的 Android/Windows 构建依赖插件),但是不会在下载引擎时就立刻安装,一方面是因为用户不会天然需要所有平台的构建,另一方面它们的尺寸太大了,会导致用户下载的引擎包体极速膨胀。

第三层:重要内置插件 → 直接进引擎 wheel 包
比如 MCP 插件。这类插件是引擎开箱体验的一部分,用户不应该感知到“还要额外装”,所以随引擎一起安装。

判断一个功能进哪一层,我会看三点:是否与底层强耦合、是否所有项目都需要、是否在性能关键路径上。

1 个赞

给博主推荐一位B站博主“吉十兆”,我认为你们可以强强联合,吉十兆老师也在一个人自研引擎,关注有几年了,也一直在维护,吉十兆老师好像在渲染、光追优化和人物等方面做得更完善?看他做了好几年了。(本人是美术方向,对引擎其他方面了解不深入,认为吉士兆老师渲染优化算蛮厉害)吉十兆的个人空间-吉十兆个人主页-哔哩哔哩视频,目前看来,吉十兆老师那边的短板以及没有涉及到的刚好是博主的优点和强项,真心希望博主引擎早日完善,就可以用来发开角色扮演类游戏了 :face_blowing_a_kiss:

感谢关注~之前和对方交流过,目前感觉双方想做的方向不太一样。对方更希望做面向 AAA 级游戏的大型光追系统,而我更希望把 Infernux 做成一套完整的且开源的通用游戏引擎,有传统引擎应有的编辑器和开发工具,再围绕神经网络探索一些自己的特色。这个引擎也是我的毕设方向:一个神经网络原生的游戏引擎,把以往只能由大公司专业工程师去调制的神经网络技术(DLSS等)下放给更多的普通人、独立游戏开发者。

具体来说,我可能会做一个面向风格化版本的DLSS5、做轻松快捷模拟流体软体布料等等物体的神经网络动力学物理、探索用可控、可训练的强化学习模型承担一部分原本需要手写行为树的工作,此外还有 Agentic Editing / Runtime,让智能体参与开发、资产生成和游戏测试,也支持运行时的角色交互,以及神经 PCG 等工具。

不过这些都是未来两年的长期方向,毕竟我还有两年才毕业,hhhh。

下个版本会先更新 Infernux Tween,一个对标 Unity DOTween 的插件,同时做一系列性能优化,并接入最基础的神经网络能力。或许到时候就能直接在引擎里训练一个简单的角色移动模型了~另外,我最近也和一家机器人仿真企业、来自 Unity 的朋友聊过合作,想尝试为游戏和仿真引擎做一套共用的 Agent Harness,首批考虑接入 Unity、Infernux 和对方的机器人仿真引擎~

我不确定我的精力是否足够…不过下个版本我还想尝试实现我们引擎自己的光追方案!思路大概会参考《纪元 117》在GDC的分享。我希望它尽量通用、开箱即用,目标是在无需烘焙的情况下,探索能够达到 200 FPS 以上的轻量光追效果。相应地,也会在光追效果的精细程度上做一些取舍。

我有点中二,但这些更新会让我觉得,引擎正在迈向一个新的阶段:基础设施终于逐渐齐全,我开始能在这套基础上,做一些真正属于 Infernux 的东西啦~

1 个赞

另外也欢迎基于引擎目前的版本做一些开发上的尝试,中间如果有各种所需的特性也可以和我反馈哇,我会根据反馈动态排期不同需求,优先完成被反馈的且重要的特性~

1 个赞