- 游戏开发
- 图形学
- 3D渲染
【免费下载链接】Infernux
Building a Neural Network-Native Engine (3N). Python authoring, C++ runtime, Vulkan/WebGPU. Windows, Linux, Android and Web.
Infernux 是一款 Python 创作、C++ 运行时、Vulkan/WebGPU 渲染的开源游戏引擎,支持将一套代码发布到 Windows、Linux、Android 与 Web 四大目标。本多平台构建指南带你从克隆仓库开始,一步步走通引擎构建与 Player 导出流程。
🗺️ 先看平台支持矩阵:谁有编辑器,谁有 Player
在动手之前,先明确各平台的角色定位——这决定了你要构建什么、在哪个机器上构建:
| 目标平台 | 编辑器 | 玩家(Player) | 图形后端 |
|---|---|---|---|
| Windows x64 | ✅ 有 | ✅ | Vulkan |
| Linux x86_64 | ✅ 有 | ✅ | Vulkan |
| Android arm64 / x86_64 | ❌ 无 | APK / AAB | Vulkan |
| Web | ❌ 无 | HTML / JS / WASM | WebGPU |
💡 macOS、原生 iOS 与 Headless Player 包目前不在支持范围内,完整矩阵见 docs/platform-support.json 和 SUPPORT.md。
编辑器的样子——一个真实场景,65,536 个 GameObject 的体素大陆:
Vulkan(桌面/Android)与 WebGPU(浏览器)共享同一套引擎侧渲染接口,渲染语义在不同平台间保持一致:
📦 第一步:克隆仓库并准备 Conda 环境
四个平台共用同一个 Conda 环境定义(Python 3.13,cp313ABI)。CMake 会严格校验 Python 版本,防止构建出与发布版不兼容的 wheel,所以请直接用官方 setup 脚本初始化环境:
git clone --recurse-submodules https://gitcode.com/gh_mirrors/in/Infernux cd Infernux仓库内置了各平台的构建预设,入口是 CMakePresets.json,按主机系统自动加载 cmake/presets/Windows.json、cmake/presets/Linux.json 与 cmake/presets/Android.json——你不需要手写任何 CMake 参数。
🪟 Windows 构建步骤:四行命令跑起编辑器
前置要求:Visual Studio 2022(MSVC v143 工具集)、CMake 3.25+、Vulkan SDK。
# 1. 初始化子模块并创建/修复 infernux Conda 环境 ./scripts/setup/configure_development.ps1 conda activate infernux # 2. 配置 Release 构建(Visual Studio 17 2022 生成器,x64) cmake --preset windows-msvc-release # 3. 编译引擎运行时 + Python 扩展 cmake --build --preset windows-msvc-release # 4. 打包并安装 Python wheel cmake --build --preset windows-msvc-install-wheel # 5. 启动编辑器 Hub python packaging/launcher.py日常开发可改用windows-msvc-dev预设(RelWithDebInfo,带调试信息)。完整预设清单见 cmake/presets/Windows.json。
🐧 Linux 构建步骤:Clang + Ninja 交叉零配置
在 Ubuntu / Debian 上先装一次系统依赖,再走与 Windows 几乎镜像的流程:
# 1. 安装系统级依赖(clang、lld、pkg-config 等) scripts/setup/install_linux_dependencies.sh # 2. 初始化子模块 + 创建 infernux 环境 bash scripts/setup/configure_development.sh conda activate infernux # 3. 配置(Ninja 生成器,clang/clang++,lld 链接器) cmake --preset linux-clang-release # 4. 编译 cmake --build --preset linux-clang-release # 5. 安装 wheel cmake --build --preset linux-clang-install-wheelLinux 预设的关键变量(Ninja + clang +INFERNUX_BUILD_PLAYER_HOST=ON)统一收敛在 cmake/presets/Linux.json 的linux-base中,无需逐条传递。
📱 Android 交叉构建:NDK 生成 APK
Android没有编辑器,在 Windows 或 Linux 主机上交叉构建。预设中已固化了全部关键参数(见 cmake/presets/Android.json):
- NDK 工具链文件(
android.toolchain.cmake,NDK 29) ANDROID_ABI=arm64-v8a、ANDROID_PLATFORM=android-26- 目标设备专用的 Python 3.13 运行时路径
# 需要预先设置 ANDROID_SDK_ROOT 指向 Android SDK cmake --preset android-arm64-release cmake --build --preset android-arm64-player⚠️ 交叉构建前需先准备 Android 目标 Python 运行时,可用 scripts/setup/build_android_python_runtime.sh 完成;InfernuxHub 也会统一管理共享的 Android 工具链。
🌐 Web 构建:WASM 编译 + WebGPU 跑进浏览器
Web 目标是web-wasm32,产物为 HTML/JS/WASM,运行时通过 WebGPU 呈现。构建前先准备 Web 工具链(Emscripten / Dawn 相关依赖):
scripts/setup/build_web_toolchain.sh之后即可通过编辑器内导出或 CI 流程构建web-wasm32目标。浏览器侧能力(compute、Python 扩展)与桌面不同,但平台准备工作由引擎的平台插件负责,你的游戏项目代码无需改动——这正是"一套代码"的关键。
🚀 从编辑器到 Player:平台插件一键导出
桌面端构建引擎后,日常发布工作都发生在编辑器内部:
- 打开构建设置面板(python/Infernux/engine/ui/build_settings_panel.py),选择构建目标:
windows-x64、linux-x64、android-arm64、web-wasm32; - Android 目标还可选择APK 或 AAB产物形态;
- 对应平台插件(external/plugins/plugins.json 中的
infernux/platform-android、infernux/platform-web等platform_build类插件)声明构建选项并提供运行时载荷; - 点击构建后,python/Infernux/engine/game_builder.py 中的
GameBuilder会完成资产烘焙(cook)、GUID 资产索引打包(InxPack)与输出目录事务写入——导出的 Player 自带运行时组件与烘焙资产,不再依赖编辑器工程结构。
这就是构建成果在真实 Player 中的样子——GPU 金币粒子特效实机渲染:
📂 构建产物都放在哪?
Infernux 对生成物有唯一的规范位置,别自建build-*目录:
| 目录 | 用途 |
|---|---|
out/build/<preset>/ | CMake 配置与构建树 |
out/stage/<preset>/ | 可丢弃的 wheel / Hub 装配树 |
dist/releases/<version>/ | 最终可上传的发布产物 |
需要彻底清理时,运行 scripts/maintenance/clean_workspace.ps1(支持-WhatIf预览),详见 CONTRIBUTING.md。
🛠️ 构建常见问题速查
| 症状 | 原因与解决 |
|---|---|
| CMake 配置阶段拒绝运行 | Python 不是 3.13(cp313ABI 强制校验),请用 setup 脚本重建infernux环境 |
| Windows 报缺 Vulkan SDK | 安装 Vulkan SDK 并重启终端 |
| Linux 链接报错 | 确认已运行install_linux_dependencies.sh(clang/lld/pkg-config) |
| Android 配置失败 | 检查ANDROID_SDK_ROOT环境变量与 NDK 版本 |
| 无 GPU 环境跑测试 | 使用*-headless预设,自动排除requires_vulkan_device标签用例 |
结语
Infernux 的多平台构建把复杂工作收敛到了三层:CMake Presets 管引擎、平台插件管导出、Hub 管环境与工具链。Windows 与 Linux 上写游戏、Android 与 Web 上运行游戏——一套 Python 创作代码,四种发布形态。现在,就从cmake --preset开始你的第一次构建吧 🎮
- 游戏开发
- 图形学
- 3D渲染
【免费下载链接】Infernux
Building a Neural Network-Native Engine (3N). Python authoring, C++ runtime, Vulkan/WebGPU. Windows, Linux, Android and Web.
相关推荐
WatermelonDB 跨平台完整指南:一套代码同时运行在 iOS、Android、Windows、Web 与 Node.js
WatermelonDB 跨平台完整指南:一套代码同时运行在 iOS、Android、Windows、Web 与 Node.js WatermelonDB 是一
数据库移动开发前端Lyra多平台构建指南:Linux、Android、Mac、Windows全攻略
Lyra多平台构建指南:Linux、Android、Mac、Windows全攻略 Lyra是一款极低比特率的语音压缩编解码器,专为高效语音传输设计。本指南将详细
终极Flutter-WebRTC多平台部署指南:Android、iOS、Web、macOS、Windows、Linux全解析
终极Flutter WebRTC多平台部署指南:Android、iOS、Web、macOS、Windows、Linux全解析 Flutter WebRTC是一个
音视频即时通讯跨平台
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考