一、背景介紹
現(xiàn)在的移動(dòng)電話是小型的計(jì)算機(jī),它的處理能力與臺(tái)式機(jī)的標(biāo)準(zhǔn)處理能力相比很有限,但是足夠運(yùn)行一個(gè)小型的游戲。
現(xiàn)在的手機(jī)的一個(gè)特性就是它們還是網(wǎng)絡(luò)計(jì)算機(jī),能夠高速發(fā)送和接收數(shù)字?jǐn)?shù)據(jù)。 除了語(yǔ)音數(shù)據(jù)以外,它們還可以發(fā)送和接收其它類型的數(shù)據(jù)。所以類似《傳奇》、《千年》這樣的網(wǎng)絡(luò)游戲也可以在手機(jī)上實(shí)現(xiàn)。
當(dāng)然就處理能力和性能而言,當(dāng)前階段的支持Java的手機(jī)很接近第二代控制臺(tái)游戲機(jī)、80年代中期的家用電腦和早期的手持游戲機(jī)。內(nèi)存通常很有限--一般128KB到500KB--雖然有些智能手機(jī)比如Nokia 3650有4 MB內(nèi)存。與PC相比,它們的輸入和顯示功能也很有限;小屏幕(許多仍然是黑白屏幕),為電話撥號(hào)優(yōu)化的小鍵盤(pán)并不針對(duì)文本輸入,以及有限的聲音處理能力。
二、移動(dòng)游戲是如何實(shí)現(xiàn)的
目前在移動(dòng)電話實(shí)現(xiàn)游戲的技術(shù)主要有以下幾種:
1、嵌入式游戲
一些游戲在出廠前就固化在芯片中了,象Nokia的貪吃蛇就是一個(gè)最著名的例子。但由于用戶不能自己安裝新的游戲,所以它們逐漸變得不太流行了。
2、短消息服務(wù)游戲
短信息服務(wù)(SMS)被用來(lái)從一個(gè)手機(jī)向另一個(gè)手機(jī)發(fā)送簡(jiǎn)短的文字信息。用戶一般為每條信息支付1毛錢(qián)的信息費(fèi)。短消息服務(wù)游戲的玩法通常是發(fā)送一條信息到某個(gè)號(hào)碼,這個(gè)號(hào)碼對(duì)應(yīng)游戲供應(yīng)商的服務(wù)器,服務(wù)器接收這條消息,執(zhí)行一些操作然后返回一條帶有結(jié)果的消息到游戲者的手機(jī)中。短消息服務(wù)不是一個(gè)特別好的用于實(shí)現(xiàn)移動(dòng)游戲的技術(shù),因?yàn)樗揽坑脩糨斎胛淖?,因此本質(zhì)上它是一個(gè)命令行環(huán)境。而且它還很昂貴,即使和服務(wù)器只交換10次信息也要花費(fèi)1塊錢(qián)或者更多的錢(qián)。雖然多媒體消息服務(wù)( MMS)技術(shù)的推出使得基于消息的游戲更加具有吸引力,但是仍然不是一種重要的游戲環(huán)境,所以在此我們不會(huì)深入探討它。
3、瀏覽器游戲
差不多1999年以后出廠的每臺(tái)手機(jī)都有一個(gè)無(wú)線應(yīng)用協(xié)議(WAP)瀏覽器。WAP本質(zhì)上是一個(gè)靜態(tài)瀏覽載體,非常像一個(gè)簡(jiǎn)化的Web,是為移動(dòng)電話小型特征和低帶寬而專門(mén)優(yōu)化的。要玩WAP游戲的話,可以進(jìn)入游戲供應(yīng)商的URL(通常通過(guò)移動(dòng)運(yùn)營(yíng)商門(mén)戶網(wǎng)站的一個(gè)鏈接),下載并瀏覽一個(gè)或多個(gè)頁(yè)面,選擇一個(gè)菜單或者輸入文字,提交數(shù)據(jù)到服務(wù)器,然后瀏覽更多的頁(yè)面。WAP (1.x)版本使用獨(dú)特的標(biāo)記語(yǔ)言WML,允許用戶下載多個(gè)頁(yè)面,即卡片組。新版本的WAP(2.x)使用XHTML的一個(gè)子集,一次傳遞一個(gè)頁(yè)面并且允許更好的控制顯示格式。兩種版本的WAP都提供一個(gè)比SMS更友好的界面,而且更加便宜,只要根據(jù)使用時(shí)間付費(fèi)而不是根據(jù)信息數(shù)。但是它是一個(gè)靜態(tài)的瀏覽載體;手機(jī)本身幾乎不需要做任何處理過(guò)程,并且所有游戲必須通過(guò)網(wǎng)絡(luò),所有的操作都是在遠(yuǎn)程服務(wù)器上執(zhí)行的。手機(jī)將繼續(xù)帶有WAP瀏覽器,而且開(kāi)發(fā)者可能發(fā)現(xiàn)WAP有利于傳送比游戲應(yīng)用程序提供的更詳細(xì)的幫助信息或者規(guī)則,因?yàn)榇蟛糠值挠螒蛉匀皇苡邢薜膬?nèi)存制約。然而,WAP沒(méi)能達(dá)到高使用率的目標(biāo)(在歐洲和北美洲,只有6%的手機(jī)使用WAP),而且移動(dòng)運(yùn)營(yíng)商和游戲開(kāi)發(fā)者正在遠(yuǎn)離WAP技術(shù)。 我們也不會(huì)在這里探究任何WAP的細(xì)節(jié)。
4、J2ME和其它的解釋語(yǔ)言
Java 2 Micro Edition (J2ME)是一種針對(duì)移動(dòng)電話和PDA這樣的小型設(shè)備的Java語(yǔ)言。大部分的手機(jī)廠商都迫切希望Java手機(jī)推廣應(yīng)用。上千萬(wàn)的Java手機(jī)已經(jīng)到了消費(fèi)者的手中。J2ME與臺(tái)式機(jī)中的Java相比還是有很大的限制,但是它已經(jīng)極大的提高了移動(dòng)電話支持游戲的能力。它有比SMS或WAP更好控制的界面,允許使用子圖形動(dòng)畫(huà),并且可以通過(guò)無(wú)線網(wǎng)絡(luò)連接到遠(yuǎn)程服務(wù)器。支持Java的手機(jī)的普及,所以它成為目前最好的移動(dòng)游戲開(kāi)發(fā)環(huán)境,我們?cè)谶@里將詳細(xì)研究J2ME游戲的開(kāi)發(fā)。J2ME不是手機(jī)上配置的唯一的解釋語(yǔ)言,但是它是一個(gè)許多廠商支持的行業(yè)標(biāo)準(zhǔn)。一些專用的解釋語(yǔ)言也在某些區(qū)域有上佳的表現(xiàn),如北美的Qualcomm的BREW ( Binary Runtime Environment for Wireless,用于無(wú)線應(yīng)用程序的二進(jìn)制運(yùn)行環(huán)境)和一些韓國(guó)移動(dòng)運(yùn)營(yíng)商支持的名為GVM的標(biāo)準(zhǔn)。在這個(gè)系列文章中,我們將要重點(diǎn)討論使用J2ME開(kāi)發(fā)移動(dòng)游戲,并且將介紹在Nokia平臺(tái)上開(kāi)發(fā)移動(dòng)游戲的方法。
5、C++應(yīng)用程序或其它編譯語(yǔ)言
另外一種開(kāi)發(fā)方式是使用C++開(kāi)發(fā)移動(dòng)游戲,把程序編譯為本機(jī)機(jī)器代碼。編譯語(yǔ)言程序一般說(shuō)來(lái)提供更好的控制用戶界面,以及與解釋語(yǔ)言相比更快的速度。C++開(kāi)發(fā)者可以定位于Series 60平臺(tái)設(shè)備。此外,Microsoft的.Net CF也可以以編譯的形式開(kāi)發(fā)移動(dòng)設(shè)備上的游戲,在以后的文章中我將介紹Pocket PC平臺(tái)上游戲開(kāi)發(fā)的方法。
三、移動(dòng)游戲開(kāi)發(fā)與傳統(tǒng)游戲開(kāi)發(fā)的區(qū)別
移動(dòng)游戲開(kāi)發(fā)與傳統(tǒng)游戲開(kāi)發(fā)區(qū)別在許多方面:
1、開(kāi)發(fā)團(tuán)隊(duì)的大小
傳統(tǒng)的PC和控制臺(tái)游戲一般需要12到30人的開(kāi)發(fā)團(tuán)隊(duì)。因?yàn)榇蟛糠忠苿?dòng)游戲規(guī)模比控制臺(tái)游戲小,所以一般情況下只需要3到5人的團(tuán)隊(duì)開(kāi)發(fā),有的時(shí)候甚至設(shè)計(jì)者和編程者是同一個(gè)人。
2、預(yù)算
傳統(tǒng)游戲的預(yù)算在一百萬(wàn)美元到五百萬(wàn)美元之間。大部分移動(dòng)游戲的預(yù)算則通常少于一百萬(wàn)美元。實(shí)際上,移動(dòng)電話有限的顯示能力和對(duì)應(yīng)用程序大小的限制使得不可能象傳統(tǒng)游戲那樣投入大量的財(cái)力物力。從某種意義上來(lái)說(shuō),這也算是一個(gè)優(yōu)點(diǎn)。
3、開(kāi)發(fā)周期
傳統(tǒng)的游戲一般要開(kāi)發(fā)兩到三年。而大部分移動(dòng)游戲幾月之內(nèi)就能開(kāi)發(fā)完畢。換句話說(shuō),只要有一個(gè)小型開(kāi)發(fā)團(tuán)隊(duì)和一個(gè)小的預(yù)算,你就可以開(kāi)發(fā)并推廣一個(gè)專業(yè)品質(zhì)的移動(dòng)游戲。因此,對(duì)于許多在傳統(tǒng)游戲領(lǐng)域遇到挫折的開(kāi)發(fā)者來(lái)說(shuō),移動(dòng)游戲開(kāi)發(fā)有很強(qiáng)的吸引力。
4、網(wǎng)絡(luò)設(shè)備
移動(dòng)游戲可能不同于我們之前看到的任何游戲:它受載體因素的限制,但是支持網(wǎng)絡(luò)并且可多人游戲。用于PC的調(diào)制解調(diào)器也只是8年前才大范圍應(yīng)用;控制臺(tái)游戲只不過(guò)現(xiàn)在才能上網(wǎng)。移動(dòng)電話的特性決定它是一種網(wǎng)絡(luò)設(shè)備。即使它們的處理能力使人想起以前的老式計(jì)算機(jī)技術(shù),但是它們的網(wǎng)絡(luò)性能卻更加出眾。
5、開(kāi)放標(biāo)準(zhǔn)
控制臺(tái)游戲開(kāi)發(fā)需要從控制臺(tái)游戲廠商取得授權(quán)和支持,需要支付給他們"平臺(tái)使用費(fèi)"。在無(wú)線應(yīng)用程序世界(如同在PC游戲開(kāi)發(fā)中一樣),你可以免費(fèi)的開(kāi)發(fā)任何款式的游戲,而不要支付Nokia、Sun或其他平臺(tái)提供商一分錢(qián)。此外,這些移動(dòng)游戲開(kāi)發(fā)平臺(tái)標(biāo)準(zhǔn)可以向開(kāi)發(fā)者發(fā)布、開(kāi)放并可免費(fèi)取得。
6、部署
傳統(tǒng)的游戲主要是在軟件市場(chǎng)上購(gòu)買(mǎi)。而移動(dòng)游戲主要是由用戶從移動(dòng)門(mén)戶網(wǎng)站下載并安裝。在有些情況下,它們是通過(guò)無(wú)線網(wǎng)絡(luò)下載的。有些手機(jī)允許你下載一個(gè)應(yīng)用程序到計(jì)算機(jī)中,然后通過(guò)數(shù)據(jù)線傳送到手機(jī)中。
因此,移動(dòng)游戲的銷售渠道是非常不同的。用戶一般通過(guò)移動(dòng)運(yùn)營(yíng)商的游戲菜單、手機(jī)廠商預(yù)裝在手機(jī)中的游戲菜單或者無(wú)線應(yīng)用程序門(mén)戶網(wǎng)站上找到移動(dòng)游戲。
四、載體的優(yōu)點(diǎn)
1、龐大的潛在用戶群
現(xiàn)在全球超過(guò)十億部移動(dòng)電話正在被使用,并且這個(gè)數(shù)目正在逐漸增加。在除美國(guó)之外的每個(gè)發(fā)達(dá)國(guó)家,擁有手機(jī)的人數(shù)比擁有計(jì)算機(jī)的人數(shù)更多。雖然那些手機(jī)只有一小部份是支持Java的手機(jī),但是這個(gè)數(shù)目正在快速地提高并且在幾年內(nèi)Java手機(jī)將要成為行業(yè)標(biāo)準(zhǔn)。移動(dòng)游戲潛在的市場(chǎng)比其它任何平臺(tái),比如Playstation和GameBoy都要大。
2、便攜性
GameBoy比任何其他控制臺(tái)游戲賣(mài)出的多的一個(gè)原因就是:便攜性。人們可以隨時(shí)隨地玩他們選擇的游戲。與現(xiàn)在的游戲控制臺(tái)或者個(gè)人電腦相比,手機(jī)可能不是一個(gè)好的游戲設(shè)備,但是人們基本上是隨時(shí)隨刻都把它們帶在身邊。在他們離開(kāi)家的時(shí)候或者想玩的時(shí)候,給開(kāi)發(fā)者應(yīng)該為他們提供好玩的游戲。
3、支持網(wǎng)絡(luò)
因?yàn)橐苿?dòng)電話是網(wǎng)絡(luò)設(shè)備,所以可以實(shí)現(xiàn)多人游戲,雖然有某些限制因素。
五、載體的缺點(diǎn)
1、屏幕小
你面對(duì)的是小型的屏幕。雖然屏幕分辯率持續(xù)提高,并且彩屏即將成為標(biāo)準(zhǔn),但是屏幕尺寸還是一直很小,因?yàn)闆](méi)有人樂(lè)意拿著磚塊一樣大的手機(jī)。
還有一個(gè)相關(guān)的問(wèn)題:不同的手機(jī)的屏幕大小是不同的。比如說(shuō)Nokia Series 60平臺(tái)設(shè)備就提供了和Nokia 5100這樣的Series 40設(shè)備不同的屏幕尺寸。雖然各個(gè)廠商已經(jīng)標(biāo)準(zhǔn)化它們產(chǎn)品的屏幕尺寸以避免分割市場(chǎng),但是開(kāi)發(fā)者仍然需要為不同的電話優(yōu)化他們的游戲--你肯定想使用特定的手機(jī)上所有可用的屏幕空間。
2、有限的顏色和聲音支持
大部分使用者手中的手機(jī)仍然是黑白的,雖然現(xiàn)在出售的支持Java的手機(jī)大部分都是彩屏手機(jī)。在這些手機(jī)中12bit彩色非常流行。
即使手機(jī)本來(lái)就有聲音設(shè)備,但是應(yīng)用程序播放聲音的能力卻非常有限。J2ME規(guī)范根本不需要硬件廠商支持聲音,雖然基本的Java手機(jī)允許使用一些聲音并且MIDI支持正在成為標(biāo)準(zhǔn)。通常,手機(jī)中只有一個(gè)語(yǔ)音或者一個(gè)聲道可用。
3、應(yīng)用程序大小限制
大部分的Java手機(jī)只有很少的內(nèi)存空間用于運(yùn)行MIDlet。此外,對(duì)MIDlet的大小始終有一個(gè)限制。實(shí)際的限制取決于手機(jī)設(shè)備和移動(dòng)運(yùn)營(yíng)商的規(guī)定。
在這樣的限制條件下設(shè)計(jì)開(kāi)發(fā)移動(dòng)游戲固然是非常困難的,但是我們要知道,第一臺(tái)家用電腦只有64 KB內(nèi)存,但是仍然有人熱衷于在其上開(kāi)發(fā)游戲軟件。在一些智能手機(jī)上內(nèi)存的限制就少一些,比如Nokia 3650甚至可以運(yùn)行幾兆字節(jié)的應(yīng)用程序。
4、高等待時(shí)間
等待時(shí)間----機(jī)器發(fā)出請(qǐng)求和接到響應(yīng)之間所花費(fèi)的時(shí)間----在計(jì)算機(jī)上是以微秒計(jì)算;在有線因特網(wǎng)上是以毫秒計(jì)算;而在無(wú)線網(wǎng)絡(luò)則要以秒計(jì)算。
等待時(shí)間是網(wǎng)絡(luò)游戲中一直存在的一個(gè)問(wèn)題,開(kāi)發(fā)者們總是在努力消除它帶來(lái)的問(wèn)題。無(wú)線網(wǎng)絡(luò)等待時(shí)間非常長(zhǎng),這就不可能有效的開(kāi)發(fā)多人快速動(dòng)作移動(dòng)游戲。然而基于回合制的多人游戲是相當(dāng)可行的,我們?cè)诤竺娴奈恼轮袑⒂懻撊绾问褂酶鞣N方法來(lái)處理這個(gè)問(wèn)題。
雖然移動(dòng)運(yùn)營(yíng)商總是在努力增加移動(dòng)電話可用的帶寬,但是他們卻沒(méi)有把降低等待時(shí)間當(dāng)成首要解決的問(wèn)題,因?yàn)樗鼘?duì)于別的應(yīng)用程序并不重要。
還有一種特殊情況:使用藍(lán)牙技術(shù)或其他無(wú)線局域網(wǎng)技術(shù)的手機(jī)可以和附近的藍(lán)牙設(shè)備使用因特網(wǎng)等待時(shí)間(一般200-400毫秒)通訊。這樣,使用像Nokia 3650這樣的智能手機(jī),你就可以和附近的移動(dòng)用戶一起玩多人快速動(dòng)作游戲了。
5、可中斷性是關(guān)鍵
當(dāng)用戶接聽(tīng)電話的時(shí)候,手機(jī)都會(huì)中斷進(jìn)行中的游戲。游戲程序必須能夠暫停并且繼續(xù),而且不會(huì)造成游戲問(wèn)題(例如,游戲者在打電話的時(shí)候老怪仍然在移動(dòng),打死玩家扮演的角色,導(dǎo)致輸?shù)粲螒颍┎⑶也粫?huì)造成內(nèi)存溢出。這需要在編程的時(shí)候多注意,Nokia提供了技術(shù)文檔幫助J2ME和Symbian C++開(kāi)發(fā)者了解并解決這個(gè)問(wèn)題。
6、正在發(fā)展的技術(shù)
用于開(kāi)發(fā)移動(dòng)游戲的技術(shù)并不是針對(duì)游戲設(shè)計(jì)的,因此常常有特定的限制條件。例如,J2ME規(guī)范不需要支持透明度,這就使得子圖形除了在空白的背景上以外,在任何背景上都會(huì)很難看。
幸運(yùn)的是,大部分設(shè)備廠商的Java手機(jī)都補(bǔ)充了J2ME,支持了透明度。為了充分利用J2ME的性能,你需要支持手機(jī)特定的API;為了得到最好的效果,就需要為一個(gè)游戲編寫(xiě)好幾個(gè)版本。最近發(fā)行的MIDP 2.0規(guī)范解決了一些此類問(wèn)題,但是對(duì)不兼容MIDP 2.0的手機(jī)是無(wú)效的。
六、避其短處 取其長(zhǎng)處
游戲有驚人的可塑性;它們可以使用從石器時(shí)代到現(xiàn)代高科技的每一種技術(shù)來(lái)實(shí)現(xiàn)。每當(dāng)你使用你以前從來(lái)沒(méi)有使用過(guò)的技術(shù)進(jìn)行開(kāi)發(fā)的時(shí)候,你需要了解它的性能和局限,努力把它的性能發(fā)揮到極限,同時(shí)回避或者解決它的局限性。
我們可以從我們的移動(dòng)游戲的性能和局限性的討論中得出什么結(jié)論呢?
1、短的游戲時(shí)間
人們遲早要打電話或者接電話,并且他們不想把所有的電量都用來(lái)玩游戲。理想的情況是每一回合游戲應(yīng)該保持在五個(gè)分鐘或更短時(shí)間之內(nèi)。這不意味著一個(gè)完整的游戲必須在五分鐘之內(nèi)結(jié)束--而是你應(yīng)該允許游戲者中斷、保存和繼續(xù)游戲。
2、玩家有自己的時(shí)間表,而不是必須遵循你的時(shí)間表
讓人們?cè)谙胍嬗螒虻臅r(shí)候玩,不要強(qiáng)迫他們等待(如果你可以避免),也不要要求他們?cè)谌魏螘r(shí)間都在游戲中。
3、避免等待時(shí)間
這對(duì)單人游戲來(lái)說(shuō)很容易實(shí)現(xiàn)。在多人游戲中,你就需要解決等待時(shí)間的問(wèn)題了。(我們將在后面討論這個(gè)問(wèn)題。)
4、使用網(wǎng)絡(luò)
網(wǎng)絡(luò)不一定對(duì)于每個(gè)移動(dòng)游戲都是必需的,但是那種與人競(jìng)爭(zhēng)的感覺(jué),即使只有一個(gè)排行榜,也能吸引更多的游戲者。要記住,手機(jī)實(shí)際上是一種社會(huì)性設(shè)備,添加某種社會(huì)性因素到你的游戲中會(huì)使它更加受歡迎。
5、盡可能地讓游戲保持小型
記住一點(diǎn),人們?nèi)匀粺嶂杏?0年代的優(yōu)秀的游戲。在某些方面,技術(shù)的限制強(qiáng)迫你把更多的注意力放到基本的游戲中去。
當(dāng)我們?cè)诤罄m(xù)文章中探討開(kāi)發(fā)的時(shí)候,我們將討論一些技術(shù)問(wèn)題。
6、做好支持多種手機(jī)的準(zhǔn)備
至少,需要支持不同的屏幕尺寸,這對(duì)Nokia系列手機(jī)很容易做到。為Series 40開(kāi)發(fā)一種版本,為Series 60開(kāi)發(fā)另一種版本。多數(shù)情況下,你還要利用特定手機(jī)的性能和API,比如Nokia的用戶界面和SMS API,你要為不具備相同特性的手機(jī)開(kāi)發(fā)不同的版本。
7、為國(guó)際化做好準(zhǔn)備
全世界都在使用移動(dòng)電話,每一種語(yǔ)言都有自己的市場(chǎng)。在你開(kāi)發(fā)的時(shí)候你就要做好計(jì)劃,以便更利于本地化。
七、處理等待時(shí)間
移動(dòng)游戲如何解決無(wú)線網(wǎng)絡(luò)的高等待時(shí)間呢?
1、單人游戲
游戲者的游戲不需要用到網(wǎng)絡(luò),除非是把高分傳送到排行榜中,或允許游戲者瀏覽排行榜。這種網(wǎng)絡(luò)通訊對(duì)于游戲影響不大,幾秒鐘的延遲不會(huì)引起用戶的反感。
實(shí)質(zhì)上,在大多數(shù)的單人游戲中并沒(méi)有這個(gè)問(wèn)題。
2、"多玩家"單人游戲
在一個(gè)"多玩家"單人游戲中,游戲者感覺(jué)他們是在玩一個(gè)多人游戲,但是事實(shí)上,每個(gè)人只是面對(duì)相同的游戲,在游戲或者回合結(jié)束時(shí)比較分?jǐn)?shù)。
當(dāng)一個(gè)游戲者加入游戲時(shí),他告訴其他游戲者他的ID號(hào),然后開(kāi)始玩單人游戲。服務(wù)器要么給每個(gè)游戲者發(fā)送一個(gè)包含相同消息的游戲狀態(tài)文件,要么發(fā)送一個(gè)來(lái)自構(gòu)造啟動(dòng)游戲狀態(tài)的客戶軟件的代碼。每個(gè)游戲者玩游戲,設(shè)法取得最高的得分。當(dāng)一個(gè)游戲者結(jié)束游戲后,他的客戶端程序把他的得分提交到服務(wù)器。當(dāng)所有的游戲者都完成游戲后(或者超過(guò)某個(gè)時(shí)間以后),服務(wù)器告訴每個(gè)游戲者誰(shuí)取得了最高分,以及每個(gè)游戲者取得的分?jǐn)?shù)。
這種風(fēng)格的游戲在因特網(wǎng)上相當(dāng)成功;AOL最受歡迎的游戲Slingo就是一個(gè)很好的例子。
因?yàn)橹挥性诜?wù)器開(kāi)始或者結(jié)束游戲的時(shí)候才需要交換消息,所以等待時(shí)間只有在這些時(shí)候才成為一個(gè)問(wèn)題。
3、基于回合的游戲
在一個(gè)基于回合的游戲中,游戲者進(jìn)入他們的回合,并在接收結(jié)果之前需要等待一段時(shí)間。幾秒鐘的延遲是可以容忍的。
有兩種基于回合的游戲:
3.1、輪流游戲
在一個(gè)輪流游戲中,每個(gè)游戲者按次序進(jìn)入回合。像象棋、紅心大戰(zhàn)這樣的經(jīng)典游戲就是很好的例子。
這種游戲的缺點(diǎn)就是游戲者在重新進(jìn)入回合之前無(wú)事可做。雖然經(jīng)典游戲在因特網(wǎng)上有很多玩家,但這多多少少有點(diǎn)無(wú)趣,。
因此,限制輪流游戲的游戲者數(shù)是個(gè)非常好的主意,這樣延遲就不會(huì)變得非常長(zhǎng)。兩到四個(gè)游戲者是比較理想的情況。
3.2、同時(shí)動(dòng)作游戲
在一個(gè)同時(shí)動(dòng)作游戲中,每個(gè)游戲者獨(dú)立于其它游戲者計(jì)劃他自己的行動(dòng)。當(dāng)一個(gè)游戲者就緒時(shí),他發(fā)送指令到服務(wù)器。服務(wù)器等到從所有的游戲者那里都接到指令,然后分解回合,再把結(jié)果發(fā)送到所有的游戲者那里。
4、"即時(shí)動(dòng)作"游戲
在一個(gè)"即時(shí)動(dòng)作"游戲中,游戲可能會(huì)持續(xù)很長(zhǎng)時(shí)間(幾天、幾個(gè)星期、幾個(gè)月甚至到永遠(yuǎn))。游戲者可以在任何時(shí)候進(jìn)入游戲,執(zhí)行游戲中的動(dòng)作。在一些游戲中,他們可能只能與其他的同時(shí)進(jìn)入游戲的用戶交互;在其它的游戲中,他們也許能與任何其他游戲者交互,即使這些游戲者已經(jīng)下線。
6、把等待時(shí)間分布到游戲中
讓游戲者接受高等待時(shí)間的另一種簡(jiǎn)單方法就是把等待時(shí)間分布到游戲本身中。例如,大部分星際飛船戰(zhàn)斗游戲讓人都感覺(jué)到象是二次大戰(zhàn)時(shí)的空戰(zhàn),戰(zhàn)船在你身邊呼嘯而過(guò),向你開(kāi)炮。然而,在手機(jī)上要實(shí)現(xiàn)這種火爆的場(chǎng)面好像困難很大。我們可以換一種思路,我們可以把星際戰(zhàn)艦類游戲做成一個(gè)類似第一次世界大戰(zhàn)海戰(zhàn)的游戲,星際飛船慢慢地移動(dòng),彼此之間一發(fā)一發(fā)的發(fā)射炮彈,導(dǎo)彈緩慢的移動(dòng)奔向它們的目標(biāo)。你可以使用這種方法來(lái)隱藏幾秒鐘的等待時(shí)間??隙ㄟ€有更多的解決長(zhǎng)等待時(shí)間的方法。這是一個(gè)值得花時(shí)間去思考解決的問(wèn)題。