
网罗开发 (小红书、快手、视频号同名)
大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等方向。在移动端开发、鸿蒙开发、物联网、嵌入式、云原生、开源等领域有深厚造诣。
图书作者:《ESP32-C3 物联网工程开发实战》
图书作者:《SwiftUI 入门,进阶与实战》
超级个体:COC上海社区主理人
特约讲师:大学讲师,谷歌亚马逊分享嘉宾
科技博主:华为HDE/HDG
我的博客内容涵盖广泛,主要分享技术教程、Bug解决方案、开发工具使用、前沿科技资讯、产品评测与使用体验 。我特别关注云服务产品评测、AI 产品对比、开发板性能测试以及技术报告,同时也会提供产品优缺点分析、横向对比,并分享技术沙龙与行业大会的参会体验。我的目标是为读者提供有深度、有实用价值的技术洞察与分析。
展菲:您的前沿技术领航员
👋 大家好,我是展菲!
📱 全网搜索"展菲",即可纵览我在各大平台的知识足迹。
📣 公众号"Swift社区",每周定时推送干货满满的技术长文,从新兴框架的剖析到运维实战的复盘,助您技术进阶之路畅通无阻。
💬 微信端添加好友"fzhanfei",与我直接交流,不管是项目瓶颈的求助,还是行业趋势的探讨,随时畅所欲言。
📅 最新动态:2025 年 3 月 17 日
快来加入技术社区,一起挖掘技术的无限潜能,携手迈向数字化新征程!
文章目录
-
- 引言
- 一、从"页面驱动"到"状态驱动"
- [二、从"Game Loop 中心"到"系统调度"](#二、从“Game Loop 中心”到“系统调度”)
- [三、从"渲染优先"到"UI 优先"](#三、从“渲染优先”到“UI 优先”)
- 四、从"单设备"到"分布式场景"
- 五、从"输入事件"到"交互模型"
- 六、从"功能开发"到"能力设计"
- [七、从"玩家唯一"到"AI 参与者"](#七、从“玩家唯一”到“AI 参与者”)
- 八、从"确定逻辑"到"动态系统"
- 九、从"项目"到"系统工程"
- 十、一个对比总结
- 总结
引言
如果你做过手游(iOS / Android),再转到 HarmonyOS,第一感觉往往是:
"API 不一样,但逻辑应该差不多吧?"
但真正写过一段时间之后,大多数开发者都会意识到一件事:
变的不是 API,而是"开发逻辑"。
一、从"页面驱动"到"状态驱动"
手游开发,本质是:
页面 / 场景 → 手动更新 UI
典型代码:
ts
function updateScore(score) {
scoreText.setText(score)
}
而在鸿蒙(ArkUI)中:
ts
@State score: number = 0
Text(`${this.score}`)
UI 自动更新。
本质变化:
手动刷新 UI → 状态驱动 UI
影响是什么?
你不再需要:
- 手动 setText
- 手动刷新组件
而是:
只关心"状态变了什么"
二、从"Game Loop 中心"到"系统调度"
手游核心:
ts
while (true) {
update()
render()
}
你控制一切:
- 帧率
- 渲染
- 输入
而在 HarmonyOS 中:
- UI 渲染由系统调度
- 状态变化触发更新
示例对比
手游写法
ts
setInterval(() => {
player.x += 5
render()
}, 16)
鸿蒙写法
ts
@State player = { x: 0 }
aboutToAppear() {
setInterval(() => {
this.player.x += 5
}, 100)
}
不再显式 render。
本质变化:
从"自己驱动循环",到"借助系统调度"
三、从"渲染优先"到"UI 优先"
手游开发:
- 重点是 GPU
- 精细控制 draw call
- 手写渲染逻辑
鸿蒙开发:
- UI 是第一优先级
- 渲染由框架管理
- 强调组件化
示例
手游
cpp
drawSprite(player)
drawSprite(enemy)
鸿蒙
ts
Image(playerSprite)
Image(enemySprite)
本质变化:
绘制 → 描述
四、从"单设备"到"分布式场景"
传统手游:
手机 = 唯一设备
而在 HarmonyOS 中:
手机 + 平板 + TV + IoT
示例
- 手机:控制
- TV:主画面
- 平板:地图
开发变化:
你要考虑:
- 多屏同步
- 状态共享
- 输入来源多样化
本质变化:
从"单端游戏" → "多端协同游戏"
五、从"输入事件"到"交互模型"
手游输入:
ts
onTouch(x, y)
onSwipe()
鸿蒙:
ts
Gesture.onClick()
Gesture.onTouch()
而且支持:
- 语音
- 分布式输入
- 多设备交互
本质变化:
输入从"事件",变成"交互系统"
六、从"功能开发"到"能力设计"
传统手游开发思路:
做一个按钮
做一个功能
鸿蒙(尤其 AI 时代):
设计能力 → 提供接口 → 被调用
示例
ts
// 传统
Button → 打开背包
// 鸿蒙 + AI
InventoryService.getItems()
本质变化:
从 UI 功能 → 服务能力
七、从"玩家唯一"到"AI 参与者"
手游:
玩家 = 唯一操作者
鸿蒙(结合 AI):
玩家 + AI Agent
示例
ts
const action = agent.decide(state)
execute(action)
游戏结构变成:
人 + AI 共存
八、从"确定逻辑"到"动态系统"
手游逻辑:
ts
if (enemyNear) attack()
AI 驱动:
ts
const action = agent.decide(state)
本质变化:
从"写死逻辑" → "动态决策系统"
九、从"项目"到"系统工程"
传统手游:
客户端 + 服务器
鸿蒙 AI 游戏:
客户端
AI 模块
多设备协同
数据系统
复杂度指数级上升。
十、一个对比总结
把所有变化压缩成一张图:
手游开发逻辑
Game Loop
↓
Render
↓
Input
↓
Update
鸿蒙游戏开发逻辑
State(状态)
↓
UI(自动渲染)
↓
Interaction(交互)
↓
Agent / Service(决策与能力)
总结
从手游到 HarmonyOS 游戏,本质不是"换个平台",而是:
换了一种开发思维。
可以用五句话总结:
1、UI 逻辑变了
手动刷新 → 状态驱动
2、运行机制变了
Game Loop → 系统调度
3、设备边界变了
单设备 → 分布式
4、角色变了
只有玩家 → 玩家 + AI
5、目标变了
做功能 → 做能力系统
最后给你一个非常关键的判断标准;如果你写鸿蒙游戏时,代码还是这样:
ts
setInterval + 手动 render
那你大概率还停留在"手游思维"。而真正的鸿蒙游戏开发,应该是:
ts
State → 自动 UI → Agent / Service
这也是为什么很多人会说:
鸿蒙不是一个"平台升级",而是一次"开发范式升级"。