在这里插入图片描述

网罗开发 (小红书、快手、视频号同名)

  大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等方向。在移动端开发、鸿蒙开发、物联网、嵌入式、云原生、开源等领域有深厚造诣。

图书作者:《ESP32-C3 物联网工程开发实战》
图书作者:《SwiftUI 入门,进阶与实战》
超级个体:COC上海社区主理人
特约讲师:大学讲师,谷歌亚马逊分享嘉宾
科技博主:华为HDE/HDG

我的博客内容涵盖广泛,主要分享技术教程、Bug解决方案、开发工具使用、前沿科技资讯、产品评测与使用体验。我特别关注云服务产品评测、AI 产品对比、开发板性能测试以及技术报告,同时也会提供产品优缺点分析、横向对比,并分享技术沙龙与行业大会的参会体验。我的目标是为读者提供有深度、有实用价值的技术洞察与分析。

展菲:您的前沿技术领航员
👋 大家好,我是展菲!
📱 全网搜索“展菲”,即可纵览我在各大平台的知识足迹。
每周定时推送干货满满的技术长文,从新兴框架的剖析到运维实战的复盘,助您技术进阶之路畅通无阻。


引言

很多开发者学习 HarmonyOS 游戏开发时,都会经历三个阶段。

第一阶段,觉得 ArkUI 就是一切。

Button
Image
Column
Row

写几个组件,一个小游戏就出来了。

后来开始接触状态管理,于是发现:

Store

比 UI 更重要,所有数据都开始放进 Store。

项目瞬间清晰了很多。很多人到了这里就认为:

游戏架构已经设计完成了。

其实并没有。因为当项目继续扩大之后,你会发现新的问题又来了。

例如:

PhysicsSystem
AISystem
AnimationSystem
ParticleSystem
AudioSystem
NetworkSystem

这些 System 都需要运行。于是问题来了:

Store 谁来更新?

System 谁来调度?

AI 谁来执行?

Render 谁先谁后?

如果没有新的架构层。Store 很快又会变成:

新的 God Object(上帝类)

所以,大型游戏都会继续完成一次架构升级:

Store
        ↓

Runtime

今天,我们就来聊聊:

为什么现代 HarmonyOS 游戏,最终都会从 Store 走向 Runtime。

一、Store 为什么解决不了所有问题?

Store 的职责非常明确。例如:

export class GameStore {

    playerHp = 100

    enemyHp = 100

}

Store 保存:

状态(State)

例如:

玩家位置

敌人位置

金币数量

任务状态

它回答的是:

游戏世界现在是什么样子?

但是,它回答不了另一个问题:

游戏世界为什么会变成这样?

例如,玩家移动:

Player.x += 10

是谁改的?可能是:

输入系统

AI

技能系统

网络同步

Store 根本不知道。

因此 Store 应该保持纯粹。只负责:

State

而不是:

Logic

二、为什么越来越多逻辑不能放在 Store?

很多项目最后都会变成这样:

class GameStore {

    move()

    jump()

    attack()

    useSkill()

    updatePhysics()

    updateAnimation()

    updateAI()

}

刚开始几十行代码;后来几百行;最后几千行。

Store:

既保存状态

又负责 AI

又负责物理

又负责网络

真正变成:

God Store

它违反了:

单一职责原则(SRP)

所以现代游戏越来越倾向于:

Store

+

System

Store:

保存状态

System:

修改状态

职责彻底分离。

三、System 出现以后,又为什么需要 Runtime?

当项目继续扩大,System 越来越多:

InputSystem

PhysicsSystem

BattleSystem

AnimationSystem

AudioSystem

ParticleSystem

新的问题马上来了。例如:

physics.update()

battle.update()

animation.update()

audio.update()

到底:

谁先执行?

谁后执行?

多久执行一次?

如果每个 System 自己:

setInterval()

Timer()

Thread()

整个项目马上失控。

于是 Runtime 出现了。它统一管理:

所有 System

而不是:

每个 System 管自己。

四、Runtime 到底升级了什么?

以前整个游戏:

UI

↓

Store

↓

UI

这是:

状态驱动

已经很好了,但是现代游戏真正运行方式是:

Runtime

↓

System

↓

Store

↓

ArkUI

可以看到 Store 已经不是最核心的一层。真正驱动整个游戏的是:

Runtime

Store 只是:

世界状态

五、Runtime 如何驱动整个游戏世界?

可以把 Runtime 理解成:

CPU

System 就是:

指令

Store 就是:

内存

ArkUI 就是:

显示器

整个调用流程:

Runtime.tick()

↓

PhysicsSystem.update()

↓

BattleSystem.update()

↓

Store 更新

↓

ArkUI 自动刷新

↓

RenderThread

↓

GPU

整个世界开始不断运行。而不是:

等待用户点击。

这就是:游戏和普通 App 最大区别。

六、Runtime 为什么比 Store 更重要?

因为 Store 只保存:

结果

例如:

HP = 80

但是 Runtime 决定:

为什么 HP 会变成 80。

例如:

玩家受到攻击

↓

Physics 检测碰撞

↓

BattleSystem 计算伤害

↓

Store.hp = 80

Store:不知道原因;Runtime:知道整个执行链。

因此现代引擎,真正核心都是:

Runtime

而不是:

Store

七、AI 时代,Runtime 的价值会越来越大

过去 NPC:

固定脚本

今天 NPC:

Planner

Memory

Tool

LLM

整个过程可能:

200ms

Render 只有:

16ms

如果 Render 等待 AI,整个游戏立即掉帧。

因此 Runtime 必须支持:

Task Queue

Worker Thread

Priority

Scheduler

例如:

Runtime

↓

AI Task

↓

后台线程

↓

Store

↓

ArkUI

Render 继续:

60FPS

AI 后台完成,这就是下一代 Runtime。

八、HarmonyOS 游戏推荐架构

最终,一个可扩展的 HarmonyOS 游戏架构可以设计为:

                   Game Loop
                        │
                 System Runtime
                        │
      ┌─────────────────┼─────────────────┐
      │                 │                 │
  Scheduler         EventBus        ResourceManager
      │
 ┌────┼────┬────────┬─────────┬─────────┐
 │    │    │        │         │         │
Input AI Physics Animation Battle Network
      │
      ▼
     Store
      │
      ▼
    ArkUI
      │
      ▼
 RenderThread
      │
      ▼
      GPU

在这个架构中:

  • Store 是唯一状态源(Single Source of Truth),负责保存游戏世界的数据。
  • System 负责业务规则,每个 System 聚焦单一职责,例如 Physics、AI、Battle、Animation。
  • Runtime 负责统一调度所有 System,控制 Tick、执行顺序、生命周期以及任务优先级。
  • ArkUI 只负责根据 Store 渲染界面,不直接参与业务逻辑。
  • RenderThread 将渲染命令提交给 GPU,完成最终绘制。

整个数据流形成了清晰的单向链路:

Game Loop
      │
System Runtime
      │
Systems
      │
Store
      │
ArkUI
      │
RenderThread
      │
GPU

这种分层不仅让项目更容易维护,也为后续加入多线程、Agent、跨设备协同和高性能渲染打下基础。

总结

很多开发者在学习 HarmonyOS 游戏时,会认为:

有了 Store,架构就已经足够完善。

事实上,Store 只是解决了状态管理的问题。

随着游戏规模不断扩大,真正需要解决的是:

  • 谁来驱动所有 System?
  • 谁来统一管理 Tick?
  • 谁来控制执行顺序?
  • 谁来调度 AI、Physics、Animation 等多个模块?

答案就是 System Runtime

整个架构的演进过程可以概括为:

UI 驱动
      ↓
Store 驱动
      ↓
System 驱动
      ↓
Runtime 驱动

可以看到,HarmonyOS 游戏开发已经从"页面开发"逐渐演变为"引擎开发"。

最后一句话总结:

Store 决定游戏世界"是什么",而 Runtime 决定游戏世界"如何运转"。真正的大型 HarmonyOS 游戏,核心早已不是页面,而是 Runtime。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐