游戲的世界里一切都是數(shù)字润努。每時(shí)每刻,這些數(shù)字都在不斷變化著示括,演繹出精彩紛呈的游戲狀態(tài)铺浇。
所謂一花一世界,一葉一菩提垛膝,每一款游戲也都有自己獨(dú)特的狀態(tài)演變規(guī)則鳍侣,這篇文章我們以某些特定類型的游戲?yàn)槔樱纯此鼈兊臓顟B(tài)到底是如何變化的吼拥。
《水果忍者》這款游戲在每一幀開(kāi)始的時(shí)候倚聚,得計(jì)算西瓜在此幀的位置變化、速度變化扔罪、翻滾轉(zhuǎn)角的變化秉沼;在接收用戶事件的時(shí)候,得計(jì)算西瓜是否爆掉。游戲狀態(tài)的變化可能是因?yàn)槊恳粠挠?jì)算唬复,也可能是因?yàn)橛螒蛘叩妮斎搿?/p>
Popcap公司家喻戶曉的作品《寶石迷陣》是匹配游戲的開(kāi)山之作矗积。匹配游戲的規(guī)則往簡(jiǎn)單了說(shuō),就是滿足一定匹配條件的寶石會(huì)從棋盤(pán)上消失掉敞咧,而新的寶石以某種方式來(lái)填補(bǔ)棋盤(pán)的空缺棘捣。匹配條件通常是跟寶石的顏色和位置直接相關(guān)的:把相同顏色的寶石排成某種特定的形狀即可以滿足匹配,例如《寶石迷陣》里三個(gè)紅色的寶石排成一排就能滿足匹配條件休建,然后果斷消失乍恐,由此空出來(lái)的位置則由上方掉落下來(lái)的寶石填充。游戲檢測(cè)到用戶事件(一次撥動(dòng))時(shí)测砂,由于撥動(dòng)會(huì)改變寶石的位置茵烈,它就必須立刻開(kāi)始檢測(cè)被撥動(dòng)的兩顆寶石在新的位置上是否滿足匹配條件,一旦發(fā)現(xiàn)滿足匹配條件的寶石砌些,它得將它們的狀態(tài)改成“已匹配”呜投,然后在未來(lái)的一段時(shí)間里,讓它們消失存璃,同時(shí)它得改變上方寶石的位置讓它們掉落下來(lái)仑荐,而這位置一改變,又得重新檢測(cè)匹配纵东,如有匹配粘招,又要消除掉落,如此不斷反復(fù)偎球,直到整個(gè)棋盤(pán)重新歸于平靜洒扎。
來(lái)自烏拉圭的獨(dú)立游戲工作室Ironhide你可能沒(méi)怎么聽(tīng)說(shuō),但它們的作品《Kingdom Rush》卻是一款可玩性極佳甜橱、知名度也很高的塔防游戲逊笆。在此類游戲里栈戳,通常你得在一個(gè)棋盤(pán)上放置塔岂傲,這些塔會(huì)攻擊道路上的敵人,以便阻止它們到達(dá)某個(gè)目的地子檀。游戲的狀態(tài)是由許多參數(shù)來(lái)描述的镊掖,例如塔的位置、級(jí)別褂痰,炮彈的位置亩进、殺傷力,敵人的位置缩歪、血量等等归薛。每一幀,游戲都要計(jì)算的東西不少,例如炮塔此幀是否可以發(fā)射炮彈主籍;飛行中的炮彈位置如何變化是否撞到敵人习贫;那些跑得正歡的敵人位置得不斷改變,而那些不幸中彈的敵人血量也得扣除千元。在接收到用戶事件時(shí)苫昌,它通常還得改變塔的狀態(tài),例如提升塔的級(jí)別幸海,或者干脆把塔拆掉祟身,換成一堆金幣。
我們?cè)賮?lái)看看在iPhone上曾一度如日中天的《憤怒的小鳥(niǎo)》物独,這是一款“牛頓力學(xué)游戲”袜硫。這類游戲的規(guī)則通常是基于經(jīng)典物理學(xué),每一幀除了計(jì)算鳥(niǎo)的飛行路徑以外挡篓,它們還有一件很重要的任務(wù)父款,那就是做碰撞檢測(cè)。什么是碰撞檢測(cè)呢瞻凤?假設(shè)游戲里有兩個(gè)球憨攒,我們每幀都去計(jì)算它們的半徑之和以及它們圓心之間的距離,一旦發(fā)現(xiàn)它們的半徑之和小于圓心間的距離阀参,那么我們就說(shuō)它們碰撞了肝集,并根據(jù)它們的質(zhì)量、彈性系數(shù)等參數(shù)來(lái)改變它們的速度蛛壳。當(dāng)然杏瞻,小鳥(niǎo)和建筑物之間的碰撞要比這個(gè)難算得多。在此類游戲里衙荐,負(fù)責(zé)這部分復(fù)雜計(jì)算的代碼模塊就是物理引擎捞挥。另外,在《憤怒的小鳥(niǎo)》里忧吟,當(dāng)游戲者的手在屏幕上滑動(dòng)時(shí)砌函,游戲會(huì)根據(jù)手指的位置,來(lái)改變小鳥(niǎo)的位置溜族,讓它跟著手指跑讹俊;游戲者的手一放開(kāi)(放開(kāi)也是一個(gè)用戶事件),它就改變小鳥(niǎo)的速度煌抒,讓它朝某個(gè)方向飛去仍劈。
現(xiàn)在我們?cè)賮?lái)看《涂鴉跳躍》就會(huì)顯得相對(duì)簡(jiǎn)單了:當(dāng)你傾斜iPhone的時(shí)候,游戲會(huì)根據(jù)你所搖的方向改變主角的位置寡壮,而每一幀游戲改變著主角的位置贩疙,讓它蹦個(gè)沒(méi)完讹弯。如果這時(shí)候你恰好在和其它人比賽,那么對(duì)方搖動(dòng)iPhone時(shí)这溅,這個(gè)信息會(huì)通過(guò)服務(wù)器遞送給你闸婴,改變你的iPhone中相應(yīng)角色的位置。
ok芍躏,游戲種類很多邪乍,這么說(shuō)下去是說(shuō)不完的,好在本文只是希望以舉例的方式對(duì)前面的幾篇文章做個(gè)補(bǔ)充說(shuō)明对竣,目的還是在闡述游戲狀態(tài)的改變這事:游戲狀態(tài)的變化規(guī)則因游戲而異庇楞,引起狀態(tài)變化的可能是用戶事件,可能是每幀的計(jì)算否纬,也可能是來(lái)自服務(wù)器的信息吕晌。
《如何理解游戲》系列會(huì)有十篇,這個(gè)系列寫(xiě)完后临燃,我會(huì)繼續(xù)寫(xiě)一些游戲相關(guān)的文章睛驳,并發(fā)在《游戲評(píng)論快報(bào)》下,歡迎大家訂閱膜廊。