← → 翻页 · B 静态 · ESC 索引
EN
Gameboy Music Player · AI Coding
01 / 35

如何用 AI Coding 构建一个
Gameboy Music Player

从界面到可运行体验
Sakura Luo · QQ 音乐
→ swipe / arrow keys
About · Sakura Luo
02 / 35
Sakura Luo
你好,这是

Sakura Luo

南加州大学 / 游戏互动设计 硕士

艺术中心设计学院 / 交互设计 本科

2021–22

清华未来实验室 · 严肃游戏研究

2022

世界构建实验室 · VR 界面设计研究

2023

腾讯游戏 · QQ 飞车游戏交互设计

2024–NOW

腾讯音乐 · QQ 音乐AI 音乐创作体验设计

从游戏互动 → VR 研究 → 腾讯游戏 → QQ 音乐 AI 体验
音乐 × 游戏 × 界面 × AI Coding

Process · Shift
03 / 35
流程 · 设计路径变了

以前 vs 现在

A 传统流程
概念 → 线框 → 高保真 → 动效说明 → 开发还原
Traditional Design Workflow
  • 画出来 → 解释给开发 → 等待实现 → 再验收
  • 设计师的核心能力是「画出一个界面」
B AI Coding 流程
概念 → 语言描述 → 代码生成 → 交互验证 → 体验迭代
AI Coding Workflow
  • 描述出来 → 立即生成 → 立刻体验 → 继续修正
  • 核心能力变成「定义体验系统」
Design Step 1 · Define
04 / 35
案例 · 先用 Gameboy Music Player 说明 AI Coding 的起点

我要做的不是一张图
而是一个可玩的音乐播放器

如果只说「做一个 Gameboy 音乐播放器」,AI 很容易只生成一个复古播放器界面。
但我想做的是:一个长得像复古掌机、可以播放音乐、按键能控制歌曲、屏幕和角色会给出反馈的互动网页。

设备外观 · 音乐内容 · 按键交互 · 像素角色 · 游戏反馈

所以后面不是直接让 AI 生成页面,而是一步步把这个体验拆清楚。
AI Coding · Software Stack
05 / 35
工具 · 我在这个项目里用到的 AI Coding 软件

我的 AI Coding 工具箱

Figma Make logo
01

Figma Make

从视觉稿、界面想法到可交互页面,快速生成第一版体验。

Codex logo
02

Codex

直接进入代码文件,修改页面、整理结构、接入视频和素材。

ChatGPT logo
03

ChatGPT

梳理概念、生成 prompt、解释游戏设计和交互逻辑。

Jimeng logo
04

即梦

生成像素角色、背景图、游戏素材等视觉资产。

AI Coding · Starting Point
06 / 35
对象 · 先让 AI 理解对象,不要先让它生成界面

四个对象层

AI Coding 第一步
不是先写代码
而是先拆体验
只有把体验拆清楚,AI 才知道要生成什么组件、什么状态、什么反馈。
01

设备外观层

外壳比例、屏幕区域、按键布局、材质质感、品牌细节

02

内容层

歌曲信息、专辑封面、播放列表、歌词、播放进度与状态

03

操作交互层

播放 / 暂停、切歌、D-pad 方向键、爱心收藏、更多按钮反馈

04

游戏反馈层

像素角色、跑跳状态、奖励触发、小游戏规则、视觉与音效反馈

Prompt · Visual Language
07 / 35
Prompt Method

什么样的 Prompt 是好的?
模糊表达 → 视觉语言

不是把愿望写长,而是把对象、视角、材质、结构和内容翻译成 AI 能执行的视觉参数
Prompt · Device Layer
08 / 35
Case · 先说清楚,AI 才能稳定生成界面

模糊表达 → 视觉语言

A× 弱 Prompt
不要说:做一个 Gameboy 风格的音乐播放器。
问题不是短,而是没有设备信息:AI 不知道外壳比例、视角、材质、屏幕内容、按键布局和品牌细节。它只能猜一个「差不多像 Game Boy」的壳。
  • 只给风格词,没有对象结构
  • 没有固定视角,生成结果容易跑偏
  • 没有指定屏幕 UI,播放器信息会随机
  • 没有按键与品牌细节,设备记忆点不足
B 好 Prompt
主体:米白色 / 奶油色 Game Boy 掌机外壳;正视图、居中、无透视;拟物塑料质感,ABS 外壳,柔和高光,轻微阴影,整体像真实复古掌机。
顶部:左上一个粉红色小指示灯,右上 6 个小圆形扬声器孔,中间印有文字 “GAME CONSOLE”。
屏幕:深灰色大外框,内部是绿色单色 LCD 屏幕,呈现复古 Game Boy 风格的 8-bit 像素音乐播放器 UI。屏幕内所有元素都必须使用 pixel art / 8-bit style / low-resolution graphics / hard pixel edges / no smooth vector rendering / no anti-aliasing。整体屏幕效果像复古掌机的单色像素显示器,使用有限绿色色阶,带有清晰方块像素感。
屏幕内容:上方为像素风专辑封面,使用 8-bit pixel art 表现;含有歌曲列表,使用 pixel font 展示文字;播放进度条为像素块风格。
中部:机身印有文字 “Music Player”。
按键区域:左侧为黑色 clip-path 十字形按钮,有圆角,像实体按钮。中心嵌有播放三角形图标。右侧是两个红色圆形按钮,上方为爱心图标,下方为三点图标。下方有两个小按钮,分别标注 “MUSIC” 和 “GAME”。
底部:一排横向扬声器孔,底部印有文字 “QQ MUSIC”。
整体要求:外壳保持拟物、真实、复古掌机质感。只有屏幕内部 UI 采用强烈 8-bit 像素风格。屏幕内所有图标、字体、进度条、专辑封面、列表行都必须保持统一的 retro pixel aesthetic。视觉效果应让人联想到 Game Boy 上的像素音乐播放器界面。请将它制作成一个可交互网页组件,使用 HTML、CSS 和 JavaScript 实现,不要生成静态图片。
如果没有特别明确的想法,可以先找一张参考图发给 AI,让它用 HTML / CSS 语言描述这张图。
V1 · First Run
09 / 35
V1 · AI 第一版通常只是骨架,但这就是它的价值

快速获得
可运行骨架

✓ 第一版目标

先跑起来 · 先有结构 · 先有大致比例 · 先建立基础组件

✗ 第一版不是

一次完美 · 一次成品 · 一次达到审美标准

AI Coding 的核心不是「一次生成最终稿」,而是快速进入可体验、可判断、可迭代的状态
Prompt · Interaction State
10 / 35
交互状态 · 动态元素 prompt 中不只是写「按钮会动」

从静态界面到交互状态

A× 弱表达
不要说按钮点击时动一下。
这只是在描述一个视觉反馈,AI 不知道音乐如何播放、D-pad 如何控制、哪些按钮分别对应什么功能。
B 强表达
要说:
播放:当用户点击播放按钮时,音乐开始播放,调用 Apple Music 的免费 30s 试听 API,进度条开始推进。
D-pad:右键是下一首歌,左键是上一首歌,上键是音量增大,下键是音量减小。
功能按钮:点击爱心标注收藏。下方两个按钮:一个是音乐按钮,一个是游戏按钮。
Iteration · Judgment
11 / 35

AI 生成之后,设计师判断什么?

不是立刻加功能,而是判断这个版本哪里不对

— 01

功能是否成立

播放、暂停、切歌,基础功能可用吗?

— 02

操作是否清晰

按钮是否像真的可点击?

— 03

反馈是否及时

点击后有视觉反馈?音乐影响画面?

— 04

风格是否统一

外壳和屏幕保持同一语言?

— 05

概念是否被表达

用户会觉得是「可玩的小掌机」吗?

Iteration · Video Demo
12 / 35
演示 · 看一次真实的调整过程

从判断问题到继续修正

AI 生成第一版之后,重点不是马上接受结果,而是带着目标去看:哪里不像真实掌机?哪里不像音乐播放器?音乐是否可以播?所有的交互时候都有反馈?

Observe → Judge → Rewrite Prompt → Regenerate → Test

把设计判断变成下一轮 prompt,才是真正的迭代
Game · Mini Interaction
13 / 35
下一步

加入
小游戏互动

不是为了做一个完整游戏,而是在音乐播放体验里加入轻量、即时、有反馈的小游戏互动
Game Plan · Before Building
14 / 35
游戏策划

先拆清楚规则
再让 AI 写代码

玩法目标
关卡结构
胜负反馈
AI 不知道你想要什么游戏,除非你先把规则、目标和体验节奏说清楚。
Game · Element Breakdown
15 / 35
对比 · 同样是做小游戏,推进路径不同

传统游戏做法 vs AI Coding 做法

差别不是有没有设计,而是把想法推进到 demo 的路径不同。

A · Traditional
传统游戏做法
概念设定 → 游戏策划 → 原型制作 → 美术 / 音频制作 → 进入游戏引擎开发 → 测试调优
传统游戏引擎软件
Unity logo
Unreal Engine logo
Godot logo
传统开发通常需要在 Unity、Unreal Engine 或 Godot 这类游戏引擎里搭建场景、物理、角色控制和发布流程。
B · AI Coding
AI Coding 做法
拆清楚玩法、素材、交互和反馈 → 写成 Prompt → AI 生成代码 / 素材 → 预览 → 继续修正
ChatGPT Codex Figma Make 即梦 Cloudflare Pages
重点不是跳过设计,而是把设计判断说清楚,让 AI 快速生成可以体验的版本。
Game · AI Coding Summary
16 / 35
总结 · 用 AI 做一个小游戏,可以按这个顺序沟通

AI 做游戏的 5 个步骤

01

先输入游戏想法

让 AI 帮你补全核心玩法、交互逻辑、胜负条件和关卡节奏。

02

建立统一素材风格

说明像素风、漫画风、3D 风等风格,并保持角色、道具、背景一致。

03

搭建背景和 UI

把游戏场景、角色入口、分数、生命、按钮和状态界面放进可运行页面。

04

加入反馈细节并优化

让跳跃、收集、受伤、奖励、切歌、音效都有反馈,再根据体验继续改。

05

部署上线

把代码上传到 GitHub,再连接 Cloudflare / Vercel,让 demo 变成可以分享的网址。

Game · System Breakdown
17 / 35
拆解 · 以 Mario 这类 2D 横版平台游戏为例

设计小游戏,需要先拆系统

游戏策划

01

游戏规则

02

关卡结构

美术素材

03

角色动作

04

敌人与道具

05

背景世界

06

UI 反馈

音乐元素

07

音效节奏

这些元素共同决定玩家「跑、跳、躲、打、收集」的体验。
Game · Mini Game Demo
18 / 35
Demo · 把玩法跑起来,先验证能不能玩

小游戏 Demo

Demo 01 · Basic Jump

2D 横版游戏,有跳跃,物理碰撞到障碍物触发游戏结束。

Demo 02 · Platform Play

2D 横版平台游戏,有平台,有跳跃,吃金币,有敌人,物理碰撞到敌人触发游戏结束。

Game · Complete Prompt
19 / 35
怎么得到这个结果 · 先让 AI 输出策划方案,再转成可执行 Prompt

让 AI 给我一个横版平台游戏策划方案

我先问 AI:请设计一个原创 2D 横版平台跳跃游戏,玩法参考经典横版闯关,但不要使用 Mario 的角色、名称和版权素材。请给我一个游戏策划方案,并输出一个能让 AI 读懂、可以继续生成素材和代码的 prompt。

AI prompt screenshot
Visual Assets · Game Materials
20 / 35
美术素材

不是生成一张图
而是生成一套资产

角色
+
动作帧
+
场景背景
给 AI 描述美术素材时,要说清用途、风格、尺寸、状态、背景和统一性。
像素角色 · 动画素材
21 / 35
角色素材 · 先让角色可以被放进游戏里

像素风人物角色设计

01 · 角色形象

先定义角色长什么样

single pink dinosaur pixel character

角色不是一张好看的图,而是游戏里可以被控制、被替换、被播放的素材。

先说清楚角色长什么样:外形、比例、颜色、表情、描边、像素质感。

如果不想从零设计,也可以先找一个喜欢的现成角色,再让 AI 帮你放进游戏流程里。

02 · 动作状态

让角色能动起来

pink dinosaur sprite sheet

和 AI 沟通时,不只说「生成一个角色」,还要说清楚要哪些动作:待机、跑步、跳跃、攻击、受伤等。

这样后面做角色选择时,换的不只是头像,而是一套可以进入游戏的角色动作帧。

Game Iteration · Character Select
22 / 35
角色素材的下一步 · 把动作帧接进选择流程

进入游戏前,让用户先选角色

上一页讲的是角色要有动作帧;这一页是我偷懒但有效的做法:在 Petdex 上选择现成角色,把它的动作帧放进游戏里,让用户可以选择。

AI 从 Petdex 拿到的人物动作帧
Petdex Pepe sprite sheet
Prompt

我现在想在用户新进入一个游戏机的时候选角色,让用户选一个角色,第一个是这个兔子(展现兔子的gif) 第二个是这个pepe(https://petdex.crafter.run/pets/apupepe)看看是不是能调用petdex

美术素材 · 背景图
23 / 35
美术素材 · 背景不是一张普通插画,而是可横向延展的游戏场景资产

生成一个横条背景图

说用途,说视觉风格,说构图,说建筑类型,说色彩

horizontal pixel game background strip

生成一张用于横版跑酷游戏的 2D 像素风长条背景图。画面风格为可爱、梦幻、糖果感的 pixel art,整体偏 8bit / 16bit 游戏美术风格。色彩以粉色、奶油白、浅紫、浅蓝和亮黄色为主,统一温柔、高饱和、少女感。

构图为超长横向街景,所有建筑沿同一条地面平台从左到右连续排列,形成适合横版卷轴游戏的场景。不要天空,不要远景,不要人物,背景透明,只保留建筑和底部地面。

场景中包含多个不同但风格统一的像素建筑:音乐商店、唱片店、PHOTO 店、CAFE、可爱服装店、心形喷泉、小拱门、电话亭、灯塔、小城堡、专辑展示馆、甜品店 / 糖果店、可爱小屋。

每个建筑都应具有独立造型和装饰细节,例如心形元素、音符、唱片、花朵、蝴蝶结、麦克风、灯饰、招牌、拱门、窗户、门店陈列等;像素边缘清晰、无模糊、无写实质感,适合作为游戏场景素材。

Jesse Schell · The Lens of Surprise
24 / 35
The Art of Game Design book cover
The Lens of Surprise

Jesse Schell says designers should ask: “What will surprise players when they play my game?”

And whether the surprise comes from the story, rules, artwork, technology, or even from players surprising themselves.

中文翻译:Jesse Schell 提出「惊喜之镜」这个概念。他认为,设计师应该问自己:玩家在玩我的游戏时,什么会让他们感到惊喜?

这种惊喜可以来自故事、规则、美术、技术,甚至来自玩家对自己行为的意外发现。

Source · Jesse Schell, The Art of Game Design: A Book of Lenses
Game Design · Wow Moment
25 / 35
Game Design · Set Piece / Spectacle Moment

What is a WOW! Moment?

不是普通流程中的一步,而是玩家会停下来、注意到、记住的体验高点。
WOW Moment · Definition
26 / 35
定义 · 从游戏体验到通用体验

Wow Moment(惊叹时刻)

用户在体验产品、服务或内容时,因为获得超越预期的非凡体验,从而情不自禁发出赞叹或感到强烈惊喜的瞬间。

A · 核心特征

超出预期:体验远远好于用户的心理基准线。

强烈共鸣:能够调动用户情绪,留下深刻记忆点。

价值传递:常伴随用户立刻感知到产品核心价值,也就是 A-ha Moment。

B · 应用场景

产品与服务:功能极其顺畅、直击痛点,解决复杂问题。

营销与活动:通过场景、互动或意外福利产生情感共鸣。

内容创作:新观点或绝妙金句瞬间抓住注意力。

WOW Moment · Before / After
27 / 35
对比同一个小游戏,有没有惊喜触发点,体验会完全不同
A · 没有 Wow Moment

角色完成基础跑跳,但体验停留在规则层,没有明显的惊喜记忆点。

B · 有 Wow Moment

角色触发未知盒子后,奖励连续出现,形成让玩家停下来注意的惊喜瞬间。

Game Audio · Song Scene Wow Moment
28 / 35
玩法上的 Wow Moment · 歌曲不只是播放,也会改变游戏世界

切歌时,场景也跟着变

当用户切到不同歌手的歌曲,游戏不只是换音乐,而是切换到对应的应援色和场景。

汪苏泷:切到汪苏泷的歌曲时,画面进入汪苏泷的应援色和对应场景。

易烊千玺:切到易烊千玺的歌曲时,场景和 UI 氛围同步换成他的应援色。

让玩家感觉听不同的歌,都像进入艺人的小世界。

Game Audio · Feedback System
29 / 35
游戏音效

音效不是装饰
而是反馈系统

玩家操作
系统响应
情绪记忆
跳跃、收集、受伤、触发奖励、通关,都应该让玩家听见「发生了什么」。
Game Audio · Sound Map
30 / 35
拆解 · 先把游戏里需要发声的事件列出来

游戏里要有哪些声音?

01 · 操作反馈

按键有回应

跳跃、攻击、按钮点击、D-pad 切换方向。

02 · 奖励反馈

收集有满足感

金币、爱心、隐藏盒子、连续奖励、通关结算。

03 · 风险反馈

危险要被听见

受伤、碰撞、失败、敌人出现、生命减少。

04 · 氛围反馈

氛围有声音

背景音乐、暂停状态、关卡切换、胜利音乐。

Prompt · Sound Effects
31 / 35
沟通 · 先说听感目标,再说触发规则

让声音成为游戏反馈

01 · 先讲感受
我希望这个游戏听起来是复古、轻快、可爱的,不是写实音效,也不是很吵的街机噪音。
02 · 再讲动作
玩家跳起来、吃到金币、碰到敌人、打开未知盒子、到达终点时,都要有不同的声音反馈。
03 · 区分轻重
普通动作声音要短,奖励声音可以更亮,受伤声音要低一点,通关声音可以更有仪式感。
04 · 保持克制
音效是提示,不是抢戏。不要盖过背景音乐,连续触发时也不要叠成一团。
05 · 最后交给 AI 实现
如果暂时没有音频素材,就让 AI 先用 Web Audio 做一版 8bit 占位音效,之后再替换成正式素材。
Prompt · Audio Implementation
32 / 35
示例 · 把音效需求写成 AI 可以执行的 prompt

完整 Prompt

请为这个 2D 横版像素小游戏加入 8bit 游戏音效系统。音效不需要外部音频文件,可以使用浏览器音频能力生成短促、清脆、复古掌机风格的声音。

当角色跳跃时播放短促上扬的 jump sound;收集金币时播放清脆的 coin chime;攻击时播放轻微 punch / shoot sound;受伤或碰到敌人时播放低频 hit sound;打开未知盒子时播放 surprise sound,并在奖励连续出现时播放递进的奖励音;通关时播放 victory jingle。

要求:每个音效音量适中,不能盖过背景音乐;连续触发时不要刺耳或无限叠加;加入全局 mute 开关;第一次用户点击后再启动音频,避免浏览器自动播放限制。

Example · Sound Feedback Demo
Jump

短促上扬,提示角色离地。

Coin

清脆明亮,让收集有满足感。

Hit

低频短音,明确危险和扣血。

Surprise

未知盒子触发后,奖励声音递进。

Audio · Validation
33 / 35

怎么判断音效有没有做好?

音效的目标不是热闹,而是让玩家更清楚地感知操作、状态、奖励和风险。

— 01

即时性

声音是否在动作发生的瞬间出现?有没有延迟?

— 02

识别度

跳跃、金币、受伤、奖励能不能一听就分辨?

— 03

克制感

音效是否太多、太响、太尖?有没有和音乐打架?

— 04

可控性

是否有静音开关?连续触发是否做了防叠音处理?

Deploy · GitHub + Cloud Platform
34 / 35
部署 · 让项目从本地 demo 变成可以分享的网址

部署项目

A 将代码部署到 GitHub 仓库
GitHub 仓库
GitHub repository screenshot
把项目代码部署到 GitHub 仓库后,项目会有一个清晰的线上代码版本,方便管理、回溯、协作,也方便后续连接 Vercel / Cloudflare 自动发布。
  • 上传代码:把项目代码推到 GitHub 仓库
  • 关联平台:云平台关联这个 GitHub 仓库
  • 自动上线:之后每次提交代码到 GitHub,网页都会全自动重新部署上线
B 连接到平台上
Vercel / Cloudflare
Cloudflare dashboard screenshot
把 GitHub 仓库连接到 Vercel / Cloudflare 后,平台会自动读取代码、构建项目、生成线上网址。之后只要更新 GitHub,网页就会自动重新部署。
  • Vercel:部署体验简单,适合快速发布 demo
  • Cloudflare Pages:稳定,默认域名通常是 xxx.pages.dev
  • 自定义域名:如果想要自己的网址,可以去域名网站购买并绑定
35 / 35
CLOSING
THANK YOU

AI Coding
是体验迭代

从一个音乐播放器,到一个可以玩、可以听、可以分享的游戏体验。
Sakura Luo · QQ 音乐
2025.05
CORE CONCLUSIONS
TAKEAWAYS
一句话总结

AI 可以帮我们很快验证想法、生成版本、继续迭代;但真正重要的是保持耐心,持续和 AI 对话,把体验一点点改到更接近自己想要的样子。

01

好 Prompt 是把想法说清楚

不是一句「做个播放器」,而是说清外观、内容、交互、状态和反馈。

02

小游戏也要先拆解

先拆游戏策划、美术素材、角色动作、背景场景、UI 和音效,再让 AI 执行。

03

素材不是图,是可运行资产

角色要有动作帧,背景要能横向延展,Petdex 也可以先帮我验证角色选择。

04

体验要靠不断判断和修正

Wow Moment、切歌场景、游戏音效和部署上线,都是让 demo 变成可体验作品的步骤。