跳过正文
  1. 项目/

Bocchi House 移植平台

项目简介
#

Bocchi House 是一个运行在 HarmonyOS NEXT 平台上的游戏移植与启动平台,旨在将经典游戏(如 Paladin、Unholy Heights)移植到鸿蒙平台。

它提供了一套从底层 Vulkan 封装到上层 2D 渲染引擎的完整图形管线:

  • 底层通过 platform_abstraction 封装 Vulkan 与鸿蒙原生 API(窗口、节点、SurfaceHolder)
  • 中间层通过 graphics_adapter 提供 2D 渲染引擎(SpriteBatch、纹理管理、字体渲染)
  • 上层游戏模块调用这些接口实现跨平台运行

技术栈:ArkTS + C++ (NAPI) + Vulkan + HarmonyOS SDK 6.1.0

分层架构
#

products (启动器)
    │ startAbility()
game_sources (游戏)  ←── 调用 ──►  features/adapters (图形/音频/输入)
    │                                   │ 调用
    ├── 生命周期事件                    │
    ▼                                   ▼
features/game_framework              common (平台封装)
    │ 转发事件                          │ 封装
    ▼                                   ▼
features/adapters                   HarmonyOS / Vulkan
模块职责
启动器products/laptop, products/mobile游戏列表 + startAbility() 启动游戏
游戏game_sources/paladin, game_sources/unholy_heights游戏核心逻辑
生命周期桥接features/game_frameworkBHFrameworkCore 单例:Ability 生命周期事件 → 各 adapter;App 级窗口控制
游戏框架features/game_frameworkGame 类(XNA 风格)、ScreenManagerGameScreenGameTime
适配层features/graphics_adapterVulkanRenderer 编排器、SpriteBatch 2D 渲染、TextureManagerSpriteFont
适配层features/audio_adapter / input_adapter音频接口、输入接口(框架完成,待实现)
平台封装common/platform_abstractionVulkan RAII 封装(12 个类)、窗口管理、节点管理、日志

移植游戏
#

游戏原作原始语言移植语言渲染方式状态
Paladin(仙剑奇侠传)SDLPal / pal_harmonyCC++CPU 软件渲染 (320x200)规划中
Unholy Heights(房东是魔王大人)Petit DepottoC# (XNA 4.0)C++Vulkan GPU 2D 精灵移植中

当前进度(2026-08-12)
#

  • game_framework 生命周期桥接BHFrameworkCore + NapiBridge 拆分,注册 15+ NAPI 接口
  • 窗口控制BHWindowManager 封装 WindowInfoSetDecorVisible / SetResizeByDrag 已实现
  • Vulkan RAII 封装(12 个类):Instance / Surface / Device / Swapchain / Command / Sync / RenderPass / Shader / Pipeline / Buffer / Image / Descriptor
  • BHNodeContentTool 完整实现Bind(handle, tag) → NodeContent 回调 → CreateXComponent → Surface 回调分发
  • graphics_adapter 结构对齐bridge/ + GraphicsBridgeengine/ + BHGraphicsCore 编排器
  • Laptop 启动器 UI:Navigation + 沉浸式 + Swiper 轮播推荐 + 游戏卡片列表
  • 🔄 BHRender 实现SetupVKContext(window) 设备检测链已完成(CreateInstance / CreateSurface / PickPhysicalDevice / CreateLogicalDeviceAndQueue)
  • 🔄 SpriteBatch 完整管线:着色器/顶点缓冲已建,Flush 未实现
  • 🔄 TextureManager / SpriteFont:VkImage/View/Sampler 已建,staging upload 未实现

专栏文章
#

(本栏目持续更新:项目介绍 + 架构解说 + 技术记录)

2026