
差友们,我要说一个不靠谱的事。
有这么一款游戏,过了二十多年,还有一堆人像磕了药一样每天玩。
它就是红警 2。

你别不信。
咱们编辑部就有好几个老哥,天天中午不看小姐姐也不刷差评君,就逮着红警视频下饭,完了周末还上对战平台 PK。
在各大媒体平台,也有不少专门制作红警视频的 UP 主,粉高达几十万甚至百万。
看到这,可能有差友回忆被勾起来了,脑子里已经框好几十辆光棱坦克筹备 All in。

但问题来了,当你忽然想来一把红警,回味下童年时
抱歉,你必然会被劝退。
你网上搜到的那些红警安装包,虽然能玩,但比较容易遇见问题。你要调好兼容性,解决一个个显示错误弹窗,才能勉强进入游戏。

你可能想问,有没电脑菜鸟能玩上的版本?
有是有。
一些红警玩家会和你说,去下一个对战平台,再注册一个账号,接下验证码,完事了去大厅里加入或创建对局。。。
还是有点麻烦,有官方正版吗?
也有。
但即使在 Steam 上买了 EA 官方的红警 2,大概率也是烧钱找罪受,黑屏、卡顿、显示错误的问题很多,不少人表示体验还不如盗版。


以上,还是针对 Windows 用户而言。
至于 Mac 用户?哥们建议直接舍弃治疗。
所以世超就想问了:
在这个地球上,到底还有没简单暴力点的办法,让咱们这种普通玩家想回味童年时,立刻就能来一把红警呢?
别搞什么兼容性,什么显示错误,什么对战平台,系统需要,最好那什么,也不要让我找资源,下载安装包。。。
有吗,有嘛?
其实算有些。
近期世超摸鱼时,找到一个网页版红警Chrono Divide(时空分裂)。
注意,重点是:网页版,免费。
无论你是 PC、Mac、手机、平板还是小天才电话手表、冰箱门的显示器
只须有浏览器,点开就能玩。

其实刚开始啊,世超对它没抱太大期望。毕竟网页性能摆在这,估摸着是个青春版,体验体验得了。
直到我打开它。。。
卧槽。
单机、联机对战有了,天梯排位有了,甚至还支持打 mod。

游玩本钱几乎没,进入网页点 download,它会自己下载并解压游戏包。
10 秒后,你就能看到下面的画面了。
只能说,世超一下就回到了当年的暑假。。。

别急,再进入游戏操作两下。
光棱坦克、蜘蛛机器人、V3 火箭、基洛夫飞艇,你童年记忆里的所有,全都回来了。

就连更高阶点的操作,按住 Ctrl 强制攻击,工程师修复建筑,这类也都完美支持。
真要说美中不足,就是巡逻功能没办法循坏,粒子成效没复现。
但各位,这可是一个网页啊!

更不靠谱的事情还在后面。
我本以为这是某种移植、封装、模拟器技术,把原版红警塞进网页里,但通过一周的努力联系上作者 Alexandru Ciucă,一个有 15 年编程经验的罗马利亚技术员。。。
他告诉我
哦,我用 Typescript(Javascript)重写了红警。
不是?
重写游戏?
兄弟们,你要了解:
红警 2 源码,官方都弄丢了。。。
所以Alexandru 要重写游戏,就要通过黑盒逆向工程,剖析红警 2 所有些行为逻辑。
有点很难理解?
想象一下,你要复刻一道菜,但没食谱。你只能观看其他人吃这道菜的视频,通过筷子动作、咀嚼步伐,来猜测食材的软硬、口味。
Alexandru 就是如此复刻红警的。
除去官方的美术素材,rule.ini 配置文件(写着每一个单位的攻击力、血量、本钱)可以直接引用
整个游戏逻辑核心引擎,都是 Alexandru 靠着录屏、慢放、逐帧剖析、修改 rules.ini 文件、一遍遍测试、试错,推导出游戏逻辑的。
火箭飞行兵起飞时的动画是什么样的?在空中时那种一上一下的飞行状况怎么样复刻?建筑摧毁后四散碎片是如何飞溅的?
这类都需要反复斟酌,反复模拟的。

这个工程量有多大,没人了解。
但看到官方网站的更新日志密密麻麻记录了整整 5 年,咱心里也差不多有数了。

不过,有意思的来了。
世超在日志中翻到了几个版本,说修复了红警 2 原版 bug。
譬如 0.64 版本,修复防空步兵对防空炮的伤害(原版《红警2》bug)。

0.18版本,建筑工场不再可以同时被打包/移动和供应(红戒2及尤里复仇 bug );预防免费工程师被刷出。

嘶,是否不太对?
按理说,游戏引擎和代码都是自己重写的,为什么会有原版 Bug?
对于这个问题,Alexandru 的回答非常叫人震撼。
我给大伙总结下,网页红警 bug 有 3 种。

第一种是逻辑 bug。
Alexandru写了一些基础规则后,一些复杂的游戏机制就能在这个规则基础上直接形成,同样也会带来 bug。好比你用乐高根据其他人的设计堆房屋,其他人的房屋有 bug 不太稳,你的也一样。
第二种是数据 bug。
Rules.ini 配置文件,里面记录着所有单位的攻击力、血量、建导致本这类参数。当官方自己写错了参数值,那 Alexandru 导入这个配置文件时,也会出错。
第三种是有意的 bug。

大家都知道,有的 bug 存在久了,反而会成为游戏特点和文化,譬如 CF 鬼跳,街霸 2 的取消技,文明的核弹狂魔甘地。
红警也是这样。
目前不少对战平台会评估红警 bug:不影响平衡性的就保留,成为游戏特点;紧急破坏公平的才打补丁修复。
所以到这你也了解了:
Alexandru 为了完美还原红警 2 的手感,把某些原版 bug 也复刻了出来。
什么叫真正的原汁原味啊。。。

但这,还不算复刻红警最困难的部分,最让Alexandru头疼的是在 3D 引擎里渲染 2D 的素材。
原版红警用的是画家算法(一种图形渲染技术)。
它把 2D 图像一层层叠在平面上,靠着先后排序(譬如让士兵盖在草地上面),达到一种立体成效。
但网页版红警用了真正的 3D 引擎来显示这类贴图后,反而出问题了。
坦克该压着草地还是草地该露出来,建筑该挡住士兵多少,这类细节会非常难和原版对得上。

这种底层决定一旦做了就改不了,我在这类细节上花的时间简直荒谬 ,这是 Alexandru 原话。

所以,这么一个便捷你游玩红警的网页项目,背后真下了非常大的功夫。
现在 GitHub 上有个叫 redalert2 的仓库,里面反编译了 Chrono Divide 的代码并开源,大伙感兴趣的或者也想重制一个网页红警,可以逛一逛。

写到这,世超发现 Chrono Divide 虽然牛逼,但对国内玩家还是有门槛:
英文界面得慢慢适应,首次进入要等待下载美术资源,国内联机时延迟也比较高,平板上操作也非常费劲。
原本世超还计划写一点用课程,但发现有人已经把事情办了。
北京一个前端技术员阿晨,做了一个中文镜像网站 ra2web:

这哥们不光把界面全部汉化,还用付费 CDN 加速,优化玩家互联网体验。
最重要的是,他花了两周时间逆向 JS 代码,给手机端加上了快捷面板编队、强攻、回基地,这意味着你即使用手机、平板,也能爽玩红警了。
后来Alexandru了解后,还专门为中文站开发了一套 API,也把中文站写进了致谢名单。

阿晨做 ra2web 缘由非常简单,他的历程和各位一样。
2021 年他在 Windows 10 上玩红警,调试兼容性调到崩溃。后来偶然接触到 Chronodivide 项目,想到国内一堆玩家还在买模拟器玩红警,于是注册了 ra2web 做中文站。
时至现在,ra2web 联机用户数已经超越 10 万,备受粉欢迎。
但阿晨为这个用爱发电的项目,也付出不少代价。
可能由于影响了商业平台和企业的利益,他的网站被攻击过,域名被 DNS 劫持过,还遭过一些人身攻击,也由于自掏腰包得不到家人理解。。。
阿晨和我说,他的网页红警账号之前莫名其妙上了次热点,缘由是一堆人@网警时,把他也艾特上了。

年代确实变了,已经有不少人不了解红警是什么了。
但看着 Alexandru 那份持续 5 年、密密麻麻的更新日志,看着阿晨说的那句网站的运营就是满足我一个人对红警的热爱,你会了解:
当这个经典游戏在现代系统上愈加难运行,当官方没推出适配新系统的版本,总有人会站出来,用我们的方法守护一同的记忆。
他们不图钱,甚至赔钱。
他们只不过想让每个忽然想起红警的人,打开浏览器,就能回到那个夏季。


