重拾 flash 小游戏,给博客用上 Ruffle

前几天看到一个微博热搜 #植物大战僵尸杂交版作者初中毕业。 惊讶于现在的 00 后在 ACG 技术方面是真的强,我读书那会儿像《打,打个大西瓜》级别的作品可以说凤毛麟角。同时也真切感受到,怀旧小游戏的受众群体还真不少🤨 于是乎,重新折腾 flash 小游戏的念头与学生时代的自己一拍即合🙌

思绪回到大学时代的夜晚🌃,稍显逼仄的四人寝灯火通明,一个痴迷 web 技术的精神小伙坐在🖥️前把玩 yamaha tenori on。尽管不是搞音乐的料,这种零门槛自由发挥就能创造旋律的感觉依旧妙不可言𝄞⨾♫⋆。♪ ₊˚♬ ゚𓍢ִ…。突然,一个奇怪的想法浮上心头,“如此有趣,必须要要点赞收藏加分享。”于是,J.F’s Blog 诞生了!最初的站名叫做“饮水思源”,域名也是flash开头。后来陆续分享了一些 flash 小游戏,直到热乎劲儿过去了就开始长草🌿

那时候 4399 已经小有名气,而我主要光顾的是一个叫拼命玩游戏的个人博客,站长“拼命玩三郎”绝对算是资深 flash 玩家,从 2008 年开始,一共积累了五万多🎮,几乎每一个都写了详细介绍,甚至包括攻略和个人评价。惊喜的是,互联网档案馆(web archive)上能找到的最久远的导弹防御战依然可以正常玩。然而遗憾的是,wanga 网站已经打不开,时光机上最后的存档停留在 2020 年。去微博询问三郎本人,得到的答复是数据库损坏不得已暂时下线😔 除了微博,豆瓣上保留了三郎兄的一部分足迹权且做个参考。

曾经,flash 几近称霸整个互联网动画领域,而最终消失在大众视野也着实令人唏嘘。表面看是安全漏洞层出不穷导致被浏览器厂商抛弃,互联网造墙运动带来的割裂和流媒体崛起无形中也加速了 flash 创造源头的枯竭以及牛皮癣广告的泛滥。除了游戏,曾经的网络视频霸主优酷土豆也靠着 flash 流媒体技术起家。如今爱优腾早已投奔 H5,类似的命运却也发生在本地视频播放器上。PC 端曾经的一哥暴风影音🎬,企鹅难得的良心产品 QQ 影音已是半死不活,为爱发电的恒星播放器也走上收费的路子。放眼移动端,也就订阅制的 infuse 比较省心,其他所谓的免费版基本都需要各种折腾,UI 界面一言难尽不说,万年不修的 bug 也是一挑一大堆。

牢骚了半天,B 站有几个 up 主把这个事儿讲的很明白,搜“flash”关键词出来的前几个就分析的很透彻。有意思的是,B 站上好几个教学视频都点击量过百万,尽管长度只有十几秒。这也证明 flash🕹️ 依然有海量市的受众。在 flash 动画最火的时候,玩家就是开发者,开发者就是玩家,很多创意直到现在依然不过时,当下最流行的 3A 大作甚至也能从中找到不少灵感。还记得大学时代某一次专业课上,老师在几百人的课堂上展示了她们实验室的博士生兼 flash 大神制作的生物实验室教学动画,在做介绍的时候,语气中的自豪感简直藏都藏不住😆 到了 2024 年,针对 flash 的黑客攻击少了很多,牛皮癣广告也被 h5 继承了去,海量 flash 游戏最终沉睡在互联网各个角落,可以说,

🚩当下将是 flash 游戏最好的时代🚩

原因之一:画质绝对不是影响游戏性最重要的因素。

下面就将记录下最近为重拾 flash 取得的一些收获,主要目标是探索如何能比较方便的把玩。一般来说,flash🕹️ 被打包在 swf 文件中,可以离线使用,也可以嵌入网页中。大多数 swf 文件都很小巧,官方 flash 插件也一般不会存在兼容性问题。

Ruffle —— 无需安装,打开即玩

著名的 Ruffle项目使用 Rust 语言将 flash 移植到了 Windows、Mac、Android 等主流操作系统,当然也包括基于 Javascript 的 web 环境。事实上,你可以直接在 web achieve 打开 flash🕹️,比如刚刚提到的拼命玩三郎的博客,因为时光机已经贴心地内嵌了 Ruffle 脚本。简单搜索会发现,目前众多资源大站都用它作为前端引擎,可见兼容性是不错的。作为最简单的方法之一,用它复活 swf 文件是再合适不过了。于是,花了点时间在博客下面增加了小游戏子页面,并且制作了简单的游戏列表,以及功能按钮,包括重载本地上传字体加载全屏模式。默认 swf 是二进制时钟

第一版截图

目前实现了最低配的功能,UI也是极简风,后续有时间再逐步完善,比如动画效果、宽屏模式、更好的长宽调整按钮等等。根据这篇文章提到的,字体是 Ruffle 最容易出问题的部分。比如雪花寄语可以通过/snow.swf?wish=flashlab&to=蜘蛛抱蛋&count=300&type=flower这种带参数的 url 调整显示内容,然而中文字段默认无效,需要点击字体加载之后才能正常显示。即便如此,依然有些 swf 显示异常,比如搭桥游戏的 bug,官方 issue 已经被反馈多次却依然没有解决。

左边正常,右边Ruffle渲染效果

CefFlashBrowser —— 开源浏览器

CefFlashBrowser是内嵌 flash 插件的 DIY 浏览器,只有 windows 版本。优点是兼容性比 Ruffle 好、安装方便、开箱即食,缺点是体积稍大,个人维护 bug 较多,用来作 Ruffle 的 fallback 方案挺不错。比如搭桥游戏可以在7k7k找到各种版本。当然也可以直接使用 swf 直链链接,比如tenori-on

360 浏览器 + adobe flash player

这个算是“官方”解法了,flash player 国内特供版依旧在更新,只不过要配合 360 浏览器才可以正常使用。这个方案几乎兼容所有 flash 网站,就看你能不能接受 360。有人在 CefFlashBrowser 的 issue 提到,4399 的某些游戏无法在版本较旧的 flash player 下工作,很难说是不是跟国内代理有 PY 交易

旧版 chrome/firefox 浏览器

网传 firefox v84.0.2 是支持 flash 的最后一个版本,然而测试下来并没有成功,也就懒得继续折腾了。

一些 flash🕹️ 资源

  • 4399、7k7k 这些国内门户就不提了,基本都需要实名制
  • Wayback Machine,基于 Ruffle
  • crazygames、coolmathgames、gameflare等外站,大多基于 Ruffle
  • flashpoint,一个专注于备份全网 flash 资源的网站,胜在数量多

PS:去年上海乐器展上,在 YAMAHA 展位听 MASAKing 用最新的指鼓机 FDGP 带来的打击乐表演,现场人山人海。霓虹国在音乐上确实玩的比较花,tenori-on 的火爆足以证明这一点。

现场照片