电梯轿厢在四楼轻轻一顿,双扇铁门向两侧滑开。
乐富中心A座的写字楼层高不算阔绰,走廊里铺着深灰色的耐磨胶地板,踩上去微微发软。
四楼最早只租了一间403室给刘昭毅的《FIFA足球经理》项目组,年后那边人手翻了一倍,工位挤得转不开身。
徐子游干脆让方敏华把隔壁空置的402与404室也一并租了下来。
报给房屋署租务组的改动表格走了两天流程,管理处才正式批复,允许在不改动承重结构与消防通道的前提下,敲掉402与403之间的非承重轻质砖墙。
工程队趁着岁末赶工拆墙、重新找平地面铺上同色胶地板,又在天花板上补了两排日光灯架,将两间屋子并作一处宽敞的开放式办公区,FIFA项目组的地盘也自此扩成了半层楼。
至于走廊另一头的404室,则单独留给了掌机软件组。
这间单位没有同隔壁打通,墙体完整,只朝走廊那面开了一道铝框玻璃门作为进出口,门楣上挂着块白底黑字的亚克力牌子:【掌机软件及工具链研发部】。
此部门从最初的台北五人组,如今也已经扩充到了十来号人。
小b上前推开玻璃门,靠里侧的L型长桌旁,林志远正带着阿森和两个港大理工科应届生围在一台康柏386前低声核对着什么。
听见推门声,背对着过道的阿森下意识回头瞥了一眼,手里的半截铅笔差点滑落,连忙用胳膊肘撞了撞旁边的组长:“远哥,徐总来了!”
林志远转过身,忙不迭放下手里厚厚的一沓传真底稿,迎上前来的时候顺手将卷在手肘处的毛衣袖口往下拉了拉:“徐总,您从美国回来了?”
话说到一半,他目光越过徐子游的肩头,瞧见后头那个背着帆布乐谱包、正探头探脑往屋里张望的姑娘,嘴角一弯,语气跟着松快了几分:“哟,稀客啊,周总监大驾光临啊。”
雅南被他说得耳根微热,从徐子游身后探出半个脑袋,眼尖地瞧见了林志远桌面上搁着的一台通体漆黑的掌机,小姑娘把帆布乐谱包往小b怀里一塞,凑过去好奇地问道:
“远哥,这台机器里现在装的是不是《消消乐》?我的音效合进去了没有?效果怎么样?”
“早合进去了!正等着你这位音乐总监来验收呢!”
林志远笑着从防静电垫上拿起那台又大变样的曜界工程样机,双手递给徐子游:“徐总,这是您赴台前搭好核心消除算法框架、交给我们组完善的休闲游戏作品:《消消乐》。三楼美术组年前抽空帮我们把全套图素重绘了一遍,周总监配的音效也刚烧录进卡带,您先过过目。”
徐子游伸手接过掌机。
因为换上了何启明团队攻克下来的四层板,这台新样机的机身比最早从红木城带回来的那台初代工程样机薄了近三分之一。
主板减薄之后,省出来的厚度让电池仓能往深里做一截,外壳的握把也跟着饱满了几分,整机握在手里比初代工程样机贴手得多。
方敏华从南山产业园掌机生产线新开出来的注塑件,合缝平整度比红木城手工打磨的那批好了不止一星半点,握在手里没有之前那种硌掌心的毛刺感。
徐子游翻过机身,指腹在电池仓盖的边缘蹭了一下,严丝合缝。
又把拇指搭在斜向错落的十字键与动作键上轻轻按了按,底下的微动磷铜弹片发出清脆利落的“咔哒”回弹声,全无寻常导电橡胶那种肉乎乎的滞涩感。
他又掂了掂分量,比带去山顶道给查先生和台北那帮人看的那台轻了几十克,手感非常好,长时间握持应该会舒服不少。
食指拨动侧面的电源开关,正面那块液晶屏瞬间亮了起来。
夏普大阪研究所的量产线良率虽然还在爬坡,但前期实验切片里挑出来的几十块全功能工程良品屏,早在一周前就已空运抵港,优先装在了这批内部测试样机上。
伴随着一阵清脆欢快的前奏,掌机内置的音源芯片将竹笛的滑音与琵琶的轮指模拟得颇为灵动,一张色彩明快、充满东方市井喜庆韵味的游戏标题画面跃然屏上。
前奏头一个滑音出来,雅南就“呀”了一声,两只手扒住徐子游的小臂,把大半个身子都探了过去:“出来了出来了!远哥,琵琶轮指那一拍没破音!真机上没破音!”
林志远笑着接了一句:“烧录完我们整机跑了两天,周总监可以放心,实机音效的测试效果非常好。”
徐子游点点头,按下Start键,切入第一关。
原本他写底层代码时用来占位的那些红绿蓝单调几何色块,如今全被周绮晴三姐妹替换成了精致讨喜的十六色国风小图标:眯着眼笑的小赤狐、沾着露珠的翠绿竹笋、外圆内方的泛光铜钱、圆滚滚的红绸灯笼,还有白胖软糯的芝麻团子。
在这块物理像素点距极密的便携彩屏上,每一个小图标的边缘都做了细腻的过渡抗锯齿处理,看着格外抓人眼球。
雅南没吵他玩,只是把下巴搁在他小臂上,乌溜溜的眼睛跟着棋盘走,看到那排芝麻团子落地排开时,小声念叨了一句:“晴姐姐把团子画得也太馋人了,看得我都饿了。”
徐子游拇指轻拨方向键,将棋盘中央的三只小赤狐横移连成一线。
“叮!”
画面上三只小狐狸毛茸茸的耳朵轻轻一抖,化作一圈细碎的像素星光消散开来,上方悬空的铜钱与竹笋顺着重力滑落填补空缺,恰巧又撞出了两组四连消与五连消!
“叮!哒!噔!咚——!”
掌机右下角的微型扬声器里,立刻蹦出了一串阶梯式往上拔高的清脆音效。
每多触发一次连击,音高便顺着“宫、商、角、徵、羽”的五声音阶往上蹿一截,配合着屏幕边框极轻微的闪烁反馈与翻倍跳出的亮黄色艺术字分数,那种纯粹直接的视听正反馈,让人手指头搭上去就有些停不下来。
五连那记“咚”收尾的瞬间,徐子游胳膊上那两根手指头明显收紧了一下。
“怎么样游哥哥?这个五声连击升调,是我拿罗兰合成器调了十几次才定下来的,听着是不是特别想一直消除下去?”
雅南凑在徐子游胳膊旁,歪着小脑袋,眼睛亮晶晶地等着夸奖。
“确实抓耳朵,比我原来随手塞进去的单音蜂鸣器强出十条街。”
徐子游笑着顺手通关了前三局,将微温的掌机递给早已心痒难耐的雅南,让她自己抱着去沙发角过瘾,这才转过头问林志远:“关卡和数值铺了多少了?”
“一百个预设关卡已经实打实铺完了六十五关!”
林志远翻开手边的关卡进度册,脸上带着几分劫后余生的感慨:“前面三十关是引导新手熟悉连消爽感的,三十关往后,我们每隔五关引入一种新机制。按现在的测试进度,根本用不了两个月,最多再有二十天,赶在三月上旬就能彻底封包,压制第一批成品卡带!”
徐子游接过进度册,垂眼翻看着上面用红蓝两色笔画出的难度波浪线,满意地微微颔首。
说起来,林志远这帮人原本是台北支援室的员工,以前干惯了辅佐施文冯审核星火计划、替各个独立游戏小组排雷提供技术支援的硬核差事,刚接手《消消乐》的关卡设计时,还差点闹出个大笑话。
那是徐子游动身去台北的前两天,林志远团队照着他给的“限时、障碍物、特定收集目标”三类基础框架,闷头苦干交上来的第一版关卡表。
徐子游当时只抽查了三十关往后的几张图,眉头就拧成了疙瘩。
这帮年轻人完全是用理工科思维在做游戏,从第三十一关开始,要么是粗暴地把盘面上的冰块障碍物增加数量,要么是干脆把过关目标分数翻上一倍。
整张表看下来,难度是一路笔直往上蹿的死线,把三消游戏最核心的“柳暗花明”与“爽快连击”全给扼杀了。
当时林志远红着脸承认,他们五个人以前在台北全是干技术的,冷不丁转行做关卡策划,满脑子想的都是“怎么用规则把玩家卡住”,压根没摸透休闲游戏让人上瘾的门道。
徐子游那会儿忙着筹备赴台的事,没工夫手把手教他们调数值,便干脆把三楼的阿歪叫了上来,让这位怪才抽了半天工夫给工具链组上了一课。
阿歪也没讲什么高深理论,只把《九龙城寨》里几个隐藏房间谜题的解法拆开来给他们看,核心就一句话:让玩家过关时觉得他自己是个天才。
做关卡最忌讳向玩家炫耀程序员有多聪明,得故意留一层看似隐蔽、实则顺手就能捅破的窗户纸。
玩家自己“发现”了连消路径,心里会冒出一股“我真厉害”的得意,成就感才会落到实处。
可要是关卡设计得太死、太刁,玩家只会觉得被算计,大骂一句傻逼游戏,手指一松就把机器放下了。
林志远那帮人本就是一点就透的聪明脑瓜,听完阿歪的拆解,当晚就推翻重来。
不再单纯堆砌冰块、拉高目标分数,转而重新排布盘面元素,把惊喜藏在那些看似无解的局面底下。
有时候故意在角落埋下一组不起眼的三消,一旦触发,连锁反应会自动炸开大片障碍,玩家会以为是自己灵光一闪,撞出了绝妙的连击。
“我们现在做难度曲线,都是跟着这个思路来的。” 林志远指尖点着进度册上起伏的红蓝曲线,“关卡不会一味变难,过几道高难度关卡,就放两关轻松的奖励关。不用硬肝,随便划两下棋盘就能打出大连击,专门给玩家喘口气、攒爽感。障碍物也不再无脑堆数量,每一种障碍登场前,都会先给一两关练习局,让玩家摸清楚破解的法子,再慢慢叠加组合。”
徐子游指尖沿着曲线缓缓滑动,目光落在中段几处陡然回落的低点。“奖励关不能给太多奖励,容易冲淡后面关卡的期待感。另外多留意随机盘面的兜底逻辑,别出现完全没有可消除棋子的死局,这种情况最消磨耐心。”
林志远应声答道,“明白,底层代码那边已经加了预判校验,生成棋盘时会提前检索,杜绝无解盘面。”
徐子游眼角余光瞥向沙发那边。
雅南正蜷在单人沙发里,整个人埋进掌机的屏幕光里,时不时小声发出惊喜的轻呼,指尖飞快按着按键,扬声器里断断续续飘出一串高低错落的五声音效。
徐子游收回视线,毫不吝啬地开口夸赞,“改得不错,算是摸到休闲游戏的门道了。”
他合上进度册,递还给林志远,顺口叮嘱道:“通关后解锁的那个随机生成无尽挑战模式,伪随机掉落的权重也再打磨一下,别让玩家在死局里干瞪眼。另外,把你们这回推翻重做的关卡设计心得整理成一份内部规范文档,回头印上几十份,发给台北施文冯手底下那些正在搞掌机小游戏竞赛的独立团队,让他们也少走点弯路。”
“明白!我这两天就抽空把文档攒出来!”林志远胸脯一挺,痛快应下。
徐子游目光在屋内新添置的几台开发机与墙上的进度表上慢扫了一圈,随口问道:“初八我去台北后,把你们年前赶工封装出来的掌机工具链交给了大宇和施文冯。这几天台湾那边的开发者上手情况怎么样?”
提到自己带着团队熬了好几个通宵搓出来的得意之作,林志远顿时眉眼活泛起来,嘴角往上扬了扬:
“顺得很!大宇的姚壮宪和蔡明宏前天专门发了两页纸的长途传真过来,把咱们这套工具链夸得跟神仙工具似的!”
这倒也不稀奇。大宇那两位主创原本就是吃IBM兼容机饭长大的,长年泡在DOS环境里写代码,之前为了把《大富翁》和《轩辕剑》往世嘉MD上搬,硬着头皮去啃摩托罗拉那套拗口的纯汇编指令集,光是为了搞定多图层卷轴的显存地址对齐,几个人抓耳挠腮折腾了快半个月。
如今拿到科创这套专门针对PC环境定制、将底层绘图、硬件缩放、音频调制和碰撞检测全数封装成标准C语言调用函数的工具链,拿来就能直接调用,于他们而言无异于久旱逢甘霖。
林志远从桌角翻出那两张热敏传真纸递给徐子游,语气里透着股自得:“传真里说,他们拿咱们配过去的简化接口盒插在台式机上,只调了两个标准绘图函数,花了不到半天工夫,就把《大富翁》的棋盘底层和骰子随机数逻辑在掌机屏幕上跑通了!”
徐子游扫了一眼传真纸上姚壮宪的描述,唇角微弯,随即又看向桌面上另一摞用红笔圈注过的清单:“那施文冯那边呢?他手底下收拢的那二三十支草根独立团队,水平参差不齐,用起来没卡壳?”
“正要跟您汇报这个。”
林志远指了指阿森面前正在重新编译的代码窗口:“台湾那边的小团队野路子多,不少人以前在DOS底下写惯了,内存管得紧,一换到咱们掌机工具链上,经常忘了手动清理堆栈,跑着跑着就容易内存越界死机;还有两个做文字冒险游戏的大学生团队,往显存里塞繁体大字库的时候,不知道避开屏幕刷新周期,画面闪得跟抽风一样。施主任昨天下午五点把第一批集中报上来的十四条共性小毛病全传真过来了,我和阿森早上一来就在改头文件,把指针保护和字库分批写入直接做成了傻瓜宏定义。今天中午前就能打好1.03版的补丁软盘,走下午的快件寄往台北!”
“动作挺快。”徐子游满意地点了点头,“独立团队底子薄,你们在文档里多写几个带注释的范例程序,把他们喂熟了,往后咱们掌机的软件库才不会缺粮。”
勉励了一番林志远,徐子游留下小b照看玩消消乐玩得不亦乐乎的雅南,自己径直走向隔壁刘昭毅统领的《FIFA足球经理2》项目组。
十几名程序员和年前新招进来的足球数据校对员正围在拼起的长条办公桌前忙碌。
靠墙的整面软木板上,密密麻麻钉满了从德国《踢球者》、法国《队报》和英国《Shoot!》杂志上剪下来的欧洲各大联赛冬季转会窗汇总剪报,国栋和阿豪正对着一张贴满红蓝标签的打印大表,逐行核对着英、法、德三语的球员译名与伤病恢复参数。
瞧见徐子游走进来,正蹲在世嘉MD开发机旁插拔逻辑分析仪排线的刘昭毅眼睛一亮,把手里的改锥往桌上一搁,拍着巴掌迎了上来:“徐总!您可快来看看,咱们二代的比赛画面,成了!”
《FIFA足球经理2》相比于初代,最大的卖点就是将原本简陋的圆点示意比赛盘面,全面升级成了带有丰富动作帧的2D俯视实时比赛画面。
可MD主机的图形芯片在物理层面上有一道死枷锁:同一屏幕最多只能支持八十个硬件活动块,而在同一条水平电视扫描线上,更是严禁超过二十个活动块并排。
平时中场倒脚还看不出毛病,一旦比赛进入白热化、双方球员加上足球、主裁判、边裁以及头顶浮动的战术体力光标同时挤在禁区前沿争顶角球时,单条扫描线上的活动块瞬间超标。
超标的部分会被硬件直接粗暴裁切丢弃,导致电视画面上经常出现半支球队的球员集体隐身、或者像鬼影一样疯狂闪烁卡顿的惨状。
年前刘昭毅带着人试了三种动态分配算法,都没能彻底根治这块心病,可以说是这个项目最大的拦路虎。
“世嘉东京那边把MD最新的开发文档寄过来了?”徐子游走到那台与MD连接的二十一寸索尼电视前停住脚步。
“上礼拜刚收到的航空快件!”
刘昭毅满脸掩饰不住的兴奋,拿起连着开发机的手柄,调出了一个预设好的“AC米兰对阵利物浦”的欧冠级别禁区混战测试存档:“徐总您看!”
随着他拇指按下开球键,监视器屏幕上,身穿红黑间条衫的米兰球员与红衫利物浦球员足足二十号人,密密麻麻地挤在大禁区弧顶到小禁区线之间的狭小区域内争抢落点,场边还有边裁举旗跑动、看台像素旗帜挥舞,以及屏幕顶端实时跳动的比分牌。
皮球高高旋入禁区,二十多个像素小人在同一水平区域内同时起跳、冲撞、倒钩解围。
整个过程行云流水,帧率非常稳定!
原先那种人一扎堆就半队球员凭空消失的致命缺陷彻底不见了踪影,只在禁区最拥挤的肉搏瞬间,边缘两三个非持球球员身上出现了极其轻微、几乎不影响肉眼观感的半透明微闪。
“用了水平消隐中断?”徐子游看了一眼屏幕上下方的图层结构,一眼便瞧出了端倪。
刘昭毅眼睛一亮,佩服得五体投地:“徐总真是神了,一眼就看穿了!世嘉去年给咱们的旧版文档里,故意隐瞒了视频显示处理器在扫描线间隙的寄存器锁存特性。我们翻烂了东京刚寄来的那本新参考手册才发现,只要在显像管电子束扫完球场上半截、进入水平消隐的那十几微秒空档里,用CPU中断指令强行改写一次活动块属性表,就能让球场上半区和下半区的球员,分时复用同一组硬件通道,等于凭空把同屏活动块上限翻了近一倍!”
“不过光靠中断复用还不够保险。”
旁边负责底层数据结构的阿杰凑过脑袋,指着屏幕上的球门框、角旗杆和球员脚下的阴影补充道:“远哥他们组搞工具链的时候给了我们一点启发,我们干脆把球门网、角旗、裁判还有静态的战术图标全从活动块里剥离了出来,改用动态瓦片重绘技术,直接塞进了背景卷轴层B里!这样一来,宝贵的硬件活动块名额就全省下来留给场上跑动的球员了。再加上我们把每一帧的活动块绘制优先级做了奇偶帧首尾倒序轮转:第一帧从1号画到22号,第二帧从22号倒着画回1号。哪怕真遇上二十个人叠在一条线上的极端死局,闪烁也会被均匀平摊到所有人的残影上,绝不会再出现关键防守球员整片消失的恶性Bug!”
徐子游听完这番拆解,眼底掠过一丝赞许。
利用H-Blank中断突破硬件通道上限,用背景瓦片层偷梁换柱藏起静态元素,再辅以奇偶帧轮转算法将硬件裁切转化为人眼视觉暂留可接受的轻微闪烁。
这套组合拳下来,几乎是把世嘉MD那颗图形芯片的潜能利用到了极致,应该找不到比这套更加行之有效的方案了。
在当下连日本世嘉本厂都还没把MD脾气摸透的当口,刘昭毅团队能靠自己啃下这套硬核图形技术,足见这半年多在乐富的实战练兵没有白费。
“干得漂亮。”
徐子游接过刘昭毅递来的手柄,亲自上手踢了两个攻防回合,手感顺滑得挑不出半点毛病。
他又按下Start键切入二代的经理人战术看板瞧了瞧。
原本初代略显繁琐的三级文字子菜单,如今已经按照他年前的要求完成了全面重构,通过按住B键配合十字键就能像转轮盘一样秒速呼出换人与阵型微调指令。
而在旁边国栋的电脑屏幕上,专门针对曜界掌机小屏幕裁剪的“大字号高对比度UI框架”也已经搭好了底子,随时可以共用这套成熟的底层比赛推演引擎,实现跨平台无缝移植。
“欧洲那边的球星卡下个月要搞首届大师巡回赛,理查德前两天还在发传真催问我们二代的准确定档时间。”
徐子游放下手柄,看着神采奕奕的刘昭毅:“英法德三语的本地化文本和冬季转会数据抓紧收尾,四月中旬之前,把二代的测试版金盘母带发去伦敦和东京做合规审查。咱们赶在五月份欧洲各大联赛赛季末争冠最白热化的时候,联手维珍在全欧同步上市!”
“徐总放心,保证不掉链子!”刘昭毅啪地立正,满面红光地应下。
在四楼巡视完,见雅南已经把《消消乐》前二十关打得差不多了,徐子游便唤上她与小b,顺着内部消防楼梯下到了三楼的主工作室。
相比于四楼的规整,三楼这片由两间毗邻单位打通而成的大本营,眼下正处于《九州灵兽志》全面量产冲刺的最高潮,比楼上要热闹得多。