跳过正文
  1. 项目/
  2. Bocchi House 移植平台/

Bocchi House:一个把经典游戏搬上鸿蒙的启动平台

·102 字·1 分钟·
FunBocchi
作者
FunBocchi
游戏引擎、图形编程爱好者。正在把 MonoGame 3.8.x 逐行移植为 C++20 并跑在鸿蒙上;也在做 Bocchi House 游戏移植平台与各种经典游戏的 HarmonyOS 移植。
目录
Bocchi House 移植平台 - 这篇文章属于一个选集。
§ : 本文

这是什么
#

Bocchi House 是一个运行在 HarmonyOS NEXT 平台上的游戏移植与启动平台。

简单来说:一台鸿蒙设备上,装一个"游戏大厅",里面可以启动一个个被移植过来的经典游戏。

名字致敬了《孤独摇滚!》的波奇酱(Bocchi),也暗合"一个人折腾移植"的孤独感——不过移植出来的成果是可以分享的。

为什么做这个
#

一直以来我都在折腾"把老游戏/老引擎搬到鸿蒙"这件事:

  • MonoGame 的鸿蒙 C++ 移植(另一个长期项目)
  • Paladin(仙剑奇侠传)Unholy Heights(房东是魔王大人) 这类经典游戏的移植

移植本身已经很难,但移植完还有一个问题:怎么把游戏组织起来、怎么启动、怎么共用一套图形/音频/输入基础设施?

每个游戏都各自实现一遍 Vulkan 初始化、窗口绑定、精灵渲染,既重复又难维护。于是就有了 Bocchi House:把底层图形能力、生命周期桥接、游戏框架做成公共层,游戏只需要专注于自己的逻辑。

技术栈
#

ArkTS + C++ (NAPI) + Vulkan + HarmonyOS SDK 6.1.0
  • ArkTS:启动器 UI 与 Ability 生命周期(声明式开发)
  • C++ (NAPI):引擎层与图形管线,通过 NAPI 与 ArkTS 桥接
  • Vulkan:GPU 渲染 API,鸿蒙端通过 XComponent 提供原生渲染表面
  • SurfaceHolderNDK:新版 Surface 生命周期管理 API

分层设计
#

项目采用四层架构,每层职责单一:

做什么
products(启动器)游戏列表 + startAbility() 拉起游戏
game_sources(游戏)各移植游戏的核心逻辑(Paladin / Unholy Heights)
features(适配层)游戏框架(生命周期桥接)+ 图形/音频/输入适配器
common(平台封装)Vulkan RAII、窗口管理、节点内容、日志

现状与计划
#

目前处于开发早期:Vulkan RAII 封装(12 个类)、生命周期桥接、Laptop 启动器 UI 已完成;BHRender 渲染上下文、SpriteBatch 完整管线进行中。

游戏方面,Unholy Heights 已在移植中(C# XNA → C++),Paladin 在规划中。

后续我会在这里持续记录架构设计与踩坑过程。

相关链接
#

Bocchi House 移植平台 - 这篇文章属于一个选集。
§ : 本文

相关文章