徐子游盯着屏幕上那片跳动的五乘九草坪看了好一会儿。
这游戏的体量比《消消乐》大得多,光靠林志远手底下那几个搞工具链的程序员兼职可啃不下来。
但在玩法上,它又比《九州灵兽志》这种重度RPG更容易让欧美和日本的全年龄段玩家一眼上瘾。
《消消乐》是碎片时间掏出来解闷的小品,《九州灵兽志》得沉下心耗费几十上百个钟头去钻研养成与配队。
而《植物大战僵尸》恰好卡在正当中,比消消乐多一层策略深度,比九州灵兽志少一截养成时间。
这个位置,恰好是掌机首发阵容里最缺的那块拼图,也是徐子游选《植物大战僵尸》这个游戏的原因。
他把手搭在键盘上,先没急着往下敲代码,而是调出之前搭好的底层框架,翻到碰撞判定那一块重新过了一遍。
在八十年代末这个塔防品类尚未诞生的蛮荒时期,要把网格种植和阳光循环塞进掌机那点可怜的内存里,最棘手的其实不是常规算力。
绝大多数僵尸都是老老实实沿单行直冲,只吃同行的植物。
这种一维的单线判定,在1989年的处理器上算起来极省,甚至用不着复杂算法,每帧顺着草坪五条横线扫一遍就过去了。
真正让人头疼的,是那几个“不守规矩”的刺头。
矿工僵尸从地底直插后院,蹦极僵尸从半空垂直砸下来,投石车更是远远停在后排耍流氓。
这几样东西横跨行道、从天入地,要是硬塞进规整的单行批量计算里,整套顺溜的一维逻辑瞬间就会被搅得一团糟。
徐子游的解法也干脆得很:大路朝天,各走一边。
他直接把这帮刺头踢出了主循环,在内存里单开了一条独立的小链表。
一关里蹦极和矿工撑死同时刷出来三四只,整条名单常驻活跃的刺头不会超过七八个。
每帧只需抽出微秒级的闲暇,拿这几个坐标单独比对周围九个格子。
走正道的批量扫,抄近路的开小灶。两条道各算各的,谁也别拖累谁。
既把主检测线压在最快的直线路径上,又把特殊单位的消耗卡死在上限之内,绝不会因为场上多钻出两只矿工,就害得整台机器卡壳。
相较于判定,这游戏真正的大敌,是机能的物理天花板。
苏西图形芯片的硬件活动块配额是咬死的。
打到大后期的尸潮关卡,同屏几十只僵尸顶着铁桶路障咬过来,加上满地的向日葵、漫天飞的弹道、阳光和残血碎皮,硬件通道根本不够分。特别是矿工反向包抄、蹦极从天而降这些破规矩的单位,一挤进画面,就会凶狠地抢占发色通道。
好在,刚才在四楼视察刘昭毅团队啃下的那套方案,给了他不少灵感。
FIFA足球经理为了解决禁区二十几个人争顶的大难题,把球门角旗全甩给了背景层,再靠前后帧倒序轮转分时复用通道。
这套法子,搬进草坪里同样管用。
植物的泥土花盆、掉在草地上的墓碑这些死物,全给剥离出来塞进静态背景图层;满屏飞舞的豌豆与摇晃的僵尸,则按奇偶帧轮番抢占绘制通道:前一帧画单数,后一帧画双数,靠着人眼的视觉暂留,把硬件通道的硬伤悄悄抹平。
至于碰撞算法本身,植物大战僵尸全是规整的网格,远用不着FIFA那套复杂的扫描线中断技术。靠着最基础的定点整数与位运算,算力开销直接被压进了尘埃里。
草坪上规矩的单位走直线快车道,捣乱的刺头单独建表单检;画面渲染上,死物甩给背景,活物分帧轮转。
这套组合拳把三处死穴全堵死,哪怕后期关卡几十个僵尸叠着满屏火力平推,在苏西那颗芯片上跑起来,也照样能稳稳咬住满帧,绝不会卡成幻灯片。
好在徐子游前世本就有深厚的底子,先前赴台前,他就已经把最吃力的一维碰撞和网格定位啃得差不多,将核心逻辑架起了五成以上的筋骨。
这会儿梳理顺了思路,他重新在机械键盘上搭正十指,将这套解决方案彻底落成了代码。
搞定底子后剩下的时间,他全扑在给这套底层引擎添砖加瓦上。
新增的两个模块,一个叫“防具剥离判定”,专管铁桶、路障、橄榄球头盔这些东西。僵尸挨打先扣护甲,护甲碎了才伤本体,逻辑不复杂,但要把“护甲优先扣除”和“碎裂时掉落碎片动画”这两件事在内存里拆得干干净净,他还是费了些心思。
徐子游用了一个嵌套的结构体指针数组,类似于小账本,把每只僵尸的护甲值、护甲类型、碎裂阈值全挂在同一个节点下,主循环里只消一次判定就能读完。
另一块叫“场地环境规则库”,管的是白天草坪、黑夜墓碑、后院泳池这几张不同地图之间的网格属性变更。哪一格是泥地能种花盆、哪一格是水面必须放荷叶、哪一格是墓碑不能种东西,全被他压进了一张按关卡索引的配置表里,主循环只查表、不判断,省下来的算力全留给僵尸和子弹。
代码写起来极枯燥,落在屏幕上却渐渐生动起来。
“林志远那头的《消消乐》再有二十天就能封包压盘,到时候正好把这组人抽调过来,专门填充植物和僵尸的诸多派生子类;等三月中旬美术组把《九州》的美术资源彻底收了尾,正好无缝接手这边的卡通像素美术……”
徐子游按下F9键,跑完最后一轮无报错编译。
成了!
整套伤害分层与死亡销毁逻辑,顺滑得挑不出半点刺。
徐子游看着那堆散开的像素块,唇角微弯,搭在键盘上的手指熟练地敲下保存指令,将新增了两千多行核心代码的主程序稳稳备份进一张3.5英寸高密软盘里。
伴随着驱动器“咔哒”一声轻响,他退下软盘,装进防静电保护袋,锁进了桌子下面最底层的铁皮抽屉。
徐子游抬起手腕看了一眼表,时针已经悄然划过了下午三点半。
他站起身,活动了一下有些发酸的肩颈,迈步来到里侧的游戏测试区。
电视机前,雅南还盘腿坐在小板凳上,怀里抱着写满修改标记的曲谱本,正指挥着阿正微调《五行惊变》里那段急促的古筝扫弦音源。
徐子游走过去,伸手在小姑娘扎着羊角辫的发顶轻轻揉了一把:“我得去趟广播道亚视总台办点事,你在工作室跟阿正继续调音轨,记着别乱跑,等那边完事了我再让小b开车过来接你一块儿回家吃饭。”
雅南正听到兴头上,头也没回地摆了摆小手:“知道啦游哥哥,你忙你的去吧,我工作呢!”
徐子游失笑着摇了摇头,冲阿正和旁边抬头看来的阿歪、周绮晴等人打了声招呼,便带着早已在门口候着的小b推门步出了三楼工作室。
下了地下车库,黑色的奔驰轿车发出一声低沉的轰鸣,滑出乐富中心,顺着竹园道一路向西,径直驶入九龙塘广播道。