获奖站拆解
Awwwards SOTD / The FWAEN

No Mercy Michel

No Mercy Michel 是巴黎工作室 Merci-Michel 拿自己员工做对手的一局掰手腕。访客输入昵称后先在线等一个真人对手,等不到,就由一位 Merci-Michel 的员工出场。28 位员工各有一条手臂,肤色、纹身和配饰各不相同,有人戴着劳力士,有人文着法棍和披萨。比赛三局两胜,比的只是谁点鼠标点得更快。

这是 Merci-Michel 给自己做的小游戏,游戏名把工作室名字里的 Merci(法语的谢谢)换成了 No Mercy(毫不留情),开场第一句就是 You thought we were nice people(你还以为我们是好人)。这个游戏拿到了 FWA 的当日站(FWA of the Day)。

首页上,蓝色拳击台前两条卡通手臂扣在一起,一条是深色皮肤、系着红色头巾,另一条是浅色皮肤、文着 I'M TIRED,上方是橙色立体大字 NO MERCY 和霓虹灯写的 Michel,下方是昵称输入框和 Fight 按钮。
首页上,蓝色拳击台前两条卡通手臂扣在一起,一条是深色皮肤、系着红色头巾,另一条是浅色皮肤、文着 I'M TIRED,上方是橙色立体大字 NO MERCY 和霓虹灯写的 Michel,下方是昵称输入框和 Fight 按钮。

01概念

访客在首页输入一个昵称,按下 Fight 按钮,No Mercy Michel 就先在线上替他找一位同时在玩的真人。访客等了大约 15 秒还找不到真人时,系统会改派一位 Merci-Michel 的员工来当对手。

等待对手的画面,深蓝底色中间一个圆形的舷窗,窗里是访客那条浅色手臂。
等待对手的画面,深蓝底色中间一个圆形的舷窗,窗里是访客那条浅色手臂。

Merci-Michel 把全体员工做成了游戏里的对手,工作室介绍自己的方式因此从案例和团队照片变成了一场场比赛。游戏里一共有 28 位对手,每一位都有自己的名字、一个外号、难度等级、手臂的肤色,以及一组配饰和纹身,难度分成简单、中等、困难和专家四档。纹身大多是个人化的小图案,有人文着自己的名字,有人文着 Game Boy、骰子和小胡子。访客每打一场,系统就换一位还没交过手的员工,直到把所有人都打过一遍,所以这个游戏也是一份另类的团队介绍。

比赛的规则只有点击,访客每点一下鼠标或按一下空格键,就给自己的手臂加一次分。双方的分差决定两条手臂往哪边倒。分差拉到一个固定值,这一局就结束,三局两胜。为了不让一局拖太久,每一下的分值会随时间变大,开局 2 秒后从 1 分涨到 3 分,6 秒后再涨到 4 分。

作为对手的员工也有自己的出手节奏。程序按难度给每位员工定一个基础点击间隔,每一下再随机浮动一成,所以对手的手速不是匀速的。开局 6 秒后,对手开始变累,点击间隔一点点拉长。一位中等难度的员工开局每秒能点 6.6 下,打了 20 秒后降到每秒 3 下多,访客只要撑过开头,就有机会把比分扳回来。

比赛结束后的文案延续了开场那句话的嘲讽口吻。访客输了,屏幕上写着 YOU SUCK(你真菜)和 we are not surprised at all(我们一点都不意外),赢了则是 VICTORY(胜利)和当前的连胜次数。

首页上还有两样东西,让访客在比赛之外也有理由回来。右下角挂着一张连胜排行榜,只列前十名,第一名连赢了 149 场。页面顶部一直滚着 FREE STICKERS(免费贴纸)的横幅,点进去是一张订阅表单,订阅的人可以抽 Merci-Michel 的贴纸。

02设计

整个游戏发生在一个三维的拳击台上。台面、围绳和角落里搭着毛巾的凳子都在,背景里是一片虚焦的蓝色灯光,像一座坐满观众的场馆。两条手臂是软胶玩具一样的卡通造型,表面圆润、反光柔和,纹身像贴纸一样印在皮肤上。镜头始终从侧面低角度看着这两条手臂。

比赛中的一帧,蓝色拳击台上浅色手臂和一条青蓝色、文满小图案的手臂扣在一起,左上角是 Astounding REVIEWER 和每秒点击数,右上角是对手 Featherweight MIMIE,右下方飘着一行 SMASH HIM。
比赛中的一帧,蓝色拳击台上浅色手臂和一条青蓝色、文满小图案的手臂扣在一起,左上角是 Astounding REVIEWER 和每秒点击数,右上角是对手 Featherweight MIMIE,右下方飘着一行 SMASH HIM。

界面的字体借用了体育比赛的语言。昵称、回合数、READY 和 FIGHT 这些大字用的是 United Sans 的超粗和压缩字形,像球衣号码和赛事海报,对手的外号和 Winstreak(连胜)这类点缀词则用一款叫 Cetary 的手写体。两位选手的名字分列在屏幕左上和右上,下面各写着实时的每秒点击数,像电视转播里的比分牌。首页的 Fight 按钮是一颗带厚度的橙色圆钮,和手臂的软胶质感是同一类材质。

场景的颜色跟着比赛的状态变,平时整个场景是深蓝色的。访客赢下这一场,场景整体变成金黄,输了就变成暗粉红,画面四周的暗角也跟着换成深蓝、暗黄或暗红。一局分出胜负的那一刻,拳击台的地面会泛起一圈红光。

一局分出胜负的瞬间,镜头推到访客那条浅色手臂跟前,手臂占了画面左半边,地面泛着红光,右下方飘着 CRUSH HIM。
一局分出胜负的瞬间,镜头推到访客那条浅色手臂跟前,手臂占了画面左半边,地面泛着红光,右下方飘着 CRUSH HIM。

Merci-Michel 把观众的声音做成了飘在场地里的文字。比赛时屏幕上会不断浮起一行行倾斜的白字,有的是欢呼,比如 SMASH HIM、GO GO GO、FINISH HIM 和 MONSTER,有的是嘘声,比如 YOU SUCK、LAME、BORING 和 HAHAHA。这些字是三维场景里的粒子,而不是网页文字,它们从选手身后浮起,再慢慢淡掉,给访客一种有人在台下看着的压力。

03动效

这个游戏从进门到结算,都是一连串的舞台调度。访客按下 Fight 后,屏幕缩成一个圆形的舷窗,窗里是访客自己的手臂,下面写着 Looking for a challenger(正在寻找对手)这类等待文案。找到对手后,两条手臂从舷窗里出来扣在一起,READY 和 FIGHT 两个大字随着一团白色的冲击波炸出来,比赛才开始。每一局结束后,屏幕先打出 ROUND 2 的字样,再重复一遍 READY 和 FIGHT。

比赛中的动画都在放大点击的反馈。两条手臂的角度直接对应分差,访客点得快,自己的手臂就一点点把对方压下去,镜头也跟着偏过去。一局分出胜负时,镜头会冲到赢家那条手臂跟前。赢下一整场后,一条手臂在金色的场景里单独举起来,VICTORY 几个大字斜着压在它前面。对局中的画面始终保持每秒 60 帧,也就是每帧约 16.7 毫秒,最慢的一帧是 36 毫秒。

赢下整场之后,金色的拳击台中央悬着一条浅色手臂,白色大字 VICTORY 斜着压在它前面,下面写着 WINSTREAK: 0。
赢下整场之后,金色的拳击台中央悬着一条浅色手臂,白色大字 VICTORY 斜着压在它前面,下面写着 WINSTREAK: 0。

04工程

No Mercy Michel 的界面是用 Vue 写的,Vite 负责打包,三维部分交给 three.js,three.js 外面还包着一层 Merci-Michel 自己的 WebGL 框架。这个游戏可能早在几年前就做好了。它用的 three.js r146 是 2022 年发布的版本,项目在后台数据服务上的名字又叫 mm-10years,看起来是工作室十周年时做的,今年才拿到 FWA 当日站。

实时对战靠的是 Google 的 Firebase,这是一套帮网站存取实时数据的云端服务。访客进站时会被分配一个匿名身份,按下 Fight 后进入 Firebase 实时数据库里的等候区。匹配到真人之后,两边的点击数据是通过点对点的连接直接互相发送的,排行榜和连胜记录则存在 Firebase 上。

这个三维场景在显卡上的负担很轻,结算页上每一帧只向显卡发出 23 次绘制指令(draw call),场景里约 5.6 万个三角形。程序会先按显卡型号定一个初始画质档位,画面跑顺之后再往上调,在 RTX 3060 这一级的显卡上,开场 7 秒左右就能升到最高一档。

这个游戏的下载量很大,首次打开首页就要下载约 11.4 MB,而访客这时还只看到一个输入框和一个按钮。下载量里最大的单个文件是一个 1.6 MB 的音效合集,接着是手臂用的三张 PNG 贴图,合计约 3.2 MB,最大的一张是 1.5 MB 的法线图。法线图记录的是表面的细小起伏,让手臂表面在不增加模型面数的情况下也多出细小的凹凸。打完两场比赛后累计是 13.6 MB,多出来的主要是分成三层的背景音乐,每层约 380 KB。

首屏本身来得很快,服务器在 150 到 215 毫秒内返回第一个字节,浏览器 276 到 344 毫秒画出第一块内容(FCP)。这两项分别远在 Google 建议的 0.8 秒和 1.8 秒之内,加载中也没有东西跳位置。问题出在之后的准备阶段,页面在加载时有一个长 1.2 秒的长任务,也就是一段让浏览器连续忙着、完全不响应输入的脚本,访客这时点任何地方都没有反应。

键盘用户能玩这个游戏,读屏软件的用户和怕晃动画面的访客却被挡在了外面。空格键和鼠标左键的作用一样,所以只用键盘也能打完一场。整个场景却画在一块没有任何文字说明的画布里,读屏软件的用户听不到比分,也不知道对手是谁。操作系统里有一个减少动态效果的设置,是给容易被屏幕上的运动弄得不舒服的人用的,这个站的样式表没有为它写任何规则,镜头摆动、粒子文字和冲到手臂跟前的特写在任何设置下都照常播放。

05评分与团队

奖项 出处 日期 分数
FWA of the Day The FWA 2026-09-26 85 POINTS,DAYS 2

Merci-Michel 的这个游戏在 FWA 拿到 85 分,FWA 把它归在 Fun & Playable(好玩可玩)、Game(游戏)和 Personal/Portfolio(个人与作品集)三个分类下。FWA 不公布分项分数,所以看不出评委在哪一方面给分最高。

署名 身份 战绩
Merci-Michel 巴黎数字游戏化工作室 FWA 80(FOTD 64)

署名只有 Merci-Michel 这个工作室,而游戏里的 28 位对手就是这间工作室的成员,所以做游戏的人和被打的人是同一群人。Merci-Michel 是一家巴黎的数字游戏化工作室,也就是把品牌内容做成游戏的工作室。这个游戏是它拿到的第 80 个 FWA,它的当日站一共有 64 个。

06档案

获奖日期
2026-09-26
奖项
The FWA FOTD 2026-09-26
站点
https://no.merci-michel.com/
署名
Merci-Michel
设计取向
interface
技术路线
realtime
The FWA
85 POINTS,DAYS 2。https://thefwa.com/cases/no-mercy-michel
技术栈
Vue,Vite,three.js r146,Firebase 实时数据库与匿名登录,点对点连接,Web Audio 音频精灵
资产总计
首次加载约 11.4 MB,其中音效合集 1.6 MB,三张 PNG 贴图约 3.2 MB。打完两场 13.6 MB
首屏与帧率
FCP 276 到 344 ms,LCP 376 ms,CLS 0。对局 60 fps