入夜,徐子游躺在自家床上,看着天花板,脑子里却还在转。
打地鼠、打猎、打鬼子。够用,但不够狠。
CES上那么多大厂,任天堂、索尼、微软、苹果,哪个不是带着重磅产品去的?他一个香港小厂,就靠三款小游戏,凭什么让人记住?
更何况还有一头势必会吸引所有人注意力的猛兽。
床边书桌上摊着他订阅的《电子游戏月刊》,头版就是苏清妍提及的那个俄罗斯方块的北美发行预告,苏联佬的这个方块游戏,去年在欧洲已经卖疯了,这次美国CES电子消费展,它会正式杀进美国市场。
他那三个小游戏,撑死了也只是个小游戏,路过的人停下来玩个三五分钟,转头就忘了。跟俄罗斯方块比,根本不够看。
他需要一个东西,能让客户坐下来就不想走,走之前还非要夸一句“这鼠标不错”。
微软当年,是靠什么把鼠标卖出去的?纸牌游戏。全世界都认识扑克牌。美国人爱打,欧洲人爱打,日本人香港人也爱打。上手零门槛。
靠着那些个纸牌小游戏,微软硬生生把鼠标从没人要的冷门配件,做成了 PC 的标配。
那他能不能搞个更狠的?
徐子游脑子里不由自主冒出来那个 2024 年爆火的小丑牌(Balatro)。
后世的独立游戏黑马,一套扑克牌加一堆小丑,卖了五百万份。他上辈子也沉迷过,通关了不知道多少遍。
点鼠标就能玩,继承了纸牌的强上瘾性,还刚好能把他那光电鼠标的优点全给老外展示得明明白白。
但那游戏,他太清楚,优点一大堆,但毛病也不少。
第一,平衡性烂得一批,有的小丑牌强到离谱,有的小丑牌刷新出来弱到送都没人要;
第二,高难度没刷出那几种好通关的构筑基本等于坐牢,前两轮刷不到牌直接暴毙;
第三,牌型平衡问题很大,所有人都在打同花,顺子和同花顺没人玩。同花、对子、高牌等简单牌型收益过高,顺子、同花顺等高难度牌型收益不成正比,导致大多数玩家只打几种固定牌型,其他牌型沦为摆设。
第四,后期关卡数值膨胀过快,大部分流派撑不过几轮。
这些问题,对他来说,都不是问题。
最大的问题是,原版游戏文件他记得没错的话要100来M,他不确定以现有技术复刻这款游戏能不能装进一张标配为1.44MB的软盘里。
技术限制倒逼着他必须精简。这年代C语言虽然已成熟可用,并有实际游戏项目使用?,但并未成为主流游戏开发语言。
第二天一大早,徐子游坐在电脑桌前,细细翻着Turbo C 的手册还有 MASM 汇编的参考书,要想做极致的优化,光靠C语言还不够,他还得用汇编啃核心。
他在脑海里,把小丑牌的所有东西,拆成了一个个模块,一个个复刻优化。
首先是引擎。原版用的 Love2D,那玩意本身就占了几十MB,跑起来内存要 1G,目前主流的8086电脑根本跑不动。直接扔了。
他自己写引擎,用C写框架。核心的逻辑,比如扑克判定、小丑效果的计算,全用 8086 汇编写。随机生成,用线性同余法。种子固定,保证每局可复现,方便测试。
这一步就花了他大半天。
他对着汇编手册,一点点抠指令,把那些冗余的跳转全删了,把条件分支预测做到极致,原来 C 语言要几十行的扑克牌型判定,用汇编写,才几十字节,跑起来速度快了三倍,还省了一半的空间。
52张牌,四个花色,十种牌型。高牌、对子、两对、三条、顺子、同花、葫芦、四条、同花顺、皇家同花顺。完美识别!
然后是数据。原版的卡牌数据,用的是 Lua 的脚本,一个小丑的数据就要上百字节,150 个小丑,光数据就几 MB。
他把所有的数据,全压成了位字段。将小丑牌的数据,做成表格。一个小丑的完整数据占八个字节——编号、名称、效果类型、触发条件、数值参数。150 个小丑,全加起来不到2.4KB。
然后是字符串,那些卡牌的名字、描述,原来每个都存一遍,比如 “筹码”“倍率” 这两个词,几十个卡牌都用到,原来要存几十次,他做了个索引表,把所有重复的文本,只存一次,其他地方用索引指向它,光是这一步,又省了几十KB。
那些没用的东西,全砍了。
原版的成就系统、云存档、Mod 支持、统计面板,全扔了,只留最核心的单机要素,出牌、商城买牌、打盲注,就够了。
代码写完的时候,他看了一眼编译后的大小,512KB。
图形部分最头疼。原版的像素美术,24 色,还有 CRT 的模糊特效、屏幕抖动的动画,光这些就占了几十 MB。他全砍了。