遊戲果醬(Game Jam):一種娛樂性質的遊戲開發比賽,參與者需要依據主題在四十八小時內從無到有開發出一款遊戲。
前夜
開車送媳婦閨女去烏蘭布統草原騎馬。天已黑透,車開遠光,在廢棄的忽必烈影視城左轉,沿沙坡土路顛簸一陣,闖入草原。草原遼闊,卻被鐵網木樁分割成一塊塊,按導航朝目標方位開,遇到圍欄便要找門、開門、關門。走了許久發現導航圖標不動,原來早就沒了衛星信號。打電話問邵哥:“你沿著那條公路開!”“周圍沒路!我們在不知哪片草原上!”月亮、北斗、遠處的燈光都用起來,最後開進了一家牧民的後院,隨後上了田邊小道、土路、公路,終於抵達夜宿的小院兒。
十一點多了,媳婦勸我住下,明早再回多倫參加Game Jam,但我去意已決。夜已深,怕再迷路,去找邵哥問路。推門進屋,大燈已熄,床頭一盞黃燈給屋裡各式雜物鍍上一層金,電暖氣的暖意將我引向床邊,邵哥裹著被子靠在床頭。他年紀大,懂文化,愛攝影,平日騎馬照顧指點我們頗多,也是我這個局外人在馬圈裡最聊得來的一位。我遞手機給他,請他指一個回程的導航位置,手機彈出了九宮格鍵盤。“喲,這能行嗎?要不您說名字我來錄入?”“沒事沒事,我也習慣用這種鍵盤。”九宮格拼音是從低智能手機一路帶過來的舊習慣,我們倆老到一塊兒了。“不能直接導多倫,得先定位在這個加油站。”邵哥搜出一個加油站,設為導航目的地。“你啊,先開到這個加油站,到了以後再導多倫,就不會走錯了。”“這路好開吧?別是碎石路。”“好開,好開,我們都是這麼開。”“謝謝邵哥,您早點休息吧。”“今天非得回去啊?現在可是夠晚的了,這兒有地方住。”“是啊,還有事兒,已經定好了。”出了小院兒和媳婦擁抱,外面冷透了。鑽進車裡,朝媳婦反覆揮揮手,駕車再次駛入黑暗。路上遍佈炮彈坑,左右躲閃急剎。從小道駛入省道,心剛放下,前方路上閃現幾攤血跡,隨後一個血呼啦的肉軀橫在地上,血染白毛,不見腦袋。開出百米才見到一個羊頭。
開進多倫縣城,總算可以關掉車的遠光。旅店還是上次那間,馬場的老闆和這兒熟,提前打招呼訂好了房。上樓進房間,很大,但擺著兩張床,床之外的可用空間很小。已是後半夜,電視櫃上搭起開發環境,坐下比劃幾下,電視櫃高,胳膊只能高高架著。挪到旁邊的矮櫃,請走上面的綠蘿,胳膊高度合適了,但腿被卡在下面。開發遊戲靠手,腿就委屈下吧。綠蘿盆已幹,給它們添滿水。上床定表,掃了眼比賽官網,發現不是上午9點開始,而是6點。這規矩改了兩年了,但我一直記不住,早年間參賽的印象太深了。鬧鐘向前撥,只能睡四個小時了。
第一天白天
清晨被鬧醒,比賽主題已公佈:Space is limited,眼熟,此前也有過類似的主題。Game Jam的主題是參賽者們提議並投票選出的,題目雷同的情況時有發生,因為每次的參賽者也總是那一撥兒。頭沉眼痠,倒回床上,不敢睡,閉著眼醒盹,醒著醒著又睡去了。媳婦一通電話把我吵醒,以為是提醒我起床參賽,電話裡傳來的卻是吼聲。“你閨女不聽話!非要給馬梳毛,不讓她梳她非梳!”“啊?什麼數貓?”“她還叫嚷‘媽媽行我為什麼不行?’我管不了你這閨女!”我從床上坐起來,清清嗓子,讓閨女接電話。“妞妞,妞妞?妞妞!”“嗯!幹嘛呀?”“你這是第一次騎馬穿越草原,就你一個小孩兒,在外面得聽媽媽的話,聽馬倌兒、聽邵叔叔的話。”“知道啦!”“不讓你幹嘛,就聽話別幹。讓你媽接電話。”“非要梳!非要梳!怎麼說都不聽!”電話那頭兒能聽見馬倌在遠處喊:“你就不應該跟她置那麼大氣!”勸媳婦消氣,調解完畢掛斷電話,頭清醒了,嗓子也通暢了。
下樓開車去老地方喝羊湯。還不到7點,店裡已被水蒸汽燻得熱騰騰,人很少,老闆娘迎過來。“羊肚兒湯,一個燒餅,一個沙蔥包子。”老闆娘衝後廚喊:“今天的包子蒸出來了嗎?”“還沒包呢!”“包子只有昨晚剩的,新蒸的還得等半小時。行嗎?”“剩的就行,我就想嚐嚐。”賽前第一頓想吃點有意思的。菜很快上齊,羊湯夠老,肉爛湯醇,保持了一貫的水準。沙蔥包子咬開裡面有小蔥段,吃起來比蔥適口,似韭菜,味更、重,吃著過癮。因為剩了一晚,蔥發黑,呈墨綠色,口感綿軟。包子裡的羊肉多是肥肉,我把一顆顆晶瑩的脂肪粒挑到盤裡,堆成小丘。吃了早飯出來,氣溫隨著太陽昇了一點兒。回到旅店,想起屋裡兩瓶礦泉水快喝完了,去旁邊的小賣鋪拎一大桶。售貨員在和朋友聊天:“昨天來了幾個外地的,說你們這兒也太冷了,冬天還不得凍死!我就心想,我一輩子隔這兒,也沒見凍死,冷你不多穿點兒,穿那麼少不是活該!”我作為外地人趕緊走了。
回屋開始做遊戲。“有限空間”是老主題,不想再頭腦風暴,翻找以前記錄的遊戲靈感,鎖定了兩個:搬家收拾東西,小區倒車。先試搬家。編輯器裡用方塊搭了個收納箱,物品用尺寸各異的圓球、方塊代替,鼠標拖拽往盒子裡碼。三維視角難以觀察箱子裡的空隙,碼放物品的時候抓不住技巧,只是瞎放,沒啥樂趣。放棄搬家的創意,試試倒車。平地上擱幾個方塊當作車,攝像機高空俯視,方便觀察倒車環境,用鍵盤控制其中一個方塊在環境裡倒著走。試了試倒車進入狹小空間,能倒進去,需要耐心,缺點挑戰。回想自己倒車是坐在車裡通過後視鏡觀察環境,拿捏不準還得下去看看,猜想倒車的趣味在第一人稱視角。將攝像機塞到車內駕駛位,又在車外左右、車內頂棚分別放了三臺攝像機。遊戲畫面成了車內視角,另有三個小視窗分居左、右、上,呈現後視鏡的畫面。同樣的環境,倒起車來卻困難多了。像保安一樣看著各個“監控畫面”與坐在車裡左顧右盼還是有區別——但我說不清具體是什麼,只覺得眼前的遊戲倒車比真實倒車還難。
難到自己都玩不動,乾脆下樓吃飯,還是那家麻辣燙。上次來多倫,滑滑板把左肩摔脫臼了,醫院等了兩小時復位上,沉著左肩,感受著周身各處此起彼伏的刺痛,步行兩公里找到這家透著橘光的麻辣燙。店內明亮整潔,端上來的食物熱氣騰騰,這一切給了我慰藉。今天進門還是同樣明亮溫暖的光,但服務員換了。我選好菜端過去。“原湯。”“原湯也有點辣。”“嗯,我知道。我不怕辣,怕油。原湯就行。”吃完回到酒店,拿出旅行咖啡杯,倒半杯牛奶,再倒入兩包咖啡粉,用牙刷柄攪勻,繼續倒滿牛奶,再攪勻。一口口喝完,苦、酸、滑。陽光正好,街上冷清。把衣服攤開在床上曬著,衣服不潮,只是不想浪費這陽光。
坐回電腦前。遊戲還是第一人稱視角,但看著編輯器畫面裡的俯視固定視角,玩起來還算輕鬆有趣,看著像是滑稽倒車視頻集錦。決定使用固定視角。從車裡取出攝像機放回空中,關閉幾個後視鏡的監控畫面。遊戲能玩了,還得把勝負判定加上。規則設置為“車碰到東西就輸”,但碰撞檢測總出問題。為了輔助排查,我在碰撞點生成一個紅色小球。一陣鼓搗,問題修正了,但我把紅球留下了——連輸幾次後牆上、車上留下一排小球,像是節日的彩燈,慶祝司機的失敗。反覆試玩很久,抬頭屋裡已暗下去,床上曬著的衣服早不在光下,陽光縮到了房間的一角。
第一天晚上
下樓晚飯,還是麻辣燙,服務員換成了一個大嬸兒,又叮囑我一遍:“原湯也帶點辣啊!”回到樓上沒敢再喝咖啡,今天是Game Jam頭一天,晚上還是得睡的。打電話給媳婦,已順利入住蒙古包。今天草原穿越趕了一天路,明天去附近的五彩山玩,會輕鬆得多,我也放心多了。開發了一天,再坐回桌前覺出難受了——椅子後頂床前貼桌,腿擠在中間動彈不得。我打量一下房間,把小桌橫過來對著門,椅子就可以在過道里前後移動了,但桌子把床前的過道堵死,上床不方便。無所謂,反正床用處不大。不能喝咖啡,晚上工作開始前還缺點儀式感,肚子裡的麻辣燙頂著胃不肯放鬆。去洗了個澡,水流很大,水溫很熱,蒸得人都飄起來,出來後像是剛睡飽了,心裡不禁琢磨著工作室正是缺這樣一個洗澡的地方。再坐回座位,總有一股臭味兒在鼻子前晃,拿起塑料拖鞋聞了聞,是它沒錯。穿上新襪子,又把舊襪子套在了外面。
過了一個白天,遊戲還只能輸不能贏,玩起來不像個遊戲。按照過往經驗,這種進度可能做不完,心裡起了急。地上放了個白色方片,開進去就贏。繼續做了3個關卡,基於自己在小區裡停車的經歷,玩了一遍,能玩通,心才放下。時間已過12點,錄了一段倒車入庫的動圖發到比賽官網上,刷新了幾次網頁,有3個點贊。倒在床上,街燈的黃光從窗簾縫裡滲進來,我的腦子正在從工作桌前趕往被窩兒。把窗簾拉緊,被子蓋頭,閉緊眼睛,強迫自己快點睡去。
第二天白天
六點的鬧鐘把我鬧醒,腦子還是一團漿糊,喚醒電腦,昨晚發的帖子得到了44個贊,在這個比賽裡算多了。截圖發給媳婦,沒回。下樓冷得我一激靈,弓背碎步走到停車場。車玻璃上一層白霜,用手擦了擦,是冰碴,擦不掉。沒熱水,只能靠太陽曬,等一陣子應該能化,但時間不容耽擱。跑過潮溼的街道,鑽進羊湯館,老闆娘認出了我:“大兄弟又來啦!”今早沒敢再點沙蔥羊肉包子。羊湯現做得等,我上二樓找一個僻靜明亮的座位,拿出筆記本畫了幾張關卡設計稿。喝完羊湯喝咖啡,一路走回來肚子已經不撐了。
Game Jam第二天,不能像第一天那般隨性。羅列了所有工作條目,排定優先級,整出一篇文檔,對工作量做了預估。簡單收拾了床,將厚衣服晾曬在床上,換上輕薄的衣服和寬鬆的睡褲。遊戲能玩了,該打扮打扮了。從物品建模開始,第一個場景是大街,只有欄杆作為佈景。球體和圓柱體模型遊戲引擎裡自帶,只做了一塊磚頭模型,加上球和柱拼成欄杆的部件,再用他們組裝出各種長度和轉角結構。將前三關裡的方牆換成欄杆,有大街的樣子了,但車碰到欄杆紋絲不動,玩起來乾巴。給欄杆加上碰撞反饋——車一碰,欄杆就像故意找茬似地向上彈一下,明顯反應過激,遊戲裡透出了點幽默感。繼續做模型。有了欄杆的經驗,後面小區的圍牆和森林裡的樹就照貓畫虎了。下面該主角了——車。此前考慮過三廂車、兩廂車、SUV,甚至卡車,但真要下手才覺得做不過來。先做出主角的小車,停車遊戲的靈感來自平日在小區裡停車的經歷,主角便依照自己的車做成了兩廂樣式,配以稜角分明的卡通風格。看過真車的照片才發現燈真多,前後左右。但遊戲的畫面風格簡潔,於是只做了前後兩組車燈,像兩對圓眼睛,車立刻有了性格,透出一股呆勁兒。加上後視鏡,像支稜起一對招風耳,有個性,但給倒車增加了難度。此前只顧車身就行,現在還得盯著耳朵,車憑空寬了好多,耳朵碰牆時特想把耳朵揪掉。
耳朵雖煩,但車好歹有了摸樣。已是中午,下樓午飯,繼續麻辣燙。又換了服務員,是此前摔滑板遇到的姑娘當班。那天傍晚,我拎著帶血的滑板進店,點完單,要的原湯。“原湯也有點辣。”“沒事兒,我怕油不怕辣。”我用幾根手指夾出手機付款,手掌蹭破兩塊皮,兩小時沒處理,血已乾成暗紅色,新皮還在編織結構,破口處形成淺紅髮亮的薄膜,抻平手掌就扯著疼,傷口周圍覆蓋著柏油路上蹭的黑。那姑娘拿著掃碼器對準手機,嚇得一哆嗦,掃碼器一晃,身子退後,咧嘴皺眉。我這才注意到手上的傷口在暖光下像殭屍身上的潰爛。她的反應讓我重新感覺到了疼,手一哆嗦,“滴!”付款成功。時隔兩週,服務員沒再被嚇到。
坐在靠街的座位吃麻辣燙,觀察著四周的動靜。另一桌兩個女人在聊天,一個短髮,一個長髮。短髮的戴方框眼鏡,棕色短襖,有股英氣,說道:“當年你說讓我過過當班長的癮,後來我當上了就沒再下來。”“誰知道你還真能幹,要不現在也當不上這長那長的。怎麼著,要謝謝我吧。”“謝啥?謝你當年給我讓賢?”兩人笑了。對面女人穿紅羽絨服,笑眼,話少,彷彿是短髮女人的反義詞。過了一會兒,紅衣女人的丈夫帶著閨女進店,女人沒管他們。短髮說:“一看你們就是夫妻,誰也不管誰,各玩各的。”
回屋繼續開發。又試了試後視鏡,刪了。測試中發現每個關卡中總有一輛車是最搗亂、最可氣的,比如停偏了一點,把車位擠成極限車位,要麼停過了,車頭從一排車裡探出來,拐彎的時候屁股總是蹭到它。遊戲時遇到這種車,心裡運氣,情感羈絆很強,我盤算著或許能有些什麼用場。
車像模像樣,襯得遊戲視角太破落。攝像機擺在高空垂直向下拍攝,視角像最新型的倒車影像,車和周遭情況一覽無餘,但場景和車的造型都白做了,看起來就是一些方塊和圓球。攝像機太平也不行,否則看不清自車與周遭障礙的遠近關係。要不隨著周圍環境的變化自動改變視角?工藝複雜,Game Jam裡太小題大做了。念起咒語:“有沒有更簡單的方案?”念過幾輪,望著暫停中的編輯器畫面,想到可以試試靜止攝像機。視角不能動了,每一關的攝像機拍攝角度既要照顧倒車的能見度,又要兼顧畫面的觀賞性,是個兩難問題。但每個關卡的結構簡單,一個畫面就可盡收眼底,只要攝像機別太垂直,看著都還不錯,至於輔助倒車,只需考慮每關最卡人的那段路程的拍攝角度即可。在幾個關卡里擺了擺固定機位,試玩幾遍,沒什麼阻礙。畫面因為靜止了,更像是監控錄像畫面,有審美設計的空間。
攝像機暫告段落。時間越來越少,進度還好。車現在有樣子,但沒生氣,往前開往後倒只是平移。得給它弄出點人氣兒。車的外觀和人有幾分接近,前車燈像眼睛,但無神。貼一個光錐在眼上,眼睛會放光了,可謂有神,但看多了覺得這神是假的。因為車燈常亮,車或靜或動,眼光只是呆滯。我讓車燈在前進時亮起,目光如炬像要與前車拼命,停止時熄滅,就像睡了。後車燈也如法炮製,做成後眼,不如前面的大,但眼小聚光,配上倒車時的低速,讓車有了一種偷偷摸摸做賊的氣質——前進如君子,倒車如小人。
車像人了,但碰了壁就冒出一個紅球,看著不倫不類。我需要換一個簡單抽象,大家看了就能懂的符號,這事兒emoji一直在做——找到個生氣符號,四條紅色彎彎線,勾出個青筋暴露的樣子。不是碰撞,而是生氣,不像車,但像人。摘掉紅球貼上怒氣貼紙,駕車在小區裡狂飆一通,圍牆、敵車各種生氣,給我逗樂了。
碰三次遊戲失敗重來,我在畫面左上角加了個碰撞計數的界面。但測試時總也記不清碰了幾次,碰著碰著突然就失敗了——盯著倒車呢,誰會留意天邊的的界面?試試碰一次就失敗,全程提心吊膽,但更接近真實倒車——一次都不能碰,否則就4S店見了,而且把界面也省了。
不放心難度,多玩了幾遍,總撞在一輛車的右前燈。能不能簡單點兒?讓車碰到以前撞到的地方不會再發生碰撞,就像給牆、車貼了防撞角,撞得越多,遊戲就越簡單了。但如此一來,生氣符號顯得不生氣了——撞在自己的傷口上,咬牙忍住疼,讓玩家繼續開。照著“補丁、紗布”的感覺去找替換的emoji,只找到“創可貼”。一路撞過來,創可貼滿天飛,襯得開車人很細心——撞了!下車,俯身查看,從兜裡摸出一片創可貼,揭掉塑料紙,瞄準傷口,按上,貼平。塑料紙塞兜裡,停好車再找垃圾箱扔,不知不覺已攢了一兜……
第二天晚上
抬頭天已暗,下樓吃飯。麻辣燙店裡幾位員工在吃工作餐。我拿出便攜咖啡杯、咖啡粉、牛奶,衝咖啡。“您那是咖啡嗎?”男店員胳膊肘支在桌上,探身看著我手裡小垃圾桶形狀的咖啡粉。“是咖啡。”“你看,我說是咖啡吧!”“這種咖啡粉很好溶,冷水也能衝開,可以直接加常溫牛奶裡。”“好高級,我們這地方都沒見賣的。”“也還好,網上可以買到,要是在意咖啡的口味,可以試試。”“我也喝咖啡,最近才開始能喝美式,之前都喝不下去。”“美式高級,懂咖啡的人才能喝。”我們相視一笑。
工作進展順利,心氣兒高,餐點多了,吃撐了也沒吃完。沒直接回屋,去旁邊的匯宗寺逛逛。天黑了,燈亮了,廣場地磚上縱橫排列著射燈,上百道光指向天空。我踩著燈走,一盞一盞,不時被光晃到眼睛。紅色影壁打著光,要照亮上面的文字,但上面沒字。這寺是滿漢會盟的產物,分新老兩座,都是經歷了幾番戰火幾番重修。去年來時,老寺前立著兩尊古舊的石獅子,稜角模糊。如今換了新的,紋理清晰銳利,卻沒什麼味道。
回到旅店,洗澡,整理衣物,拖延些時間,迎接晚上的持久戰。拿出筆記本,翻出早上在羊湯館畫的關卡草圖,照著在編輯器裡碼。前幾關環境是大街,柵欄一段段連成排。第一關最簡單,沒敵車,終點停車區擺在柵欄邊——側方停車。後面關卡逐步加入敵車,靠著欄杆停幾輛就像是鬧市裡的路邊停車,對著欄杆停上一排則像是超市的停車場。第二個環境是小區,用圍牆圍出一個方形空場,幾個關卡發生在同一個場景內,只是停的車有變化——回家早,車位多;回家晚,車位緊張;車停歪點兒就成了難關。最後是樹林,參考我常去的森林公園停車場。一大片土地,小樹苗間隔栽種,隔出一塊塊停車區域,雖然只是四角有樹擋著,但要想直插進去便感覺到樹木位置的刁鑽,只能開出來老老實實倒車入庫。一鼓作氣做完十二關,測一遍,小區裡幾關卡我很久,又屬這個環境關卡多,於是刪了兩關,但保留一個極難的。玩過一遍,有了連貫的體驗,一個愛情故事在腦子裡清晰起來。
我站起身,從床上爬過堵路的小桌,到窗前向下張望。夜生活已蔓延開來,街兩側店鋪霓虹閃爍,店前車位全滿,街上不時開過一輛打著雙閃的車,龜速踟躕不前,是在找停車位。人都在燈光含糊的店裡,偶有在外的,也像街上有什麼巨大的東西,擠得人只能貼牆快走,趕緊閃進某扇霧氣昭昭的門裡——應是很冷。我拉緊窗簾,灌下一聽紅牛。
遊戲現在看著像樣,但沒任何聲響,越是美化得多,越是顯得啞。該讓他出聲兒了。碰撞時彈出創可貼,關乎遊戲勝敗,是最重要的音效。去開源音效網站上搜“車、碰撞”,都是車從遠處呼嘯而過,“嘭!咣!”,撞得鋼鐵扭曲、玻璃粉碎——不是這種碰撞,但我會聽完,好奇它們怎麼錄到的。打量了一下游戲畫面,搜“玩具、碰撞”,選了個連續敲打鐵皮機器人三十下的音頻。拽進音頻編輯軟件,音軌上冒出三十個高低不一的山丘。選中三個聲音溫和的低矮山丘,裁掉其餘,逐條導出到遊戲引擎裡。開車在小區裡撞,聽起來像是:車撞了,啪!趕緊糊上個創可貼,司機早有準備,是撞車老手。
接下來是主角汽車的音效。搜索“汽車引擎”,有跑車的轟鳴聲,但裝不進小車。老爺車的引擎像拖拉機,讓小車感覺老態龍鍾。有的引擎合適,但聲音由小到大,越升越高,最後已超過百公里時速,不能循環播放,沒法用。最後鎖定一段Mini Cooper的引擎聲,應是原地空檔怠速的聲響,震感強,頻率低,像是低速行駛。公司早年做多媒體廣告業務時,我坐過一次甲方項目經理的Mini Cooper。車從頭到尾貼英國米字旗,車座硬,車過溝過坎顛得厲害,開、坐這種車都需要拿著股勁兒。我愛躺倒坐,坐不住這種車。今天我有機會將它的心臟塞到我做的小車裡。音頻三分鐘長度,選出穩定、循環感好的十秒,處理成循環音軌,綁到車上。隨開隨播,能感到車的移動是由引擎在驅動了。開了一陣,盯著車,聽著聲,還是有什麼地方彆扭——引擎轟隆隆,但車開起來穩穩的,與聲音不合拍。算出引擎震動的頻率,據此讓車身上下震動,音畫有了配合。
把遊戲打個包,上傳到網站上,建個臨時的遊戲下載頁面,避免最後提交關頭抓瞎。抬頭看錶,凌晨三點,眼皮撐不住了。撲倒在床,定了一小時的鬧鐘,依次向後每10分鐘鬧一次,重複六次。脫衣脫襪蓋被,擺出大睡一場的架勢,但衣服疊好擱在枕邊,不換短袖睡衣,穿長袖睡去,給起床減少負擔。腦子還滯留在工作狀態,翻騰許久。分不清是被鬧鐘吵醒了,還是一直在半睡半醒間等到鬧鐘響起。坐起身,呆一會兒,掃了眼表,一件件拿起疊好的衣服穿上,坐回工作臺。頭不沉了,但暈,眼發酸,越揉越酸,胸口像憋著口氣喘不出來。拿起紅牛,又放下。電熱壺倒一點水,坐等燒開,兌滿涼水,灌下一大杯溫水。掃了眼剩下的工作,好在都不太靠腦子。
調配色。依真實經驗:磚灰、樹綠、車多彩,歸置出來不少有顏色的東西。時間所剩無幾,我再次掏出心裡那把“剪刀”——取消主角車之外的其他顏色,只設一白一灰。白為主,景物大面積噴塗:牆圍、欄杆、樹幹。灰為輔,點綴細部:牆角、柱頭、樹葉。遊戲世界變成了灰白,失去了性格,眼睛更離不開主角車那團橘紅。
灰白只能渲染出明暗層次,不同環境還需要不同的氛圍色彩。首先是街道。去想象最糟糕的人類城市——喧鬧,少綠,人匆忙,聒噪的汽車,呼嘯而過帶起一陣風,但柏油路連灰塵都捲不起來——規整而缺乏生命的活力。我把環境色調白,去靠近那毫無植被遮蔽的正午街道的乏味感——一片亮灰,整潔方便,但呆久了不自在。第二個環境是我熟悉的小區。白天回家停車不難,因為車都開去上班了。從天擦黑開始,車陸續回家,停車難度逐漸升高。若是深夜回家,開到大門口往裡望,心都得提起來——能否停下全憑運氣……拉回遊離的思緒,得出結論:夜間停車難,小區應是夜景。夜的顏色鬼魅多變,我自知美術不精,去網上搜尋色板。以“夜晚”關鍵詞檢索出青、藍、紫幾種夜色,作為環境色疊加在灰白的世界上。試了幾個都太暗——真是深夜,什麼都看不清,次點兒的顯示器怕是要黑成一團。固定顏色,提高亮度,直到能看清環境,調出一片月色皎潔。郊外樹林延用此法,搜尋森林的綠,讓郊外如明媚的早春。
那輛在每個關卡里製造麻煩、彆彆扭扭的“敵車”,翻找紅色系色板,挑出一個玫紅,有女性的氣質,又隱含侵略性。再給敵、我二車的材質增加一些反光,一紅一橘在環境裡格外顯眼,如話劇舞臺上的男女主角。
窗簾透出微光。拉開一角,太陽還沒露頭,晨光藉著大氣的折射先行抵達,灰色的街道和低矮的房子被照出些細節,染上一層黃,倒像是遊戲裡的環境。看了眼比賽官網,倒計時還剩一小時三十三分,沒讀帖子,想必不少人已經“交作業”了,還有人宣佈棄權並祝大家好運。
回到音效網站,搜索三個環境的氛圍聲音。街道搜出來大多是車水馬龍,摩托、汽車不時呼嘯而過,都用不了。在給小區找音效的時候反而找到一條合適的,標題寫的是“白天的住宅區”,聲音主要是馬路旁的嘈雜聲,遠遠的、含糊的,始終不會太突兀。遊戲裡的小區是夜裡,按住宅區去搜都是白天的喧鬧,於是改找夜間的環境音效。夜裡的聲音若不在市中心,便會混進自然的聲音,碰到一條有蛐蛐叫的,氛圍感一下就對了。森林的聲音不容易找歪,無非是飛蟲、流水、鳥鳴、風嘯,遊戲裡的森林陽光明媚、樹木紋絲不動,選定一條鳥鳴稀少的。鳥一叫,更顯森林幽靜。
回到遊戲首頁檢查,白底上一行字:點擊開始。打開遊戲結局頁,黑底大字:結束。想起上午的一個靈感:“開端結局用遊戲關卡實現,首尾呼應”。新建一個遊戲關卡,裡面空著只擺一個停車框,攝像機改平視,讓停車框居左,車居中。車入框後,攝像機緩緩抬起,露出一片空白,標題浮現,隨後直接進入第一個正式關卡。既然首尾呼應,複製一個首頁關卡放在最後,但停車框旁多了那輛小紅車,原因留給玩家自己去猜。停車到位後的標題換成“結束”字樣。開了一趟,不像是結束,因為天色還是大亮。調出環境參數面板,打開霧效,霧色設為紅,環境色設為黃,把霧效拉近,畫面在車頭前方從黃過渡到紅,渲染出一幅夕陽正濃的景緻。遊戲結尾的意境夠了,開端反著來——灰白過渡到淡藍,調出個孤獨黎明的氛圍。開了一趟,氛圍都對,只是遊戲標題還沒定下來。
做的遊戲是停車,但三個環境的關卡玩下來,心裡隱約能形成一段故事——是停車,也是故事——想起兒時常看的電視劇《編輯部的故事》,遊戲起名為《停車的故事》,英文譯為A Parking Story。放個A在前,暗示這是段若有若無的小故事。
切到瀏覽器,官網提示還剩九分三十六秒。打出Windows遊戲包,傳到此前準備好的遊戲頁面上。
再看官網,提示還有額外一個小時用於提交遊戲。忘了這條“額外時間”的規則了,長出口氣,拉直癱軟在椅子上的身體。回編輯器裡測一遍遊戲,從首頁開始。時間緊迫,不能真玩,把車直接放入停車框,僅檢查能否順利過關。遊戲算是做完了,但比賽還沒完。進入各關卡,將車擺在好看易懂的位置,逐一截圖。十多張截圖裡,每個環境只留一張最精彩的,傳到網站上裝點門面。再挑出最好理解的一個關卡,玩一遍錄個視頻,選最糾結的五秒,導出gif動圖,傳到網上作為遊戲封面。遊戲文字描述省了,停車這事兒還有人看不明白嗎?“額外一小時”已過,比賽進入試玩評分環節。我在官網、遊戲頁面、編輯器幾個窗口間切來切去,像是在檢驗成果,又像是在檢查疏漏,但實際什麼也沒做。
第三天清晨
再抬頭已是八點,拉開窗簾,陽光刺眼。關電腦,下樓。停車場裡,車未落霜,也許是霜已經曬化了。我圍著車轉了一圈,沒開。溜達去羊湯館,九點才到。每張桌子都坐滿人,老闆娘在後廚幫忙,逮住一個服務員點餐,要了個沙蔥包子——今天來的晚,包子能吃上新蒸的。一樓滿座,上二樓,坐聽旁桌聊天,討論今天駕車穿越草原,直聽到他們敲定了方案餐才上來。包子裡的沙蔥翠綠,但羊湯味兒淡,羊肚沒爛——總是要留些遺憾。