# Infernux **Repository Path**: iliii/Infernux ## Basic Information - **Project Name**: Infernux - **Description**: Open-source game engine with a C++17 / Vulkan runtime and a Python production layer. - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: https://github.com/ChenlizheMe/Infernux - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-04-23 - **Last Updated**: 2026-05-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Infernux logo

Infernux

开源游戏引擎,采用 C++17 / Vulkan 原生运行时,以及负责生产工作流的 Python 层。

MIT License Version Platform Python C++ 17 Vulkan

English · 官网 · 文档 · 技术报告 · 快速开始

## 运行画面

Infernux 编辑器中运行 10000 个立方体场景的静态截图

编辑器处于 Play 模式时的实际运行画面截图。

## 项目概览 Infernux 是一个从零开始构建的游戏引擎项目,目标不是把运行时和编辑器变成黑盒,而是让开发者能够真正掌控运行时能力、编辑器工作流与脚本层扩展面。 当前架构由三部分组成: - 使用 C++17 / Vulkan 编写的原生运行时,负责渲染、场景系统、物理、音频和平台服务。 - 使用 pybind11 构建的绑定层,把原生能力暴露给 Python。 - 负责玩法、编辑器工具、内容工作流、构建自动化和渲染编排的 Python 生产层。 这个分层的目标很直接:性能敏感部分留在原生层,日常生产与迭代留给 Python,同时保持代码结构足够清晰,便于团队理解、扩展和维护。 ## 当前能力范围 Infernux 目前以 Windows 为主的技术预览版。项目已具备可用的编辑器与运行时核心,但仍应按持续演进的引擎来评估,而非成品商业平台。 当前已具备的核心能力包括: - Vulkan 前向/延迟渲染、PBR、级联阴影、MSAA、Shader 反射与后处理。 - 可在 Python 中编排的 RenderGraph 与 RenderStack API。 - Jolt 物理:刚体、碰撞体、场景查询、回调与层过滤。 - 基于 GUID 的资产、依赖追踪、场景序列化、预制体工作流与 Play 模式隔离。 - 集成编辑器:Hierarchy、Inspector、Scene View、Game View、Project、Console、UI 编辑与构建设置。 - Python 侧组件生命周期、协程、序列化字段与脚本热重载。 - 基础运行时 UI:Canvas、Text、Image、Button 与指针事件。 - **2D 动画(预览):** 精灵 `SpiritAnimator`、`AnimClip2D` 资产、动画状态机资产,以及用于编辑的面板。在栈稳定前可能出现不兼容变更。 - Hub、独立目录包与 Windows 安装器等打包路径。 ## 快速开始 ### 环境要求
Windows | 依赖 | 版本 | |:-----|:-----| | Windows | 10 / 11(64 位) | | Python | 3.12+ | | Vulkan SDK | 1.3+ | | CMake | 3.22+ | | Visual Studio | 2022(MSVC v143) | | pybind11 | 2.11+ |
macOS | 依赖 | 版本 | |:-----|:-----| | macOS | 12+ | | Python | 3.12+ | | Vulkan SDK | 1.3+(LunarG SDK + MoltenVK) | | CMake | 3.22+ | | Ninja | 1.10+ | | Xcode Command Line Tools | 最新版 | | pybind11 | 2.11+ | 安装 Vulkan SDK 后,先执行环境脚本: ```bash source ~/VulkanSDK//setup-env.sh brew install cmake ninja ```
你可以使用任意 Python 3.12 环境。下面示例使用 Conda,因为这是当前仓库里最常见的工作流。 ### 克隆仓库 ```bash git clone --recurse-submodules https://github.com/ChenlizheMe/Infernux.git cd Infernux ``` 如果之前没有带上子模块: ```bash git submodule update --init --recursive ``` ### 构建引擎 ```bash conda create -n infengine python=3.12 -y conda activate infengine pip install -r requirements.txt cmake --preset release cmake --build --preset release ``` 在 macOS 上,将 `release` 替换为 `release-macos`。 构建流程会编译原生模块、复制运行时依赖,并把 Python 包安装进当前环境,使你可以直接在工作区中 `import Infernux`。 ### 以开发模式启动 Hub ```bash conda activate infengine python packaging/launcher.py ``` 开发模式使用当前 Python 环境和本地构建产物,不会安装 Hub 的托管运行时。 ### 运行测试 ```bash conda activate infengine cd python python -m pytest test/ -v ``` ## 文档 - 官网: - 文档入口: - 技术报告:[Infernux: A Python-Native Game Engine with JIT-Accelerated Scripting(arXiv:2604.10263)](https://arxiv.org/pdf/2604.10263) - API 参考:从 Python 包自动生成,并发布到 `docs/wiki/site/` 本地重新生成 API Markdown 和静态站点: ```bash conda activate infengine python docs/wiki/generate_api_docs.py python -m mkdocs build --clean -f docs/wiki/mkdocs.yml ``` 对应的 CMake 目标是 `generate_api_docs` 和 `build_wiki_html`。 ## 打包与分发 Hub 目前支持两条分发路径。 ### 独立目录打包 ```bash cmake --build --preset packaging ``` 这会生成位于 `dist/Infernux Hub/` 的 PyInstaller 目录。 ### Windows 安装器 ```bash cmake --build --preset packaging-installer ``` 这会生成图形化 Windows 安装器。安装流程会为当前主机准备匹配的 Python 3.12 运行时,再基于这套托管运行时为项目创建独立环境。 ## 引用 如果你在论文、技术报告或公开材料中使用 Infernux,可以按软件条目引用: ```bibtex @software{chen2026infernux, author = {Chen, Lizhe}, title = {Infernux}, year = {2026}, version = {0.1.4}, url = {https://github.com/ChenlizheMe/Infernux}, note = {Open-source game engine with a C++17/Vulkan runtime and a Python production layer} } ``` ## 参与贡献 当前阶段,Bug 报告、功能建议和工作流反馈都很有价值。提交 issue 时,建议附带引擎版本、环境信息、复现步骤,以及问题位于原生运行时、Python 层还是打包链路。 贡献和支持相关说明见: - `CONTRIBUTING.md` - `SECURITY.md` - `SUPPORT.md` ## 许可证 Infernux 基于 MIT 协议发布,详见 `LICENSE`。