分析对象:将 Godot Engine(游戏运行时 / 编辑器本体)移植到 HarmonyOS PC(鸿蒙 PC,2in1 设备)结论性质:基于公开资料的技术可行性研判,非实测报告。
| 命题 | 可行性 | 难度 | 一句话判断 | | --- | --- | --- | --- | | A. 让 Godot 做的游戏跑在鸿蒙 PC 上 (运行时 / 导出模板) | 高 | 中 | 社区已有可跑通的移植分支,属于"工程量大但路径清晰" | | B. 把 Godot 编辑器本体移植到鸿蒙 PC 上日常使用 | 中偏低 | 高 | 编辑器是"桌面级 IDE",撞上鸿蒙的沙箱、禁 JIT、禁 exec 三条硬约束,且上游未合并 |
核心判断 :如果目标只是"在鸿蒙 PC 上开发 / 运行 Godot 游戏", 最优解是 A + 远程 / Web 编辑器,而不是移植编辑器本体 。
Godot 的平台适配集中在 platform/ 抽象层,需要实现:
关键有利点 :Godot 编辑器本身就是用 Godot 自己的 Control 节点自绘的 UI,跑在同一个引擎上。也就是说——只要平台层 + 渲染 + 输入 + 文件系统通了, 编辑器 UI 不需要重写 。这是 Godot 相比 Unity(C#/.NET + 原生 UI)、Unreal(Slate/C++)在移植上的结构性优势。
关键不利点 : C#/.NET 版编辑器在鸿蒙上基本不可行 (原因见第四章第 3 条),因此只能走 GDScript / GDExtension(C++) 路线。
| 能力域 | 鸿蒙提供的接口 | | --- | --- | | 渲染表面 | XComponent(surface) + OHNativeWindow + EGL / OpenGL ES 3.x / Vulkan | | 帧同步 | OH_NativeVSync | | 语言桥 | NAPI(ArkTS ↔ C/C++) | | 交互 | 输入事件、IME、剪贴板 | | 音频 | OHAudio | | 其他 | 网络、TTS、ArkUI 容器 |
但应用模型是: 一个 Ability 一个窗口 + 表面 ,原生代码以 .so 形式通过 NAPI 被 ArkTS 调用,运行在应用沙箱内。这与"桌面自由多窗口 IDE"的模型存在 结构性错配 。
⚠️ 注意该 PR 的定位 :它的产物是 export template(导出模板) ,用法是"在 Windows/Linux/macOS 上编译编辑器 → 导出 HAP → 装到鸿蒙设备上运行"。 它解决的是命题 A,没有解决命题 B。
渲染(Vulkan/GLES 经 OHOS 图形栈)、输入(XComponent 事件 → NAPI → Godot InputEvent)、音频、网络、GDScript VM、系统字体回退——这些社区原型都已跑通。
| 难点 | 说明 | | --- | --- | | 模拟器不可用 | 作者明确说明:OpenHarmony 模拟器 不支持 Vulkan 和 OpenGL ES ,只能真机调试;官方云调试要求上传已签名 release 包,迭代效率低 | | 设备形态差异 | 适配 Avalonia 时发现"PC 端不支持 ARGB 格式纹理,真机支持"——说明鸿蒙 PC 与移动端图形能力并不一致,需逐设备验证 | | 签名与合规 | 需要 p12 / csr / cer / p7b 证书链 + hap-sign-tool ,导出模板必须 arm64-v8a | | GDExtension | .so 打包、 dlopen 、ABI 对齐需要额外处理 | | 上游维护 | PR 未合并 → 每次 Godot 大版本都要自己 rebase(4.4 → 4.5 → 4.6 → 4.7 …) |
| 阶段 | 工作量 | | --- | --- | | 跑通 Demo | 1–2 人月 | | 产品级(多设备、性能、稳定性、CI) | 4–8 人月 | | 之后 | 持续的版本跟随维护 |
这是本题的核心。 六个硬约束 ,从难到易排列:
编辑器需要 任意读写项目目录 、递归扫描资产、监听文件变化、生成 .godot/ 缓存。鸿蒙应用沙箱 + 文件选择器授权模型与之直接冲突,需要大量适配(URI 授权、目录持久化授权、外部存储访问框架)。
Godot 编辑器的导出要调用 JDK、Android SDK 构建工具、OpenHarmony command-line-tools、hap-sign-tool、keytool 等外部可执行文件。
鸿蒙应用沙箱不允许执行任意第三方可执行文件 ,只允许加载自己打包的 .so 。要恢复导出能力,得把整条工具链重做成 in-process 库——这是独立的大工程。
类比 :Android 编辑器早期 不能在设备上导出 APK ,直到 4.7 才做到"直接从 Android 设备导出并发布"(2026-06),而那是 Google 自家工具链可以打包成库的场景。
真机 禁止申请可执行内存(JIT 被拒) (模拟器不限制)。Mono 运行时依赖 JIT,无法直接用;只能走 NativeAOT——社区有 OpenHarmony-NET/runtime 的 NativeAOT 适配,但 未进 dotnet 官方 ,意味着分发方式与长期维护都是问题。
✅ 好消息 : GDScript 是字节码 VM,不做 JIT ,所以 GDScript + GDExtension(C++) 路线不受影响。
Godot 编辑器是 桌面多窗口应用 :可分离面板、独立 shader/脚本窗口、浮动对话框、原生菜单、拖放操作。
鸿蒙 2in1 虽有窗口管理 API 和多窗口能力(智慧多窗、平行视界、Multi-Window API),但把 Godot 的 DisplayServer 多窗口语义映射到 ArkUI 窗口体系是 全新开发 ,不是"适配一下"。最坏情况是编辑器被迫退化成单窗口形态。
编辑器的可用性几乎全压在"键盘快捷键 + 鼠标精确操作 + 输入法"上。原型里这三项都有,但"有事件"和"手感可用"之间差距很大,这部分成本常被低估。
| 阶段 | 工作量 | | --- | --- | | MVP(能打开、能渲染编辑器 UI、能编辑 GDScript、能跑 2D 场景) | 6–12 人月 (前提是已有运行时移植基础) | | 日常可用(2D 项目闭环 + 导出) | 1.5–3 人年 | | 之后 | 永久性的版本跟随维护 (建议按 1–2 人常驻估算) |
| # | 路线 | 做法 | 可行性 | 成本 | 适合谁 | | --- | --- | --- | --- | --- | --- | | 1 | 运行时移植(首选) | 桌面用官方编辑器,导出 HAP 到鸿蒙 PC 运行;基于 kdada/godot#openharmony 分支自维护 | 高 | 4–8 人月 + 跟随维护 | 绝大多数真实需求 | | 2 | 远程 / Web 编辑器 | 鸿蒙 PC 浏览器跑 Godot Web 编辑器(官方 4.3+ 支持,需 WebGL2/WebGPU + 跨源隔离),或 SSH / 远程桌面到 Linux 工作站 | 高 (需实测鸿蒙 PC 浏览器能力) | ≈ 0 移植成本 | 想立刻在鸿蒙 PC 上写 Godot | | 3 | 编辑器完整移植 | 基于 PR 分支 + Android 编辑器经验做鸿蒙 PC 版 | 中偏低 | 1.5–3 人年 + 长期维护 | 厂商级战略投入 | | 4 | 上游化 + 生态合作 | 推动 #108553 合入主干,争取官方平台支持 + 华为侧投入(走 Unity 中国团结引擎、Cocos 已支持的类似路径) | 中 | 周期长但收益最大 | 有生态话语权的团队 |
补充 : 鸿蒙 PC 不能直接运行 Linux/Windows 二进制 ,所以不存在"把 Linux 版 Godot 拷过去就能用"的捷径——要么走 HAP 应用形态,要么走浏览器 / 远程。
| 模块 | 运行时移植 | 编辑器移植 | | --- | --- | --- | | 渲染(Vulkan / GLES) | 🟡 中(驱动碎片化、无模拟器) | 🟡 中 | | 输入 / IME / 剪贴板 | 🟢 偏低 | 🟠 偏高(手感与精度) | | 音频 / 网络 | 🟢 低 | 🟢 低 | | 文件系统 / 沙箱 | 🟡 中 | 🔴 高 | | 窗口模型 | 🟢 低 | 🔴 高 | | 脚本运行时 | 🟢 GDScript 无碍 | 🔴 高 (C#/.NET 基本不可用) | | 导出 / 签名工具链 | 🟡 中(桌面侧调用) | 🔴 高 (设备端不可 exec) | | 上游维护 | 🟠 偏高 | 🔴 高 |
→ 走 路线 1 + 2 :桌面 / 远程编辑器 + 鸿蒙 PC 作为运行与测试端。这是投入产出比最高的组合,不用碰编辑器移植这个坑。
→ 先做 路线 1 把运行时立住(这才是 700M+ 设备真正缺的),同时联合华为 / OpenHarmony SIG 推 路线 4 上游化。 不要一上来就做编辑器。
| 里程碑 | 目标 | 工作量 | | --- | --- | --- | | M1 | 编辑器能在鸿蒙 PC 打开并正常渲染 UI + 键鼠 / IME 可用 | 2–4 人月 | | M2 | 能打开项目、编辑 GDScript、运行 2D 场景(含文件系统授权方案跑通) | 2–4 人月 | | M3 | 能导出 HAP(工具链 in-process 化验证) | 2–4 人月 | | 决策点 | M3 通过 → 值得继续;M3 卡死 → 退回路线 1+2 | —— |
| # | 风险 | 影响 | 缓解建议 | | --- | --- | --- | --- | | 1 | 上游 PR 不合并 | 需长期 fork 维护,成本随时间放大 | 联合 SIG / 华为推动上游化;锁定版本 + 自动化 rebase | | 2 | Vulkan 驱动碎片化 | 不同 SoC / GPU 驱动表现不一 | 建立设备兼容矩阵,保留 GLES3 兼容渲染器回退 | | 3 | 模拟器不支持 Vulkan/GLES | 只能真机调试,迭代慢 | 备真机池 + 云调试;关键路径提前锁定测试机 | | 4 | .NET / C# 基本不可用 | 大量 C# 项目无法迁移 | 明确只支持 GDScript / GDExtension;评估 NativeAOT 可行性 | | 5 | 导出 / 签名工具链设备端不可用 | 编辑器闭环断裂 | 工具链 in-process 化,或改为"桌面导出 + 设备运行" | | 6 | 沙箱 / 权限 / 审核 | 上架受阻或功能受限 | 提前对齐 AppGallery 对 IDE 类、动态加载、脚本执行的审核口径 | | 7 | 无 JIT + 可执行内存限制 | 插件、热重载、动态代码受限 | 架构上避免依赖 JIT 的方案 | | 8 | 键鼠 / IME 精细交互 | 编辑器可用性不达标 | M1 阶段就做手感验证,不要放到后期 | | 9 | 鸿蒙版本迭代快(5 → 6 → 7,API 26) | 适配要持续跟进 | 建立 API 变更跟踪机制,抽象平台层隔离变更 |
| 来源 | 说明 | | --- | --- | | godotengine/godot PR #108553 | 《Port to OpenHarmony》,kdada,2025-07 提交,目标 Godot 4.4.1,分支 kdada/godot#openharmony | | godotengine/godot PR #109834 | OpenHarmony 导出模板 CI 工作流支持 | | godotengine/godot-proposals #12734 | 《Add official support for OpenHarmony OS》,含架构图与功能矩阵 | | 华为开发者文档 | 鸿蒙 PC / 2in1 应用开发指南、XComponent / NativeWindow 开发指导 | | Godot 4.7 发布说明(Linuxiac / IT之家) | HDR 输出、Wayland 触控、Android 端直接导出发布等 | | Godot 基金会贡献指南变更(2026-07) | 禁止 AI 直接生成代码,审阅人力紧张 |
命题
A
(游戏运行在鸿蒙 PC) → 可行性 高 | 难度 中 |
4
-
8
人月 + 维护
命题
B
(编辑器移植到鸿蒙 PC) → 可行性 中偏低| 难度 高 |
1.5
-
3
人年 + 维护
最优先推荐:路线
1
(运行时移植)+ 路线
2
(远程 / Web 编辑器)
最不建议:在没有运行时基础的前提下直接做编辑器完整移植
转载声明:本文为转载整理,原文版权归原作者及原站点所有。
原文来源:Juejin HarmonyOS
原文作者:特立独行的猫A;如有侵权,请联系管理员删除。