亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

多人視頻游戲系統(tǒng)及方法

文檔序號:1604288閱讀:350來源:國知局
專利名稱:多人視頻游戲系統(tǒng)及方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種多人視頻游戲系統(tǒng)及方法。
背景技術(shù)
移動電話、個人數(shù)字助理(PDA)、以及類似的手持移動電子裝置有時提供諸如玩視頻游戲的能力之類的附加功能。針對這樣的移動裝置的游戲已趨向于變得更加復(fù)雜,具有更逼真的圖形、更復(fù)雜的游戲玩法以及其它改進。所述裝置本身已變得更加復(fù)雜,同時具有更多存儲容量、更快的處理器、圖形加速器和其他升級。結(jié)果,一些游戲僅僅能在昂貴的、高度復(fù)雜的裝置上玩。開發(fā)這樣的游戲是復(fù)雜的并且可能需要繪畫藝術(shù)家和非常熟練的編程人員。對于視頻游戲開發(fā)來說,一個游戲花費超過一百萬美元并不罕見。

發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個方面,提供一種多人視頻游戲系統(tǒng)及方法,用于同時在多個移動手持機(handset)上顯示彼此相同的游戲,所述多個移動手持機彼此具有不同尺寸的顯示屏。
本發(fā)明提供一種用于移動手持機上的多人游戲的方法,包括第一用戶經(jīng)由第一移動裝置的小鍵盤輸入多個輸入以玩第一游戲;將所述第一用戶在所述第一移動裝置上的小鍵盤輸入傳送到第二移動裝置;第二用戶經(jīng)由所述第二移動裝置的小鍵盤輸入多個輸入以玩第二游戲,所述第一和第二游戲是在各自移動裝置上提供的基本上相同的游戲;以及將所述第二用戶在所述第二移動裝置上的小鍵盤輸入傳送到所述第一移動裝置,所述第一游戲使用來自所述第二移動裝置的所述小鍵盤輸入并且所述第二游戲使用來自所述第一移動裝置的所述小鍵盤輸入以使得能夠在所述第一和第二游戲之間進行多人游戲。
本發(fā)明提供一種用于移動手持機的多人游戲,包括游戲組件,可在第一用戶的第一移動手持機上操作以在所述第一移動手持機上玩游戲,所述游戲組件提供與所述第一用戶使用所述第一移動手持機進行的動作有關(guān)的第一玩家指示器,并且還提供與第二用戶使用第二移動手持機進行的動作有關(guān)的第二玩家指示器;以及通信組件,可操作用于接收與來自在所述第二移動手持機上玩所述游戲的第二用戶玩游戲的小鍵盤輸入有關(guān)的數(shù)據(jù),其中所述游戲組件可操作用于根據(jù)從所述第二移動手持機接收的小鍵盤輸入來更新在所述第一移動手持機上的所述第二玩家指示器。
本發(fā)明提供一種用于多人游戲的系統(tǒng),包括在第一計算平臺上的第一游戲;在第二計算平臺上的第二游戲,所述第一和第二游戲基本上是相同的游戲;第一通信組件,可操作用于接收第二用戶的、與在所述第二計算平臺上玩所述第二游戲有關(guān)的游戲輸入;以及第二通信組件,可操作用于接收第一用戶的、與在所述第一計算平臺上玩所述第一游戲有關(guān)的游戲輸入,其中,所述第一游戲可使用來自所述第二計算平臺的、第二用戶的游戲輸入來運行,并且所述第二游戲可使用來自所述第一計算平臺的、第一用戶的游戲輸入來運行以使得能夠在所述第一和第二游戲之間進行多人游戲。


為了更完整地理解本說明及其優(yōu)點,現(xiàn)在將結(jié)合詳細說明的附圖來進行簡短說明,其中類似的附圖標記代表類似部分。
圖1圖解了根據(jù)本公開一個實施例的、用于游戲開發(fā)和玩游戲的系統(tǒng)的方框圖。
圖2圖解了根據(jù)本公開一個實施例的、其中可顯示游戲中的場景的全景圖的俯視透視圖。
圖3圖解了根據(jù)本公開的一個實施例的、可以顯示游戲中的場景的視頻屏幕。
圖4圖解了根據(jù)本公開的一個實施例的、可在游戲的場景中呈現(xiàn)的層。
圖5圖解了根據(jù)本公開的一個實施例的、處理將在游戲中使用的文件的運行時引擎(runtime engine)。
圖6A-6E圖解了根據(jù)本公開的一個實施例的、可用于創(chuàng)建游戲的創(chuàng)作工具。
圖7圖解了登記成功射擊的現(xiàn)有技術(shù)。
圖8a和8b圖解了根據(jù)本公開的一個實施例的用于登記成功射擊的技術(shù)。
圖9圖解了根據(jù)本公開的一個實施例的在不同尺寸的屏幕上的圖像顯示。
圖10圖解了根據(jù)本公開的一個實施例的在游戲中使用的雷達。
圖11圖解了根據(jù)本公開的一個實施例的在游戲中使用的文件的容器。
圖12圖解了可操作用于本公開的各種實施例中的一些實施例的移動裝置的方框圖。
圖13圖解了可操作用于本公開的各種實施例中的一些實施例的計算機系統(tǒng)的方框圖。
具體實施例方式
首先應(yīng)當理解雖然下面描述了本發(fā)明的一個實施例的示范性實現(xiàn),但是可以使用任何數(shù)量的技術(shù)(無論當前已知還是現(xiàn)有的)來實現(xiàn)本系統(tǒng)。本公開將決不應(yīng)限于下面描述的示范性實現(xiàn)、附圖和技術(shù)(包括在此描述和圖解的示范性設(shè)計和實現(xiàn)),而是可以在所附權(quán)利要求及其等價內(nèi)容的全部范圍內(nèi)進行修改。
本發(fā)明提供一種用于移動手持機上的多人游戲的方法,所述方法包括第一用戶經(jīng)由第一移動裝置的小鍵盤輸入多個輸入以玩第一游戲。所述方法包括將所述第一用戶在所述第一移動裝置上的小鍵盤輸入傳送到第二移動裝置。所述方法包括第二用戶經(jīng)由所述第二移動裝置的小鍵盤輸入多個輸入以玩第二游戲,所述第一和第二游戲是在各自的移動裝置上提供的基本上相同的游戲。
而且,所述方法包括將所述第二用戶在所述第二移動裝置上的小鍵盤輸入傳送到所述第一移動裝置,所述第一游戲使用來自所述第二移動裝置的所述小鍵盤輸入并且所述第二游戲使用來自所述第一移動裝置的所述小鍵盤輸入以使得能夠在所述第一和第二游戲之間進行多人游戲。
而且,根據(jù)本發(fā)明的另一方面,提供一種用于移動手持機的多人游戲,包括游戲組件,可在第一用戶的第一移動手持機上操作以在所述第一移動手持機上玩游戲,所述游戲組件提供與所述第一用戶使用所述第一移動手持機進行的動作有關(guān)的第一玩家指示器,并且還提供與第二用戶使用第二移動手持機進行的動作有關(guān)的第二玩家指示器;以及通信組件,可操作用于接收與來自在所述第二移動手持機上玩所述游戲的第二用戶進行的游戲的小鍵盤輸入有關(guān)的數(shù)據(jù),其中所述游戲組件可操作用于根據(jù)從所述第二移動手持機接收的小鍵盤輸入來更新在所述第一移動手持機上的所述第二玩家指示器。
而且,根據(jù)本發(fā)明的再一方面,本發(fā)明提供一種用于多人游戲的系統(tǒng),包括在第一計算平臺上的第一游戲;在第二計算平臺上的第二游戲,所述第一和第二游戲基本上是相同的游戲;第一通信組件,可操作用于接收第二用戶的、與在所述第二計算平臺上玩所述第二游戲有關(guān)的游戲輸入;以及第二通信組件,可操作用于接收第一用戶的、與在所述第一計算平臺上玩所述第一游戲有關(guān)的游戲輸入,其中,所述第一游戲可使用來自所述第二計算平臺的、第二用戶的游戲輸入來操作,并且所述第二游戲可使用來自所述第一計算平臺的、第一用戶的游戲輸入來操作以使得能夠在所述第一和第二游戲之間進行多人游戲。
公開了可被稱為360-3D的游戲格式。所述360-3D格式允許在具有有限存儲器和處理能力的移動裝置上玩具有高質(zhì)量的三維圖形和復(fù)雜故事情節(jié)的游戲。在一個實施例中,例如,所述移動裝置可以具有以大約120MHz執(zhí)行的處理器,以及在移動裝置中可用的、用于載入360-3D游戲數(shù)據(jù)的存儲空間可以處于從大約3兆字節(jié)到大約28兆字節(jié)的范圍中。一般地,獲得高質(zhì)量視頻圖形需要具有圖形加速器的移動手持機。在一些實施例中,本系統(tǒng)可以運行在不具有圖形加速器的移動手持機上。也公開了用于開發(fā)360-3D游戲的系統(tǒng)和方法。所述系統(tǒng)和方法允許開發(fā)者通過指定將在移動裝置的顯示屏上如何操縱一組預(yù)呈現(xiàn)(pre-rendered)圖像而容易地創(chuàng)建360-3D游戲??梢栽诓皇褂贸绦虼a的情況下創(chuàng)建游戲,減少了對編程知識或經(jīng)驗的要求,并且大大減少了游戲開發(fā)的成本。
圖1是在360-3D游戲開發(fā)和游戲運行系統(tǒng)的實施例中的主要部件的方框圖。創(chuàng)建360-3D游戲的開發(fā)者一般通過利用標準的、商業(yè)可得到的圖形程序110來創(chuàng)建將在游戲中被操縱的三維圖像集而開始游戲開發(fā)過程。如在下面更詳細討論的,所述圖像被預(yù)呈現(xiàn)(pre-render)和存儲為一組targa或.tga格式的圖形文件120。
創(chuàng)作工具130因而用于導(dǎo)入圖形文件120并且將它們從.tga格式轉(zhuǎn)換成可被稱為.pic文件140的格式。如在下面更詳細討論的,從.tga文件到.pic文件140的轉(zhuǎn)換涉及通過游程長度(run length)編碼處理來壓縮文件。創(chuàng)作工具130因而用于創(chuàng)建一組可被稱為.act或動作文件(action file)150的文件。如下所討論的,每一.act文件150包含一系列描述將如何操縱.pic文件140中的圖像來創(chuàng)建360-3D游戲的指令。在已創(chuàng)建.pic文件140和.act文件150之后,所述文件可被一起存儲為可稱為容器160的單個數(shù)據(jù)文件組。
一般在單個計算機170上存在創(chuàng)作工具130、.pic文件140、.act文件150和容器160。雖然在圖1中圖形程序110和圖形文件120被示出在計算機170之外,但是在其他實施例中,可以在存在所述創(chuàng)作工具130、.pic文件140、.act文件150和容器160的同一計算機170上存在所述圖形程序110和圖形文件120。
當將要在移動電話、PDA或類似裝置上安裝360-3D游戲時,將容器160從計算機170拷貝到移動裝置180中??商鎿Q地,在被傳送到移動裝置180之前,所述容器160可以存儲在中間地點中。例如,可在網(wǎng)站上得到所述容器160以便下載到移動裝置180中,或者,所述容器160可存儲在CD或其他存儲介質(zhì)上以便拷貝到所述移動裝置180中。本領(lǐng)域技術(shù)人員熟悉其中可將容器160從計算機170傳送到移動裝置180的其他方式。
可以預(yù)期,在容器160中的文件將是與計算機170和移動裝置180都兼容的格式,并且不需要對所述文件進行修改作為傳送過程的一部分。但是,即使為了兼容性需要微小的修改,所述文件也應(yīng)當被認為基本上等同并且在此將被稱為處于容器160中,而不管所述容器160是在計算機170中,還是在移動裝置180中。
在移動裝置180中還存在運行時引擎190,其可以讀取在容器160中的文件。如在下面更詳細討論的,引擎190讀取在.act文件150中的關(guān)于應(yīng)當如何操縱.pic文件140中的圖像的指令。然后引擎190檢索合適的.pic文件140,按照指示操作它們,并且在移動裝置180的顯示屏幕200上顯示它們。
容器160一般載入到移動裝置180中的非易失性存儲單元(諸如閃存)中。在容器160中的文件是簡單的數(shù)據(jù)文件,而不是可執(zhí)行文件,因此,可以預(yù)期,當將容器160載入到移動裝置180中時,不會產(chǎn)生諸如病毒或編碼錯誤之類的問題。
在優(yōu)選實施例中,引擎190被嵌入到移動裝置180的操作系統(tǒng)中??梢陨晕⑿薷囊?90以便與不同裝置和不同操作系統(tǒng)兼容,但是可以在任何移動裝置180上安裝基本上相同的引擎190,并且所述引擎190可以讀取任何容器160。通常,僅僅可以修改引擎190以使用等價的操作系統(tǒng)調(diào)用來初始化一定時器功能,該定時器功能每秒調(diào)用引擎190大約十五次,以寫存儲單元、觸發(fā)顯示更新、和使引擎190進入休眠狀態(tài)。引擎190是360-3D游戲的唯一的可執(zhí)行部分。一旦針對特定移動裝置180和操作系統(tǒng)測試和調(diào)試了引擎190,則不需要為在那種類型的移動裝置180上安裝360-3D游戲而做進一步的測試或調(diào)試。當將在移動裝置180上安裝新360-3D游戲時,作為任何現(xiàn)有的其他游戲的容器160的替代或附加,將該游戲的容器160簡單地載入到所述裝置的存儲器中。引擎190隨后可以讀取新容器160以運行所述新游戲。
在詳細討論創(chuàng)作工具130如何創(chuàng)建360-3D游戲以及運行時引擎190如何運行游戲之前,討論通常在360-3D游戲中出現(xiàn)的360-3D游戲的格式和游戲動作(gaming action)的類型可能是有益的。
360-3D游戲可能落在稱為第一人稱射擊者游戲(first-person shooter game)的類別之中。也就是說,360-3D游戲的玩家采用在移動裝置180的視頻屏幕200上顯示的場景中呈現(xiàn)的虛擬玩家(virtual player)的視角(perspective)。所述虛擬玩家一般能夠在所述場景中進行某些移動,并且一般可以進行某些動作,諸如向該場景中的人物(character)或目標射擊。應(yīng)當理解如本領(lǐng)域人員所熟悉的那樣,所述動作不限于射擊,并且可以是在場景中的虛擬玩家和人物之間的其它類型的交互作用。例如,所述動作可以是選擇人物以執(zhí)行某種活動。但是,為了便于參考,在下文中,虛擬玩家和人物之間的交互作用將被稱為射擊和/或開火(firing a shot)。也應(yīng)當理解射擊可能涉及向多種不同種類的目標投射多種不同種類的拋射物。一個例子是軍事動作的游戲,其中玩家射擊其他軍事動作形象,諸如士兵、坦克、直升機等等。其他例子包括其中玩家射擊恐龍、或從水下透視向鯊魚射擊的游戲,或者其他射擊圖庫類型的游戲。所述游戲可以是救火游戲,其中玩家向火噴射水以澆滅火苗。射擊和/或開火可以包括噴射、瞄準、選派、和/或選擇。可以利用現(xiàn)有系統(tǒng)或針對現(xiàn)有系統(tǒng)創(chuàng)建的其他類型的游戲的例子將容易地向本領(lǐng)域技術(shù)人員表明這些。
在360-3D游戲的一個實施例中,虛擬玩家在場景中的單個點上保持固定,但是可以繞著該點自由地旋轉(zhuǎn)。這通過在原地順時針或逆時針轉(zhuǎn)動或旋轉(zhuǎn)來進行,虛擬玩家可以具有其看上去處于中心的虛擬世界的360°視野。虛擬玩家在其中旋轉(zhuǎn)的場景的背景是一個全景圖(panoruma),該全景圖向其自身無縫地環(huán)繞(wrap)回來,以便產(chǎn)生虛擬玩家可以在真實世界的場景中無窮盡地轉(zhuǎn)動的景象。因此,玩家可以以順時針或逆時針的旋轉(zhuǎn)運動轉(zhuǎn)動360°、720°、1080°和其他數(shù)量。
真實玩家一般通過按壓移動裝置180的小鍵盤上的鍵來控制虛擬玩家的動作。例如,左和右光標鍵可以被用于使虛擬玩家向左或右旋轉(zhuǎn)?!剀嚒I或其他鍵可以被用于開火。在其他實施例中,可以使用其他鍵或用于提供用戶輸入的其他裝置來執(zhí)行這些動作。
圖2是向下看虛擬玩家210和該虛擬玩家位于其中央的圓形全景圖220的俯視透視圖。諸如山230或其他布景之類的物體可以出現(xiàn)在背景中,同時,建筑物240和其他人造物體,樹木250和其他自然物體,以及人、動物、或不動的人物260可以出現(xiàn)在前景中。可以適當?shù)乜s放背景和前景物體以便創(chuàng)建三維景象。當虛擬玩家210旋轉(zhuǎn)時,圓形全景圖220的不同部分可以看上去像是進入視野。
圖3是對實際玩家在玩360-3D游戲時可能在視頻顯示屏200上看到的場景的描述。在該圖中,示出了圓形全景圖220的一部分,并且該部分在顯示屏上看上去是平的。在顯示屏200上出現(xiàn)如在全景圖220上排列的山230、建筑物240、樹木250和人物260。人物260、車輛、和其他可移動的物體可以從虛擬玩家210的視角并相對于背景向左和向右移動(下文中,任何能夠在場景中移動的物體將被稱為人物260,而不管該物體是具有人、動物、車輛、還是其他類型的可移動物體的外觀)。人物260也可以在尺寸上放大和縮小以看起來象是在向虛擬玩家210移動和離開虛擬玩家210。也可以使用縮放來給出固定物體接近或離開虛擬玩家210的感覺。
場景包括多個不可見的層,所述層指示人物260相對于背景和前景的深度。當向左或向右移動時,人物260向多個層之一移動。也就是說,人物260可以盡可能地接近前景、盡可能地接近背景、或在最近的前景和最遠的背景之間的幾個層中的任意一個中。這允許處于不同層中的人物260看起來象是在彼此前面或后面移動,當其在前面經(jīng)過時,上層的人物260掩蔽下層的人物260。當在尺寸上放大或縮小以創(chuàng)建向前或向后移動的景象時,人物260也可以改變層。
圖4描述該分層原理。山230可以處于最遠的層或背景中,其可被稱為層0。樹木250可以呈現(xiàn)在位于層0之前的層10中;另一樹木250可以呈現(xiàn)在位于層10之前的層20中。兩個建筑物240可以呈現(xiàn)在位于層20之前的層30中。人物260可以呈現(xiàn)在位于層30之前的層40中。雖然僅僅示出了五個層,但是,在其他實施例中,也可以呈現(xiàn)其他數(shù)目的層。在同時顯示所有的層并且選擇在所述層中的物體的合適尺寸時,當物體出現(xiàn)在其他物體之前或之后并且出現(xiàn)相關(guān)的掩蔽時,在屏幕200上產(chǎn)生了三維景象。
返回圖3,在屏幕200上呈現(xiàn)十字準線270以示出虛擬玩家210正在瞄準的地方。在其他實施例中,可以使用諸如指針、瞄準指示器或目標刻線之類的其他目標指示器來代替十字準線270。下文中,任何這樣的目標指示器將被稱為十字準線270。十字準線270在屏幕200從左到右的中央。真實玩家使得虛擬玩家210向左或向右旋轉(zhuǎn)的效果是在場景中的圖像旋轉(zhuǎn),但是十字準線270保持在從左到右的中央。真實玩家也可以利用在移動裝置180的小鍵盤上的向上和向下光標鍵或類似的輸入機構(gòu)使得十字準線270向上和向下移動。以這種方式,真實玩家可以嘗試在場景中的人物260或其他目標上設(shè)置十字準線270。通過敲擊在移動裝置180的小鍵盤上的合適的鍵或通過提供一些其他的合適輸入,真實玩家使得在十字準線270的中央實施動作(例如開火)。如果十字準線270正確地定位在人物260上,則該動作引起人物260的反應(yīng)(例如,使人物260受傷)。
人物260具有向虛擬玩家210實施動作的能力,諸如射擊。人物260也可以移到建筑物或布景之中或之后,例如移到在比主體人物260高的層中的建筑物之后,以防止虛擬玩家擊中他們。
在屏幕200上呈現(xiàn)可稱為‘雷達(radar)’280的圖形顯示,其指示對虛擬玩家210造成有效威脅的人物260所處的位置,其中所述人物260包括位于在當前可視場景之外的任何人物260。雷達280也可以稱為威脅指示器。將在后面詳細說明雷達280。
屏幕200也可以包括得分290,其指示虛擬玩家210已殺死多少人物260和/或在多人游戲中虛擬玩家的伙伴或競爭者已殺死多少人物260。將在后面詳細討論多人游戲。在屏幕200上還可以顯示其他狀態(tài)信息,例如剩余的儲備、剩余的彈藥、和剩余的游戲時間。
象任何第一人稱射擊者游戲一樣,360-3D游戲的游戲玩法的一般原理是虛擬玩家210在人物260殺死該虛擬玩家210之前殺死所有的人物260。此外,雖然討論是針對射擊游戲進行的,但是應(yīng)當理解類似的原理可以應(yīng)用于其他類型的游戲??梢灶A(yù)期,其上安裝360-3D游戲的裝置180的擁有者將主要使用裝置180的通話或管理器(orgainzer)功能,而玩游戲?qū)⑹禽o助特征,其將是僅僅偶爾用作臨時的娛樂。因此,設(shè)計360-3D游戲以允許用戶快速和直觀地了解規(guī)則和其他特征,而不需要大量的指導(dǎo)或?qū)嵺`。諸如雷達280、其垂直位置由特定輸入鍵控制的水平中央定位的十字準線270、使用特定輸入鍵的開火、和由特定輸入鍵控制的虛擬玩家的旋轉(zhuǎn)之類的特征是慣例,這將使得用戶能夠快速地了解如何使用新360-3D游戲。還將游戲設(shè)計為以便最小化設(shè)置和啟動時間。
虛擬玩家210可以具有能夠?qū)θ宋?60造成指定級別的傷害的武器。武器能夠造成的傷害的級別可被稱為武器的能力。人物260經(jīng)受的傷害量可以稱為損傷(damage)。例如,在虛擬玩家210使用來自具有能力5的武器的子彈擊中人物260時,該武器可以對人物260造成5點的損傷。人物260可以具有在他們死之前或在對人物260出現(xiàn)某些其他動作之前能夠經(jīng)受的指定水平的損傷。例如,人物260可能在受到20點的損傷之后死亡。這樣的人物260在被具有能力5的武器擊中4次之后將死亡。
類似地,人物260可以具有能夠?qū)μ摂M玩家210造成指定級別的損傷的武器,并且虛擬玩家210可以具有在他被殺死之前能夠經(jīng)受的指定級別的損傷。通常,如果虛擬玩家210在人物260殺死該虛擬玩家210之前殺死了所有人物260,則可以贏得游戲,或達到游戲的新級別。在一般游戲原理上的許多變化是可能的,并且對于本領(lǐng)域人員來說是明顯的。例如,能力和損傷的概念容易地擴展到不是針對格斗的游戲,例如救火游戲。
當啟動360-3D游戲時,執(zhí)行各種動作的各種人物260可以出現(xiàn)在場景中的不同位置上。將在下面詳細描述其中游戲開發(fā)者使用創(chuàng)作工具130來指定將出現(xiàn)那些人物260、他們的特征是什么、他們將出現(xiàn)在哪里和他們將干什么的方式。
在啟動游戲時,虛擬玩家210可以以上述方式開始轉(zhuǎn)動、設(shè)置十字準線270的位置、和射擊。人物260也可以開始射擊虛擬玩家210。在一個實施例中,可以使用監(jiān)視例程來確定在游戲開始時虛擬玩家210開始射擊的時間,并且以及可能直到虛擬玩家210開始射擊才允許人物260開始射擊。以這種方式,可以給虛擬玩家210在游戲開始時安全地觀察場景的機會。這也可以給新玩家了解游戲的機會。
人物260的行為由游戲開發(fā)者在一個或多個.act文件150中指定或描述,這將在下面詳細描述。作為一個例子,人物260可以躲在物體后面規(guī)定長度的時間,從該物體后面升起,射擊虛擬玩家210,然后返回躲藏處。人物260可以重復(fù)該行為直到他被虛擬玩家210殺死為止。
該行為可以被存儲成單個.act文件150。應(yīng)當重申.act文件150僅包含數(shù)據(jù),而不包含可執(zhí)行代碼。.act文件150的第一部分可包含與人物260的特征的設(shè)置有關(guān)的數(shù)據(jù),諸如人物260在死亡之前可以忍受的損傷量和如果人物260死亡將采取的動作。.act文件150的第二部分可以包含用于描述人物260升起的指令。.act文件150的第三部分可以包含用于描述人物260射擊虛擬玩家的指令。.act文件150的第四部分可以包含人物260應(yīng)當在隱藏處逗留的時間長度的指令。.act文件150的第五部分可以包含返回第二部分以便重復(fù)事件序列的指令。在一些實施例中,這些活動的所有信息可被保存在具有多個分開的部分的單個.act文件150中,或這些活動可以被保存在分開的多個.act文件150中。
如果虛擬玩家210殺死了人物260,則應(yīng)當查詢在.act文件150的第一部分中的設(shè)置。這些設(shè)置可以標識在人物260死亡時將調(diào)用的一個或多個其他.act文件150,并且這些其他的.act文件150可以使得一個或多個其他人物260出現(xiàn)并且執(zhí)行其他的動作序列。游戲開發(fā)者可以使得.act文件150如期望的那樣復(fù)雜以便描述人物260的復(fù)雜的行為。開發(fā)者也可以定義多個.act文件150,以便在游戲開始時初始化,來創(chuàng)建如期望的那樣復(fù)雜的開始情節(jié)。
另外,.act文件150可以指令引擎190在任何時間運行或調(diào)用如期望的那樣多的其他.act文件150。在對人物260發(fā)生指定的動作時,一個.act文件150可以指令引擎190啟動其他.act文件150。例如,如果第一人物260被殺,則第二人物260可以在場景的一個位置中產(chǎn)生,并且第三人物260可以在另一位置產(chǎn)生。第二人物260和第三人物260的行為將由其他.act文件150來描述。這些其他的.act文件150可描述第二人物260和第三人物260的復(fù)雜的動作序列,并且可以標識在對第二人物260或第三人物260出現(xiàn)指定動作時引擎190將啟動的其它.act文件150,人物的.act文件150可以指令引擎190在不同環(huán)境下調(diào)用不同的.act文件150。例如,如果人物260受傷,則通過描述人物260受傷之前的行為的.act文件150,引擎190可被指令調(diào)用描述人物260的蹣跚行為的不同.act文件150。如果人物260被殺,則引擎190可被指令調(diào)用描述人物260的垂死行為的另一.act文件150。如果人物260移動到特定位置,則.act文件150可以指令引擎190改變?nèi)宋?60的武器的能力或人物260能夠經(jīng)受的損傷量。對于本領(lǐng)域人員來說,可以根據(jù)游戲環(huán)境改變?nèi)宋?60的行為的其他方式是很明顯的。
以這種方式,.act文件150可以指令引擎190在整個游戲的進行過程中啟動或調(diào)用其他的.act文件150。可以僅僅通過下述方式在運行過程中產(chǎn)生復(fù)雜的游戲情節(jié)其中虛擬玩家210與人物260交互的方式、其中人物260的動作由它們的.act文件150控制的方式、以及其中根據(jù)與舊人物260相關(guān)的.act文件150中的數(shù)據(jù)來產(chǎn)生新人物260的方式。當對特定人物260出現(xiàn)特定動作時或當達到某一得分290時,一般將存在使得游戲結(jié)束或使得進入新的游戲級別的.act文件150。
如上所述,當引擎190讀取包含在.act文件150中的數(shù)據(jù)時,引擎190產(chǎn)生使得在.pic文件140中的圖像顯示在屏幕200上或使得發(fā)生其他類型的動作的指令序列。指令序列可稱為動作定義。應(yīng)當理解.act文件150僅僅包含數(shù)據(jù),而不包含可操作用于處理的指令或代碼。具體而言,.act文件150不包含適合載入到用于由處理器單元,例如中央處理器(CPU)或數(shù)字信號處理器(DSP)運行的指令寄存器的機器指令。在此對指令、指導(dǎo)或從事處理功能的.act文件150的任何引用意欲指由讀取.act文件150和處理指令以運行游戲的引擎190所完成的處理。.act文件150可被認為是一系列的幀(frame),其中每一幀保存在被運行時引擎190讀取時將執(zhí)行的一個命令。幀也可以保存其他類型的指令。
在一個實施例中,.act文件150的每一幀包括32字節(jié)的數(shù)據(jù)。在其他實施例中,幀可以是其他尺寸。一個字節(jié)可以包含描述或指定將由引擎190執(zhí)行的命令的指示符(indicator)。其他字節(jié)可以包含命令所施加的文件的名稱和/或位置,所述文件例如是將被顯示為在場景中的圖像的特定.pic文件。在一個實施例中,可以由到容器160的地址偏移量來標識文件。除了命令,在其他字節(jié)中可以放置其他類型的指令。使用下面描述的創(chuàng)作工具130的游戲開發(fā)者可以指定每一幀將保存的命令指示符、文件名稱、和其他指令,從而指定當由運行時引擎190讀取每一幀時將發(fā)生的動作。
當運行時引擎190運行.act文件150時,運行時引擎190可以被描述為啟動一個活動。一個活動也可被稱為一個動作。一個活動或動作可被認為是.act文件150的一個實例。例如,可以通過啟動定義奔跑士兵動畫的單個.act文件150三次而在場景中創(chuàng)建三個奔跑的士兵。每一單獨的奔跑士兵是一個可區(qū)分的和唯一的活動。一個活動包含對描述所述活動的行為、所述行為的當前幀、所述行為所承受的累積損傷、所述行為在場景中的當前位置的.act文件150進行標識的信息,和其他狀態(tài)信息。本領(lǐng)域技術(shù)人員將理解可以根據(jù)每一單獨活動已承受多少損傷、每一活動是什么時候啟動的、以及因此與該活動關(guān)聯(lián)的人物已從原始啟動位置移動了多遠來區(qū)分例如定義由公共.act文件150啟動的奔跑士兵的實例的狀態(tài)的三個活動。在一個實施例中,運行時引擎190向每一活動分配運行路線并且可以在一個時間分段(time tick)或時鐘分段(clock tick)內(nèi)處理多個運行路線。
運行時引擎190在稱為時間片或時鐘分段或分段的一小部分時間期間執(zhí)行在多個.act文件150中的多個指令。圖5圖解了運行時引擎190讀取一組四個.act文件150中的幀300。在其他實施例中,可以提供其他數(shù)目的.act文件150。.act文件150被示出為相同尺寸,但是不是必須如此。箭頭310指示引擎190當前正在讀取的幀300。在該例子中,可以看出引擎190正在讀取在每一.act文件150中的不同的幀300。當引擎190在同一時間分段期間讀取多個.act文件150時,這可以使得在顯示屏200上同時出現(xiàn)多個圖像。
可在幀中提供的一個命令是‘.pic’命令。如果一個幀包含‘.pic’命令,則運行時引擎190搜索合適的.pic文件140并且在顯示屏200上顯示在.pic文件140中包含的圖像。將在下面更詳細描述.pic文件140中的圖像。
作為使用‘.pic’命令的一個例子,可以創(chuàng)建.act文件150以便給出人物260正在奔跑的景象。例如可以知道,需要依序顯示大約十四種不同的奔跑姿勢(每一姿勢描述稍微不同的身體位置)來創(chuàng)建逼真的奔跑動作。每一姿勢可以存儲在分開的.pic文件140中。在.act文件150中的一個幀可以包含調(diào)用檢索和顯示第一奔跑姿勢的‘.pic’命令,下一幀可以包含調(diào)用搜索和顯示第二奔跑姿勢的‘.pic’命令,等等。另一幀可能指定將重復(fù)先前的十四幀。當在視頻屏幕上循環(huán)地依序顯示十四幅圖像時,創(chuàng)建奔跑動作。
已知在視頻屏幕上的運動的平滑、逼真描述需要以每秒大約十五或更多次地更新在屏幕上的運動圖像。劇場電影通常每秒更新屏幕圖像24次,而電視通常每秒更新屏幕圖像30次。因此,運行時引擎190以每秒大約15或更多個命令或指令組、或大約每67毫秒至少一個命令的速率來執(zhí)行在.act文件150中的命令。這67毫秒的時間段可被稱為一個時間片、一個時鐘分段或分段。對于大部分,在時間分段和幀之間存在一對一關(guān)系。即,每一分段從每一行動.act文件150讀取一個幀。但是,在一些場合下,諸如當在一個幀存在被稱為‘多個(muti)’的指令選項,則在單個分段中可以讀取多于一個的幀。將在下面詳細討論‘多個’指令選項。應(yīng)當理解在當前描述的實施例中提供上述幀顯示速率、分段處理速率和讀取.act文件150的幀的速率,但是可以在其他實施例中使用其他速率。
可能需要區(qū)分對于在此使用的詞‘幀’的兩種不同用法。在通常的用法中,膠片被描述成以每秒某一數(shù)目的幀顯示,意思是每秒顯示的圖像數(shù)。利用這種用法,360-3D游戲可以被描述成以每秒大約15幀來顯示。詞‘幀’也可指在此稱為.act文件的‘幀’的.act文件150的數(shù)據(jù)分組或部分。
在一個實施例中,除了‘.pic’命令之外,在.act文件150的幀中可能出現(xiàn)下述命令‘啟動(launch)’、‘轉(zhuǎn)向(go to)’、‘如果.act轉(zhuǎn)向自己(if.act go to self)’、‘損傷(damage)’、‘刪除(delete)’、‘刪除自己(delete self)’、‘重新載入(reload)’、‘獎勵(bonus)’、‘聲音(sound)’、‘聲音停止(sound stop)’、‘射擊(shoot)’、‘說(say)’和‘聽(hear)’?!畣印钍沟迷诋斍?act 150a繼續(xù)運行的同時,.act 150b的一個實例開始運行。例如,根據(jù)對說明奔跑形象的動畫所需要的‘.pic’命令的序列進行描述的單個.act 150,可以啟動奔跑士兵的多個實例。正在運行的.act150的每一實例可被稱為一個活動。術(shù)語活動也可以指由引擎190讀取.act 150的幀。
‘啟動’命令產(chǎn)生由在啟動命令中標識的.act文件150定義的一個活動??梢允褂脝用顏碓S可一個人物260使得產(chǎn)生另一人物260。例如,如果第一人物260被殺死,則可以產(chǎn)生第二人物260,作為例如發(fā)送以替代傷亡的援軍。這可以通過在與第一人物260有關(guān)的.act 150a的幀中放置用于啟動與第二人物260有關(guān)的.act 150b的‘啟動’命令來實現(xiàn)。可以期望在第二人物260處于有效的同時,使第一人物260的尸體保持可見?!畣印顚⒃试S在使得與第二人物260有關(guān)的.act 150b開始運行的同時與第一人物260有關(guān)的.act150a保持有效并且顯示尸體。本領(lǐng)域技術(shù)人員將認識到其中可以使用‘啟動’命令來控制在3D-360游戲中的動作的其他方式。
‘轉(zhuǎn)向’命令類似于‘啟動’命令,因為在由第一.act 150a定義的第一活動中的‘轉(zhuǎn)向’命令可以使得由第二.act 150b定義的第二活動開始運行。但是,和‘啟動’命令不同,在第一活動中的‘轉(zhuǎn)向’命令使得第一行為停止運行并且被刪除。在上述例子中,如果不期望在第一人物260被殺死之后第一人物260的尸體保持可見,則可以使用‘轉(zhuǎn)向’命令。如果當?shù)谝蝗宋?60被殺時使用‘轉(zhuǎn)向’命令來產(chǎn)生第二人物260,則由第一.act 150a定義的并且和第一人物260有關(guān)的活動將停止操作,并且通過在下一時間分段不顯示,第一人物260將消失。
‘轉(zhuǎn)向’命令也可以提供上述奔跑人物的例子中的循環(huán)能力。在這種情況下,‘轉(zhuǎn)向’命令用于使得.act 150轉(zhuǎn)向自己。當使用‘轉(zhuǎn)向’命令時,可以指定在.act 150中的哪一幀是‘轉(zhuǎn)向’命令的目標。為了下面討論的原因,可能不希望.act 150的第一幀作為‘轉(zhuǎn)向’命令的目標。因此,當使用‘轉(zhuǎn)向’命令來創(chuàng)建在.act 150中的循環(huán)時,‘轉(zhuǎn)向’命令一般將.act 150的執(zhí)行重置到.act 150的第二幀。這樣的命令使得.act 150的運行在‘轉(zhuǎn)向’命令所在的點停止并且返回.act150的第二幀。.act 150的第二幀到最后一幀將因此被重復(fù)執(zhí)行。360-3D游戲開發(fā)者可以使用‘轉(zhuǎn)向’命令來描述人物260的其他行為的其他方式對于本領(lǐng)域技術(shù)人員來說將是明顯的。
‘如果.act轉(zhuǎn)向自己’命令是向360-3D游戲開發(fā)者提供用于描述人物260的行為的許多能力的強大命令。利用該命令,文件.act 150a可以確定第二.act150b當前是否是運行的。如果第二.act 150b是運行的,則第一.act 150a的運行移到在第一.act 150a中的不同幀或采取其他動作。這可以允許由第一.act150a控制的人物260根據(jù)第二.act 150b是否正在運行而執(zhí)行不同的動作以便提供附加游戲功能。
例如,如果在第一層中不存在特定物體,則可能期望使得由第一.act 150a控制的人物260在第一層中在屏幕200上從左向右移。如果在第一層中存在該物體,則可能期望使得人物260在第二層中移動。為此,控制人物260的.act150a可以包含使得人物260看上去象在第一層中移動的第一組指令以及使得人物260看上去象是在第二層中移動的第二組指令。.act 150a也可以包含檢查是否存在物體的‘如果.act轉(zhuǎn)向自己’命令。
人物260可以開始在第一層中移動并且控制人物260的.act 150a可以周期地運行‘如果.act轉(zhuǎn)向自己’命令以確定該物體是否存在。如果該物體不存在(即如果控制該物體的.act 150b當前不是運行的),則控制人物260的.act 150a可以繼續(xù)運行第一組指令并且留在第一層中。如果該物體存在(即如果控制該物體的.act 150b當前是運行的),則控制人物260的.act 150a可以跳轉(zhuǎn)到第二組指令并且因此使得人物260看上去象是移動到了第二層。這可能使得人物260看上去象是移到了該物體背后。本領(lǐng)域技術(shù)人員將能夠找到可以使用‘如果.act轉(zhuǎn)向自己’命令來組織360-3D游戲的編程邏輯的許多其他方式。
使用‘損傷’命令來指定在人物260被殺死或?qū)θ宋?60發(fā)生某些其他動作之前人物260能夠忍受的損傷量。‘損傷’命令也指定當?shù)竭_人物260的損傷閾值時將發(fā)生的動作。例如,如果在第一.act 150a中的‘損傷’命令給出20的損傷級別并且與稱為‘die1’的第二.act 150b相關(guān)聯(lián),則當由第一.act 150a控制的人物260經(jīng)受到20的損傷時,將開始運行‘die1’.act 150b?!甦ie1’.act 150b可以描述人物260倒向地面。
‘損傷’命令一般放置在.act 150a的第一幀中。在該幀中指定的損傷閾值和在到達該閾值時將啟動的.act 150b的名稱在運行.act 150a的整個過程中保持有效,除非被隨后的‘損傷’命令修改。改變在到達閾值時將運行的.act 150可以使得人物260在不同環(huán)境下以不同方式死亡。例如,在地上的人物260可以具有die1’.act 150b,其使得人物260在垂死時看起來以一種方式倒地。如果人物260隨后移到升高的位置,則可以調(diào)用‘損傷’命令以改變?nèi)宋?60死亡的方式。通過‘損傷’命令可以指定‘die2’.act 150c以便人物260在垂死時看起來是以不同方式倒地。
‘刪除’命令使得由具有特定名稱的.act 150控制的所有活動停止運行并且因而使得由主.act 150控制的人物260從屏幕200消失。例如,穿過屏幕200從左向右跑的人物260可以由稱為‘run3’的.act文件150來控制。這樣的奔跑的人物260或奔跑活動的多個實例可以從‘run3’.act文件150產(chǎn)生。應(yīng)用于文件名稱‘run3’的‘刪除’命令可以使得從‘run3’.act文件150產(chǎn)生的所有奔跑的人物260或奔跑活動同時停止運行,以及使人物260或奔跑活動的所有實例同時消失。
相反,‘刪除自己’命令將僅僅使得運行其‘刪除自己’命令的活動停止運行。例如,因為由‘run2’.act文件150產(chǎn)生的第一活動是循環(huán)的,因此當處理第一活動時引擎190不會遇到在‘run2’.act文件150內(nèi)的‘刪除自己’命令。然而,當處理由‘run2’.act文件150產(chǎn)生的第二活動時,由于可以將不同的事件(例如由虛擬玩家210開火)應(yīng)用于第二活動,所以引擎190可能會遇到‘刪除自己’命令,這使得對第二活動的處理和循環(huán)脫離,并且進一步前進以處理‘刪除自己’命令。在這種情況下,與由‘run2’.act文件150產(chǎn)生的第二活動相關(guān)的人物260將消失,但是與由‘run2’.act文件150產(chǎn)生的第一行為相關(guān)的人物260將繼續(xù)可見。
‘重新載入’命令使得能夠改變虛擬玩家210可獲得的彈藥量。虛擬玩家210一般以固定量的彈藥開始游戲。由虛擬玩家210進行的每一射擊將該量減少虛擬玩家210正使用的武器的威力值。例如,如果虛擬玩家210以100的彈藥級別開始游戲,并且如果虛擬玩家210使用的武器具有威力5,則虛擬玩家210在用完彈藥之前可以進行20次射擊?!匦螺d入’命令可以增加或減少虛擬玩家的彈藥級別。例如,如果虛擬玩家210贏得游戲的一個級別,并且移到另一級別,則可以調(diào)用‘重新載入’命令來將虛擬玩家的彈藥級別重新設(shè)置到其最大值。此外,如果虛擬玩家210擊中無辜的人物260而不是敵人,則可以調(diào)用‘重新載入’命令來從虛擬玩家210扣除彈藥??梢允褂谩匦螺d入’命令來增加或減少屬于玩主游戲的任何儲備。
‘獎勵’命令允許在某些環(huán)境下給虛擬玩家210附加的點。通常,虛擬玩家210接收的點數(shù)等于殺死人物260所需要的損傷。也就是說,如果殺死人物260需要20點的損傷,則虛擬玩家210將接收用于殺死人物260的20點。通過在.act 150的幀中插入‘獎勵’命令,游戲開發(fā)者可以允許虛擬玩家210接收大于用于殺死人物260的正常點數(shù)。當其他事件發(fā)生時,也可以給獎勵點。
‘聲音’命令使得可以在幀中播放聲音。可以在包含‘聲音’命令的幀中指定包含聲音的文件的位置和名稱。循環(huán)值可以和‘聲音’命令相關(guān)聯(lián)以使得聲音可以重復(fù)指定的次數(shù)??梢允褂谩曇敉V埂钤诼曇粽MV怪巴V乖撀曇?。
使用‘射擊’命令來給予一個.act 150對當前正在播放的另一.act 150造成損傷的能力。作為例子,‘射擊’命令可以允許物體爆炸以殺死人物260。
‘說’命令允許.act 150向另一.act 150發(fā)送消息?!牎罱o予一個.act 150收聽來自其他.act 150的消息的能力。
對于本領(lǐng)域技術(shù)人員來說,很明顯,上述命令及其變形可以向360-3D游戲開發(fā)者提供描述復(fù)雜游戲情節(jié)的能力。本領(lǐng)域技術(shù)人員也將認識到可以對這些命令使用其他名稱,可以使用其他的命令,可以使用這些命令的較小的組,可以使用各種所描述的功能的組合,或可以使用其他功能,而不會脫離本公開的精神。
為了減小每個幀300的尺寸和產(chǎn)生的.act文件150的尺寸,.act 150的每一幀包括大約1個字節(jié)長度的指示符,其指定在該幀中將執(zhí)行哪個命令。例如,指示符‘1’可以指定‘.pic’命令,指示符‘2’可以指定‘啟動’命令,指示符‘3’可以指定‘轉(zhuǎn)向’命令,等等。在其他實施例中,可以使用其他指示符。指示符也指示將與命令相關(guān)的文件的類型。也就是說,應(yīng)該理解,如果在幀中指示了‘.pic’命令,則在該幀中的文件指針或文件名指示將顯示的.pic文件140。如果在幀中指示了‘啟動’命令,則在該幀中的文件指針或文件名指示將啟動的.act文件150,等等。應(yīng)當理解已采用諸如這些的多個方面在存儲、存儲器要求和其他方面減小了360-3D游戲的大小以便使得游戲能夠在具有標準硬件能力的移動裝置180上運行??梢钥闯隹梢詫⒚恳粠J為是在.act數(shù)據(jù)文件中的一個記錄,其中在記錄中的每一字段包括代表數(shù)據(jù)。例如,第一字段可以用在與所指示的命令相關(guān)的字段中的數(shù)據(jù)來與上述命令相關(guān)聯(lián)。
除了命令之外,在幀中還可以提供其他指令。在一個實施例中,附加指令包括‘絕對x(absolute x)’、‘絕對y(absolute y)’、‘Δx(delta x)’、‘Δy(delta y)’、‘比例(scale)’、‘層(layer)’、‘威力(power)’和‘多個(multi)’?!^對x’和‘絕對y’分別指定在出現(xiàn)對象(例如由該幀所指向或引用的.pic文件定義的圖像)的水平和垂直位置的像素數(shù)目?!^對x’和‘絕對y’指令一般僅僅出現(xiàn)在.act 150的第一幀中以指定對象的開始位置。在運行由.act 150定義的活動期間,一般不返回在其中出現(xiàn)‘絕對x’和‘絕對y’指令的幀,這是因為返回到該幀將導(dǎo)致人物260從其當前位置移到其開始位置。這可能造成可能不希望的大的、突然的跳躍。
‘Δx’和‘Δy’指令分別指定人物260相對于該人物在前一幀中的位置而要水平和垂直移動的像素數(shù)目。在上述例子中,其中十幀的奔跑運動創(chuàng)建人物260奔跑的景象,人物260將看上去正在原地奔跑,除非指定穿過該場景的移動。為了創(chuàng)建移動的景象,在每一幀中的‘Δx’指令可以指定人物260將相對于背景水平位移的距離。
‘比例’指令指示人物的相對尺寸,并且一般被指定為標準尺寸的百分比。逐幀地增大人物260的比例可以創(chuàng)建人物260正在向虛擬玩家210移動的景象,而逐幀地減小人物260的比例可以創(chuàng)建人物260正在離開虛擬玩家210的景象。
‘層’指令指定如在圖4中所描述的對象出現(xiàn)的層。當通過改變比例,人物260看起來向前或向后移動時,游戲開發(fā)者一般將指定改變?nèi)宋锏膶印?br> ‘威力’指令指定人物的武器所擁有的威力值,以及因此,當人物260擊中虛擬玩家210時,對虛擬玩家210所造成的損傷量。在人物260沒有射擊時,游戲開發(fā)者可以將人物的武器的威力設(shè)置為零,而在人物260射擊時,將威力改變成某一其他值。這可以通過使用兩個描述人物260的不同.act文件150來實現(xiàn),所述兩個文件中的一個示出人物260射擊,而另一個示出人物260未射擊。當在兩個.act文件150之間交替如何描述人物260的控制時,可以調(diào)用‘威力’指令在零和某一正值之間交替威力。雖然上面參照面向射擊的游戲描述了‘威力’指令,但是應(yīng)當理解‘威力’指令可以推廣到其他游戲情節(jié)中。
可以在每一幀中選擇或不選擇的‘多個’指令選項允許基本上同時讀取和運行兩個或多個幀。如上所述,一般在一個時間分段期間,或每67毫秒,讀取每一.act文件150的一個幀。當在幀中選擇了‘多個’選項時,在單個分段期間,讀取和處理在同一.act文件150中的該幀和下一幀。這提供了大量描述能力并且可以被用于例如當執(zhí)行‘轉(zhuǎn)向’時,在一幀期間通過無閃爍地顯示動畫來保證運動圖像按照要求運轉(zhuǎn)。
例如,在上述奔跑運動的例子中,描述了.act 150的十四個幀可以包含導(dǎo)致將要顯示的奔跑運動的不同姿勢的‘.pic’命令,而第十五幀可以包含返回第一奔跑幀的‘轉(zhuǎn)向’命令。如果在任何一幀中都沒有選擇‘多個’選項,則在不同的時間分段中將讀取所述幀的每一個。在第十五幀中運行‘轉(zhuǎn)向’命令期間,在讀取該幀時并且在第一奔跑幀被再次讀取和由引擎190處理以用于顯示之前,將不顯示任何圖像,并且將在屏幕200上出現(xiàn)67毫秒的閃爍。
通過在第十四幀中選擇‘多個’指令選項可以防止該閃爍?!鄠€’指令將指示在同一時間分段期間,將讀取和處理第十四幀和第十五幀。也就是說,在同一時間分段中處理使得將顯示第十四奔跑姿勢的‘.pic’命令和使得.act150返回第一奔跑幀的‘轉(zhuǎn)向’命令。然后可以在下一時間分段或67毫秒時間段中運行第一奔跑幀。
單個‘多個’指令使得將在同一時間分段中運行當前幀和僅僅是緊隨的幀。但是,可以在如期望的那樣多的連續(xù)幀中選擇‘多個’指令選項,以便使得在同一時間分段中運行如期望的那樣多的幀。例如,如果在顯示人物260的圖像時,期望同時返回到在當前.act150a中的循環(huán)的開始、啟動另一.act150b、并且改變殺死人物260所需要的損傷值,則可以使用多個具有‘多個’指令的連續(xù)幀。第一幀可以具有‘.pic’命令和‘多個’指令,第二幀可以具有‘轉(zhuǎn)向’命令和‘多個’指令,第三幀可以具有‘啟動’命令和‘多個’指令,而第四幀可以具有‘損傷’命令。在第一幀中的‘多個’指令使得在與第一幀相同的時間分段中運行第二幀,在第二幀中的‘多個’指令使得在與第二幀相同的時間分段中運行第三幀,而在第三幀中的‘多個’指令使得在與第三幀相同的時間分段中運行第四幀。因此,將在同一時間分段中運行所有四個幀。本領(lǐng)域技術(shù)人員將能夠確定可以使用‘多個’選項來控制360-3D游戲的流程的其他方式。
可以有利地利用可被稱為幀0的.act150的第一幀來指定設(shè)置,該設(shè)置直到它們在.act150的隨后幀中被改變?yōu)橹苟紝⒈3钟行А@?,可以在?中放置‘損傷’命令以設(shè)置殺死人物260所需要的損傷量。幀0也可以包含絕對值x、絕對值y、層和比例的指令以建立人物260的初始位置和尺寸。如上所述,在已在幀0中定義絕對值x和/或絕對值y位置的情況下,由于轉(zhuǎn)向幀0可能導(dǎo)致人物260突然從一個位置跳轉(zhuǎn)到另一位置,所以不能將幀0列為‘轉(zhuǎn)向’命令的目標。
可以通過創(chuàng)作工具130容易地指定組成.act150的一幀中的32個字節(jié)的數(shù)據(jù)。圖6圖解了計算機實現(xiàn)的創(chuàng)作工具130的一個實施例。通常,創(chuàng)作工具130可操作用于有效地創(chuàng)建360-3D游戲。雖然下面描述了創(chuàng)作工具130的一個具體實施例,但意圖是本公開應(yīng)用于用于構(gòu)建在引擎190上運行的360-3D游戲的其他可選的GUI配置和控制。
創(chuàng)作工具130包括圖形用戶界面(GUI)500,用于指定將插入到幀中的命令和其他指令;文件選擇框900,用于標識將由幀檢索的文件;以及仿真器920,用于觀看在GUI 500和文件選擇框900中進行的選擇的效果。仿真器920模仿在玩360-3D游戲時將在移動裝置180上出現(xiàn)的顯示屏200。
GUI 500包含按鈕、文本框、復(fù)選框和允許360-3D游戲開發(fā)者指定將在幀中包含的命令和其他指令的其他數(shù)據(jù)輸入機構(gòu)。輸入GUI 500的一個實例的數(shù)據(jù)被保存作為.act150的一個幀。開發(fā)者可以通過對于每一幀將數(shù)據(jù)輸入到GUI 500的不同實例來逐幀構(gòu)建.act150。
為了開始創(chuàng)建新.act150,開發(fā)者一般將點擊命名為‘新’的按鈕600。開發(fā)者然后可以輸入用于.act150的第一幀(一般為幀0)的數(shù)據(jù),可以在命名為‘幀’的文本框610中指定輸入到GUI 500的信息所施加到的幀。在輸入幀的數(shù)據(jù)之后,開發(fā)者可以更改在幀文本框610中的幀編號并且開始輸入下一幀的數(shù)據(jù)。該過程可以繼續(xù)到已創(chuàng)建了針對當前.act150的所有幀。開發(fā)者然后可以點擊‘保存’按鈕890以保存.act150。
命名為‘類型’的下拉框620用于指定將在幀中運行的命令。在一個實施例中,命令是如上所述的‘.pic’、‘啟動’、‘轉(zhuǎn)向’、‘如果.act轉(zhuǎn)到自己’、‘損傷’、‘刪除’、‘刪除自己’、‘重新載入’和‘獎勵’,而在其他實施例中可以使用其他命令。在本實施例中,僅將一個命令輸入到每一幀中。下拉框620列出了可以應(yīng)用于幀的所有可能的命令,并且開發(fā)者可以利用鼠標點擊列表中的項來選擇期望的命令。
在GUI 500上出現(xiàn)的數(shù)據(jù)輸入機構(gòu)可以根據(jù)在命令下拉框620中選擇的命令來改變,這使得GUI 500是上下文有關(guān)的GUI。在圖6的實施例中,已選擇‘損傷’命令,并且這使得出現(xiàn)命名為‘損傷(Damage)’的文本框630。損傷文本框630允許開發(fā)者指定將應(yīng)用于當前幀的損傷。如果在命令下拉框620中已選擇其他命令,則可出現(xiàn)其他文本框以替代損傷文本框630。例如,如果已選擇‘.pic’命令,則可以出現(xiàn)下述文本框,所述文本框?qū)⒃试S開發(fā)者指定將應(yīng)用于由特定.pic文件140描述的人物260的能力。如果已選擇‘轉(zhuǎn)向’命令,則可以出現(xiàn)下述文本框,所述文本框?qū)⒃试S開發(fā)者指定接著將讀取和運行的幀的編號。
命名為‘動作’的文本框640允許開發(fā)者指定當前幀將使得其開始運行的任何.acts 150。在圖6的實施例中,已在命令下拉框620中選擇‘損傷’命令,因此,在動作文本框640中列出的.act 150指定在當前人物260達到指定的損傷閾值時將開始運行的.act 150。例如,動作文本框640可以列出描述人物260垂死的.act 150。如果已在命令下拉框620中選擇‘啟動’命令或‘轉(zhuǎn)向’命令,則在動作文本框640中列出的.act 150將指定當達到當前.act 150a中的當前幀時將開始運行的.act 150b。
可以手動將數(shù)據(jù)輸入到動作文本框640中??商鎿Q地,可以使用文件選擇框900來選擇.act 150以輸入到動作文本框640中。也就是說,開發(fā)者可以瀏覽文件選擇框900直到找到期望的.act文件150為止。然后可以點擊在文件選擇框900中的選擇按鈕910來自動將所選擇的.act文件150插入到動作文本框640中。
命名為‘路徑’的文本框650指定可以在其下找到在動作文本框640中所列出的.act文件150的目錄路徑??梢允謩拥貙?shù)據(jù)輸入到路徑文本框650中,或可以根據(jù)由開發(fā)者在文件選擇框900中選擇的.act文件150的位置自動輸入路徑數(shù)據(jù)。
動作文本框640和路徑文本框650可以僅僅當在命令下拉框620中選擇了諸如‘損傷’命令之類的特定命令時才出現(xiàn)。通過將GUI 500描述成上下文有關(guān)的GUI來說明該行為。當選擇了其他命令時,在圖6中動作文本框640和路徑文本框650所處的位置中可出現(xiàn)其他文本框。例如,如果在命令下拉框620中選擇了‘.pic’命令,則在屬于當前幀將檢索的.pic文件140的動作文本框640和路徑文本框650的位置可以出現(xiàn)文本框。
命名為‘Abs x’的文本框660和命名為‘Abs y’的文本框670允許開發(fā)者指定人物260將在屏幕200上出現(xiàn)的絕對水平和絕對垂直像素位置,其可以相對于360度背景景觀圖像的坐標。可以手動地輸入絕對x和絕對y位置,或可替換地,可以使用文件選擇框900和仿真器920來設(shè)置絕對x和絕對y位置。例如,開發(fā)者可以瀏覽文件選擇框900直到找到期望的.pic文件140。當開發(fā)者選擇.pic文件140時,在仿真器920中出現(xiàn)在.pic文件140中的人物260的圖像。在Abs x文本框660和Abs y文本框670中出現(xiàn)圖像的絕對x和絕對y位置。開發(fā)者可以在仿真器920中移動圖像直到該圖像處于期望的位置為止。然后可以將該位置設(shè)置為人物260將首次出現(xiàn)的位置。
也可以使用Abs x文本框660和Abs y文本框670來設(shè)置非移動物體的位置,諸如在仿真器920中示出的衛(wèi)星反射器925。可以向諸如此的非移動物體給予可由來自虛擬玩家210的射擊破壞的能力。
如上所述,一般將僅在.act 150的幀0中指定圖像的絕對x和y位置。下文中,將使用Δx指令和Δy指令來指定相對于先前幀、圖像應(yīng)在當前幀中移動的像素數(shù)目??梢栽谖谋究?80中指定Δx值,可以在文本框690中指定Δy值。對于.act 150的每一幀,可以手動輸入Δx和Δy值??商鎿Q地,在GUI 500中可用快捷方式,以使得Δx和Δy值的輸入更容易。復(fù)制按鍵700位于Δx文本框680和Δy文本框690附近。當選擇了復(fù)制按鍵700時,在與復(fù)制按鍵700相關(guān)聯(lián)的Δx文本框680或Δy文本框690中的值將針對.act 150的每一幀而自動重復(fù)。以這種方式,可以容易地使得人物260在.act 150的每幀中移動相同的距離。
命名為‘層’的文本框710允許開發(fā)者指定在當前幀中人物260將出現(xiàn)的層。復(fù)制按鍵700與層文本框710相關(guān)聯(lián),以允許開發(fā)者指定將相同層應(yīng)用于.act 150中的每個幀。
開發(fā)者可以使用命名為‘比例’的文本框720來指定在當前幀中人物260將具有的相對尺寸。一般以百分比來給出比例,并且缺省值是100%。另一復(fù)制按鍵700與比例文本框720相關(guān)聯(lián)以允許開發(fā)者指定在.act 150的每幀中人物260將具有相同的尺寸。
在一個實施例中,在層文本框710中的數(shù)據(jù)和在比例文本框720中的數(shù)據(jù)可以自動地彼此相關(guān)以便可以在調(diào)整比例時自動地對層進行合適的調(diào)整,反之亦然。例如,如果開發(fā)者逐幀地將人物260的比例減小恒定的量,以創(chuàng)建向背景移動的景象,則人物260所處的層可以自動地逐幀以成比例的量改變以便該人物移向逐漸靠近背景的層。
命名為‘重復(fù)’的文本框730提供了快捷方式,其使得如在重復(fù)文本框730中所指定的那樣多的時間分段期間重復(fù)讀取和運行當前幀。這為非移動圖像在顯示屏200中臨時出現(xiàn)提供了一種便利方式。例如,如果開發(fā)者需要物體出現(xiàn)大約10秒(大約150個時間分段),則可以在命令下拉框620中放置‘.pic’命令,可以在動作文本框640中放置包括期望物體的圖像的.pic文件140,并且可以在重復(fù)文本框730中放置數(shù)值150。
可以使用命名為‘多個’的復(fù)選框740來指定是否對當前幀應(yīng)用‘多個’指令。如上所述,如果選擇了多個框740,則將在同一時間分段中讀取和運行當前幀和下一幀。
命名為‘定位視圖(Locate View)’的按鈕750將在仿真器920中顯示的視圖返回到當前.act150開始的場景。當開發(fā)者使用創(chuàng)作工具130對在.act150中的多個幀工作時,在仿真器920中顯示的視圖改變以匹配在GUI 500中的當前幀的數(shù)據(jù)。如果開發(fā)者點擊定位視圖按鈕750,則仿真器920返回由.act150指定的初始場景。
命名為‘插入’的按鈕760使得一個新幀插入到GUI 500中當前正對其進行操作的幀之前(或,在另一實施例中為之后)。‘刪除’按鈕770使得當前幀被刪除?!鳒p(Chop)’按鈕780使得在當前.act150中從當前幀開始向前的所有幀被刪除。
命名為‘添加(Append)’的按鈕790提供快捷方式,其用于對于幾個連續(xù)、緊密相關(guān)的幀輸入類似的數(shù)據(jù)到GUI 500中。具體地,添加按鈕790使得在幀文本框610中的幀編號增加1,并且使得在.pic文件140的文件夾中的下一.pic文件140的名稱被插入到動作文本框640中。當遞增一幀至下一幀時,在GUI 500中的所有其他信息保持相同。該特征是有用的,例如在其中使用每一個都包含運動動畫的不同階段的.pic文件140的序列創(chuàng)建動畫運動時。
作為一個例子,可以使用添加按鈕790來使得能夠便利地創(chuàng)建描述人物260奔跑的.act150。描述每一奔跑姿勢的.pic文件140可排列在下述文件夾中其具有包含列在第一的第一奔跑姿勢的第一.pic文件140,包含列在第二的第二奔跑姿勢的第二.pic文件140,等等。開發(fā)者可以將命令下拉框620設(shè)置成‘.pic’命令,將在幀文本框610中的幀編號設(shè)置為1,并且將第一.pic文件140的名稱放置在動作文本框640中。這將導(dǎo)致當前.act150的幀1顯示在第一.pic文件140中的圖像。
如果開發(fā)者隨后點擊添加按鈕790,則在幀文本框610中的幀編號將變?yōu)?,并且在動作文本框640中將放置第二.pic文件140的名稱。在添加按鈕被點擊之前的在GUI 500中的其他信息將保持相同。這將使得當前.act150的幀2顯示在第二.pic文件140中的圖像。開發(fā)者可以繼續(xù)點擊添加按鈕790直到說明了包括奔跑姿勢的所有.pic文件140為止??梢钥闯?,使用添加按鈕790比手動改變幀編號和手動改變.pic文件140的名稱更有效。這可以為沒有編程經(jīng)驗的人提供一種快速和方便的方式來將運動加入到游戲中。
可以使用一組按鈕800、810、820和830在當前.act150的幀之間導(dǎo)航。第一幀按鈕800將GUI 500帶到當前.act150的第一幀。前一幀按鈕810將GUI500帶到當前.act150的前一幀。下一幀按鈕820將GUI 500帶到當前.act150的下一幀。最后一幀按鈕830將GUI 500帶到當前.act150的最后一幀。
命名為‘停止’的按鈕840從仿真器920清除除了背景圖像之外的所有圖像??梢允褂妹麨椤?’850、‘命令2’860、和‘命令3’870的按鈕來設(shè)置在開始新游戲時或在到達游戲的新級別時有效的參數(shù)。在優(yōu)選實施例中,360-3D游戲可以具有三個級別的游戲,其中玩家只有在成功完成第一級別之后才可以移到第二級別,以及只有在成功完成第二級別之后才可以移到第三級別。其他實施例可以具有不同數(shù)量的級別。在一個實施例中,啟動第一、第二和第三級別的.act150可被分別稱為command1.act、command2.act和command3.act。在一個實施例中,command.act僅僅包含啟動在一個級別的游戲開始時發(fā)生的動作的.act文件150組的命令。當選擇命令1按鈕850時,開發(fā)者將被帶到GUI 500以輸入與command1.act有關(guān)的數(shù)據(jù)。選擇命令2按鈕860或命令3按鈕870將把開發(fā)者帶到GUI 500以分別輸入與command2.act或command3.act有關(guān)的數(shù)據(jù)。
可以使用一組按鈕880在仿真器920中指定人物260的位置和尺寸。向左按鈕881和向右按鈕882通過仿真器920水平移動人物260,而向上按鈕883和向下按鈕884通過仿真器920垂直移動人物260。比例按鈕885和886增大或減小人物260的尺寸??梢允褂眠@些按鈕880來替代Abs x文本框660、Absy文本框670和比例文本框720,以快速地設(shè)置人物的初始尺寸和位置。
創(chuàng)作工具130提供了方便地將包括背景全景圖的背景.bmp文件和人物.tga文件導(dǎo)入.pic文件140格式,創(chuàng)建.act文件150以及其他游戲描述操作。創(chuàng)作工具130一般將被安裝在標準的臺式計算機170上,并且可以通過計算機的標準鍵盤和鼠標將數(shù)據(jù)輸入到GUI 500中??商鎿Q地,可以使用自定義鍵盤來輸入數(shù)據(jù)。所述自定義鍵盤可以具有與在GUI 500中的按鈕和其他數(shù)據(jù)輸入機構(gòu)等同或相關(guān)的鍵。在自定義鍵盤上的鍵可以被顏色編碼(colorcoded)以作為對開發(fā)者的記憶輔助。例如,屬于與.pic相關(guān)的數(shù)據(jù)的鍵可以是一個顏色,而屬于與幀相關(guān)的數(shù)據(jù)的鍵可以具有另一顏色?!砑印I可以具有兩種顏色,因為所述添加功能涉及.pic數(shù)據(jù)和幀數(shù)據(jù)兩者。熟悉創(chuàng)作工具的開發(fā)者可能會發(fā)現(xiàn),這樣的自定義鍵盤比使用鼠標指向和點擊在GUI 500中的控制鍵要快。
由于創(chuàng)作工具130一般安裝在計算機170上,所以仿真器920將一般出現(xiàn)在計算機170的視頻監(jiān)視器上。由計算機使用的視頻格式一般和由諸如移動電話之類的移動裝置使用的格式不同。在下面詳細說明的轉(zhuǎn)換過程將在.pic文件140中的圖像轉(zhuǎn)換成計算機170的視頻顯示系統(tǒng)可讀的格式。轉(zhuǎn)換是數(shù)據(jù)在仿真器920中顯示之前的最后步驟,其僅僅涉及對其中以兩種不同視頻顯示模式編碼色彩的方式的改變。這保證了通過創(chuàng)作工具130開發(fā)的360-3D游戲?qū)⑴c其在仿真器920出現(xiàn)基本相同地出現(xiàn)在移動裝置180上。
創(chuàng)作工具130允許具有較少或沒有編碼技能的游戲開發(fā)者創(chuàng)建360-3D游戲。開發(fā)者可以只選擇將在游戲上出現(xiàn)的圖像,并且然后使用創(chuàng)作工具130來創(chuàng)建將由引擎190用來按照需要來操縱圖像的.act文件150??梢酝ㄟ^使用放置在.act文件150的每一幀中的命令和其他指令來創(chuàng)建復(fù)雜的游戲故事情節(jié)。沒有編程知識的單純的繪畫藝術(shù)家能夠在相對短的時間內(nèi)創(chuàng)建360-3D游戲。這可與開發(fā)視頻游戲的傳統(tǒng)方式形成對照,在所述傳統(tǒng)方式中,可能雇用編碼員來進行編程工作,并且可能雇用繪畫藝術(shù)家來做藝術(shù)工作。以傳統(tǒng)方式傳間視頻游戲會花費相對長的時間,并且會花費大量的金錢。
創(chuàng)作工具130支持對360-3D游戲的快速和方便的測試和改進。在一個典型的涉及開發(fā)編程語言指令形式的計算機軟件的游戲開發(fā)環(huán)境中,在測試游戲的修改之前,可能需要編譯和鏈接游戲的新版本并且將可執(zhí)行圖像傳送到運行平臺。與之相對,使用創(chuàng)作工具130的仿真功能,可以立即測試360-3D游戲的修改。而且,可以使用創(chuàng)作工具130完整地測試360-3D游戲,并且不需要在目標移動平臺或移動裝置上測試。
當已創(chuàng)建了360-3D游戲所需的所有.act文件150時,可以將用于游戲的.pic文件140和.act文件150放置到容器160中,并且該容器160可被載入到移動裝置180中。安裝在移動裝置180上的運行時引擎190可讀取載容器160中的文件,并且運行在.act文件150中的命令和其他指令。為了更快、更有效地運行,運行時引擎190可被嵌入到裝置180的操作系統(tǒng)中。也就是說,在優(yōu)選實施例中,引擎190是對操作系統(tǒng)的擴展,而不是與操作系統(tǒng)獨立的外部應(yīng)用程序。在其他實施例中,引擎190可以位于其他位置。
通過操作系統(tǒng)的定時機制在某種程度上控制或協(xié)調(diào)運行時引擎190的操作。如在圖5中所述,在同一時間單位分段,運行時引擎190可以讀取和運行在多個.act文件150中的幀,這可被稱為“同時”運行多個幀。可以預(yù)期可針對將嵌入引擎190的每一操作系統(tǒng)創(chuàng)建引擎190的稍微不同的版本,但是這些不同版本可以被認為是基本等同的。
引擎190是運行360-3D游戲所需的唯一可執(zhí)行文件,雖然在某些實施例中,引擎190可包括多個文件或組件。一旦引擎190已被嵌入到移動裝置180的操作系統(tǒng)中,僅通過載入不同的容器160就可以在裝置180上安裝不同的游戲,所述容器160僅包含數(shù)據(jù)文件,而不包含可執(zhí)行文件或代碼。在為移動裝置180開發(fā)多個應(yīng)用時,使用單個可執(zhí)行文件以運行多個不同游戲可以簡化一般跟隨在后的認證過程。移動裝置180的制造商要求測試和/或認證將安裝在他們的移動裝置180上的游戲和其他應(yīng)用,以確保應(yīng)用不隱匿病毒并且不會導(dǎo)致死機或其他問題。對于以前存在的、其中每一游戲包含可執(zhí)行代碼的游戲,該測試可能需要針對每個游戲和針對將安裝該游戲的每個平臺來進行。對于360-3D游戲,僅僅需要認證和/或測試引擎190。一旦針對特定平臺認證了引擎190,就可以將容器160載入到該平臺上,而沒有病毒、死機或其他問題的威脅,這是因為如上所述,容器160僅包含數(shù)據(jù)。
將360-3D游戲分成用于所有游戲和所有移動裝置180的單個可執(zhí)行引擎190以及保存使得每個游戲為唯一的數(shù)據(jù)文件的多個容器160,可以簡化開發(fā)者的游戲創(chuàng)建過程。開發(fā)者不需要對于不同平臺寫同一游戲的不同版本。可以由其上已安裝運行時引擎190的任何裝置180來讀取通過創(chuàng)作工具130創(chuàng)建的任何容器160。
運行時引擎190是相對小的文件(通常小于大約100千字節(jié)),這使得對于操作系統(tǒng),僅僅要求兩個圖形功能。首先,引擎190向操作系統(tǒng)詢問保存在移動裝置180的顯示屏幕200上的每一像素的數(shù)據(jù)的存儲塊的位置。屏幕200一般使用存儲緩沖器,其對于每一像素包含兩個字節(jié)的數(shù)據(jù)。當引擎190了解了該緩沖器的位置時,它將合適的像素數(shù)據(jù)放置在合適的字節(jié)中,并且然后通知操作系統(tǒng)將該數(shù)據(jù)發(fā)送到屏幕200。
除了讀取和運行.act文件150以及執(zhí)行圖形功能之外,運行時引擎190執(zhí)行幾個其他功能。它接收和處理來自在移動裝置180上的小鍵盤或來自其他輸入源的輸入,并且它按照層來對圖像排序,并且以合適的前后順序顯示它們。引擎190命名和記住當前運行的不同人物260的不同版本,并且登記和記住虛擬玩家210對人物260的、以及人物260對虛擬玩家210的成功的射擊。引擎190顯示得分290,操作雷達280,以及接收和處理來自在多人游戲中的同伴的輸入(后面將更詳細說明多人游戲)。
引擎190以比以前登記擊中的方法提供更高的精確度的方式來登記從虛擬玩家210對人物260的成功射擊。如圖7中所示,一般將在移動裝置180的屏幕200上的目標410再現(xiàn)為矩形方框420的部分。沒有被目標410占據(jù)的方框(box)420的部分不可見,并使得背景可見。以前,如果方框420的任何部分被子彈擊中,則將在目標410上登記擊中,而不管目標410是否占據(jù)方框的被擊中的部分。例如,擊中位置X430的射擊將被登記為對目標410的擊中,這是因為它落在方框420中,即使它沒有落在目標410(諸如人物260)中也是如此。而且,如果在屏幕200上呈現(xiàn)多個目標410,則控制游戲的代碼可能需要順序詢問所有的目標410以確定哪一個占據(jù)了被擊中的方框420,這是沒有效率和費時的。
圖8圖解了在360-3D游戲中登記擊中的方法的一個例子。在圖8a中,三個目標占據(jù)諸如移動裝置180之類的視頻顯示屏幕440,所述視頻顯示屏幕具有八個像素的長度445和八個像素的寬度445。方形目標占據(jù)像素(1,1)、(1,2)、(2,1)和(2,2)。三角形目標占據(jù)像素(4,3)、(4,4)、(4,5)和(5,4)。X形目標占據(jù)像素(6,6)、(6,8)、(7,7)、(8,6)和(8,8)。在屏幕440上的其他像素445可以被認為是背景圖像的部分。
在一個實施例中,存儲緩沖器包含與在實際屏幕440中的每一像素445有關(guān)的數(shù)據(jù)。存儲緩沖器可被看作如在圖8(b)中所示的輪廓屏幕450,其中在輪廓屏幕450中的每一數(shù)據(jù)位置455對應(yīng)于在實際屏幕440中的像素445。也就是說,由于實際屏幕440具有8行和8列的像素445,所以輪廓屏幕450可被認為是具有8行和8列的數(shù)據(jù)位置455。
無論何時目標占據(jù)在實際屏幕440中的一組像素445,關(guān)于目標的身份的信息存儲在輪廓屏幕450中的相應(yīng)數(shù)據(jù)位置455中。在一個實施例中,目標可以是活動,例如,都是由common.act文件150啟動的奔跑士兵的可能的多個實例的一個實例。例如,如果方形目標被標識為目標編號‘1’,則‘1’可被存儲在輪廓屏幕450的數(shù)據(jù)位置(1,1)、(1,2)、(2,1)和(2,2)中。如果三角形目標被標識為目標編號‘2’,則‘2’可被存儲在輪廓屏幕450的數(shù)據(jù)位置(4,3)、(4,4)、(4,5)和(5,4)中。如果X形目標被標識為目標編號‘3’,則‘3’可被存儲在輪廓屏幕450的數(shù)據(jù)位置(6,6)、(6,8)、(7,7)、(8,6)和(8,8)中。可將‘0’放置在輪廓屏幕450中的所有其他數(shù)據(jù)位置455中以指示實際屏幕440中的背景圖像的存在。當目標在實際屏幕440上移動時,輪廓屏幕450以相應(yīng)方式變化。僅處于實際屏幕440中的目標可以作為輪廓屏幕450的部分。
如果向?qū)嶋H屏幕440開火,運行時引擎190記錄在開火的時刻十字準線270所指向的實際屏幕440中的像素445。引擎190然后檢查對應(yīng)于被擊中的像素445的數(shù)據(jù)位置455中的數(shù)據(jù),以確定哪一個目標當前占據(jù)該像素445(如果有的話)。如果在對應(yīng)于在實際屏幕440中被擊中的像素445的、在輪廓屏幕450中的數(shù)據(jù)位置455中呈現(xiàn)‘0’(背景),則該射擊被記錄為未擊中或僅導(dǎo)致除了減少貯備之外無變化。如果在該數(shù)據(jù)位置455中呈現(xiàn)非零數(shù)值,則引擎190將該射擊記錄為擊中由在數(shù)據(jù)位置455中的數(shù)據(jù)所標識的目標。
繼續(xù)上面的例子,如果在虛擬玩家210開火的時刻,十字準線270指在實際屏幕440中的像素(4,4)上,則將記錄在像素(4,4)上的擊中。引擎190將讀取在輪廓屏幕450中的數(shù)據(jù)位置(4,4)上的數(shù)據(jù),找到‘2’,并且將該射擊登記為在目標編號‘2’(三角形目標)上的擊中。例如,如果在實際屏幕440中的像素(5,5)被擊中,則該射擊被登記為未擊中,這是因為非零數(shù)值沒有占據(jù)對應(yīng)于像素(5,5)的數(shù)據(jù)位置(5,5)。
該登記擊中的方式提供了比先前存在的方法更高的精確度,這是因為通過目標的實際尺寸和形狀而不是目標所占據(jù)的方框的尺寸和形狀來確定擊中。例如,在圖8a中的X形目標可以占據(jù)由像素(6,6)、(6,7)、(6,8)、(7,6)、(7,7)、(7,8)、(8,6)、(8,7)和(8,8)限定的方框。在先前的方法中,由于像素(6,7)、(7,6)、(7,8)或(8,7)在X形目標占據(jù)的方框之內(nèi),所以擊中這些像素的射擊將被登記為擊中。在當前方法中,由于這些像素是背景圖像的部分,所以這樣的射擊將不被登記為擊中。當前登記擊中的方式也可比先前的方法快,這是因為運行時引擎190可以查閱輪廓屏幕450并且?guī)缀躐R上確定被擊中的目標。因此,不需要詢問所有運行的目標來確定是否一個目標占據(jù)了被擊中的像素。而且,通過將在像素中的諸如1、2、3等等的數(shù)字與相關(guān)的動作相關(guān)聯(lián),引擎190可以迅速地將擊中登記到合適的動作?;叵雱幼魇且?90當前運行的.act文件150的一個實例,并且可以從公共的.act文件150啟動幾個不同的動作。
在移動裝置180從其制造商出貨之前,運行時引擎190一般被預(yù)編譯到移動裝置180的操作系統(tǒng)中。移動裝置180的制造商一般將不允許他們的競爭者訪問他們的裝置180的操作系統(tǒng)。為此,創(chuàng)建運行時引擎190的企業(yè)一般能將引擎190僅嵌入到其自己的裝置180的操作系統(tǒng)中,而不是其競爭者的操作系統(tǒng)中。因此,360-3D游戲一般僅僅在由創(chuàng)建運行時引擎190的實體制造的裝置180上以上述方式運行。但是,存在可以在競爭者的裝置180上運行360-3D游戲的其他方式。
在一個實施例中,運行時引擎190的一個版本可以被嵌入到Java運行時環(huán)境中,并且然后該修改的Java版本可以安裝在競爭者的裝置180上。保存360-3D游戲的.pic文件140和.act文件150的容器160然后可以以上述方式載入到裝置180上并且所述容器160可以由基于Java的引擎190讀取。由于在引擎190可以和操作系統(tǒng)通信之前它將不得不通過軟件的幾個層來通信,所以在這種配置下,360-3D游戲的運行可能會較慢。但是,360-3D游戲開發(fā)系統(tǒng)和方法的其他優(yōu)點將仍然是有用的。也就是說,對于各種操作系統(tǒng)和/或裝置180的每一個,具有嵌入的運行時引擎190的修改的Java版本可以被認證一次,并且其后可以將容器160載入到裝置180中而不需要進一步的測試。而且,開發(fā)者可以以上述方式創(chuàng)建360-3D游戲而不管將運行該游戲的引擎190的類型。
在另一個實施例中,可以以類似方式使用由Qualcomm生產(chǎn)的Brew系統(tǒng)。也就是說,可以創(chuàng)建下述的運行時引擎190的版本其可以和Brew通信,以及通過Brew和其上已安裝Brew的裝置180的操作系統(tǒng)通信。再次(again),以這種方式運行的360-3D游戲可能比由直接嵌入到操作系統(tǒng)中的引擎190運行的游戲運行得慢很多,但是,再次,將保持360-3D游戲開發(fā)方法和系統(tǒng)的許多其他優(yōu)點。本領(lǐng)域人員將認識到可以在不具有嵌入在它們的操作系統(tǒng)中的運行時引擎190的移動裝置180上運行360-3D游戲的其他方式。
也可以使用Java、Brew和類似產(chǎn)品來作為分發(fā)360-3D游戲的手段。例如,容器文件160可以被提供在Java包裝(wrapper)中,以便容器160具有與Java兼容的接口。Java包裝的容器160可以被安裝在具有嵌入Java的引擎190的裝置上,并且對于本地的容器160和引擎190,可以如上所述讀取和運行所述Java包裝的容器160。在Java中包裝容器160將允許360-3D游戲通過現(xiàn)有的分發(fā)通道來分發(fā),其中通過所述現(xiàn)有的分發(fā)通道分發(fā)其他的基于Java的游戲,諸如可以通過其下載游戲的網(wǎng)站。對于瀏覽網(wǎng)站的用戶,360-3D游戲?qū)⒖雌饋硎窃诂F(xiàn)有系統(tǒng)上可下載的標準的基于Java的游戲。
如上所述,在屏幕200上顯示的圖像存儲在可被稱為.pic文件140的文件中。在.pic文件140中的圖像是對于在360-3D游戲中的所有人物260和其他對象需要顯示的所有姿勢的預(yù)呈現(xiàn)的圖像。如本領(lǐng)域所公知的,可以使用兩個通常的方法來創(chuàng)建視頻游戲中的高質(zhì)量圖形預(yù)呈現(xiàn)以及多邊形和紋理方法(polygon and textured method)。在多邊形和紋理方法中,目標被描述成由有紋理和著色的表面覆蓋的多邊形的網(wǎng)格(mesh)或框架(framework)。當使得目標在游戲的過程中在視頻屏幕上移動時,算法計算其中多邊形的網(wǎng)格將改變形狀以及然后有紋理的表面在多邊形的網(wǎng)格上伸展以創(chuàng)建期望的運動的景象的方式。該過程稱為對目標圖像的呈現(xiàn),并且通過算法在工作時(on thefly)完成。
利用預(yù)呈現(xiàn),在游戲的過程中目標可能采用的各種可能姿勢的每一圖像在游戲的開發(fā)過程中創(chuàng)建并且存儲。當玩游戲并使得目標移動時,從存儲器檢索合適的圖像并且在合適的的時間在合適的位置顯示,以創(chuàng)建期望的運動的外觀。
可以看出每一方法都有優(yōu)點和缺點。使用多邊形和紋理方法,不需要大量的存儲器,這是因為在工作時創(chuàng)建圖像,而不是存儲在存儲器中。但是,在該方法中使用的算法是計算強化的(computationally intensive),并且需要大量的處理能力來足夠快地執(zhí)行算法以創(chuàng)建逼真的運動。在多邊形和紋理方法中,還需要圖形加速器。利用預(yù)呈現(xiàn),由于僅僅從存儲器檢索圖像而不是在工作過程中產(chǎn)生,所以需要的處理能力不那么大。但是,需要更多的存儲器來存儲大量的用于表示目標可能采用的所有可能姿勢的預(yù)呈現(xiàn)圖像。
在任一情況下,對于要在移動裝置上運行的、先前存在的具有高質(zhì)量圖形的游戲,所述裝置一般將需要是專門設(shè)計的、具有高速處理器、圖形加速器和/或大存儲容量的游戲裝置。這樣的裝置對于主要對裝置的通話或管理器功能而不是游戲特征感興趣的消費者來說可能是驚人的昂貴。
在當前系統(tǒng)和方法的一個實施例中,預(yù)呈現(xiàn)方法的改進版本被用在僅僅預(yù)呈現(xiàn)描述有限組期望運動所需的圖像。游戲開發(fā)者可選擇人物260將在游戲期間采用的少量運動,并且然后僅僅預(yù)呈現(xiàn)逼真描述這些運動所需的圖像。由于運行時引擎190將圖像的比例處理至不同的尺寸,僅僅需要預(yù)呈現(xiàn)一種尺寸的圖像??梢酝ㄟ^標準的數(shù)據(jù)壓縮例程來壓縮所選擇的圖像以減小它們的尺寸。對有限數(shù)量的圖像的預(yù)呈現(xiàn)和壓縮創(chuàng)建足夠小以適合許多移動裝置180并且還能夠提供高質(zhì)量圖形的圖形文件。消除了多邊形和紋理方法一般需要的處理能力和圖像加速器以及預(yù)呈現(xiàn)大量圖像一般需要的大存儲容量。
在移動裝置180上的顯示屏200的小尺寸使得該預(yù)呈現(xiàn)技術(shù)是行得通的。由于在移動裝置180的顯示屏200上出現(xiàn)的圖像在所使用的像素的數(shù)量方面較少,所以需要相對少量的存儲器來保存高質(zhì)量壓縮圖像。足夠數(shù)量的這些小的高質(zhì)量圖像可容易地適合在許多標準移動裝置180的存儲容量之內(nèi)。在諸如通常計算機監(jiān)視器之類的較大屏幕上以較大尺寸顯示的類似質(zhì)量的圖像將消耗大量的存儲容量。存儲大量的這樣的較高質(zhì)量的圖像將要求更多存儲容量,但是現(xiàn)在的臺式計算機趨向于具有充足的存儲容量。如下所述,可以利用可以在計算機屏幕上以和移動裝置180的顯示屏200大致相同的尺寸出現(xiàn)的仿真器,在計算機上運行360-3D游戲。
創(chuàng)建.pic文件140的過程一般以下述步驟開始游戲開發(fā)者使用標準圖形操縱程序110(例如True Space、Maya、LightWave、或3DS Studio)來創(chuàng)建、導(dǎo)入和/或編輯合適的一組圖像。開發(fā)者然后可以將所述圖像存儲為一組.tga格式的圖形文件120,例如,每個.tga文件一個圖像。使用.tga格式提供了高質(zhì)量圖像,這是因為.tga文件支持透明度,即允許通過前景圖像的透明部分來顯示背景圖像的屬性。.tga文件也支持反混疊,即允許目標的邊緣平滑地呈現(xiàn)的屬性。雖然這些屬性提供了逼真的圖像,但是.tga格式的缺點是.tga文件可能十分大。例如,單個圖像可能消耗多達七兆字節(jié)的存儲器。
在一個實施例中,在.bmp文件中定義背景全景圖。背景.bmp文件不包含透明信息,這是因為按照定義,背景不是透明的,也就是說,在背景之后不能看到任何東西。背景全景圖包含在末端相連的連續(xù)區(qū)域,以提供360°的視野。在一個實施例中,背景全景圖可以包括水平范圍的十二個顯示屏幕。在一個實施例中,在背景全景圖的第一端上的第一屏幕的顯示被復(fù)制作為在背景全景圖的第二端上的最后屏幕的顯示,以使得對背景中的一個點的掃描更容易。例如,背景的任何一個屏幕的位置可以被標識為其最左端、最上端的像素的x和y坐標。由于圖像環(huán)繞分界點,通過從.bmp文件的鄰近部分完整讀取比從.bmp文件的末端讀取第一部分并且在從.bmp文件的開始處讀取的第二部分上接合可以更容易地顯示在屏面和全景圖的開始點重疊的位置開始的屏面。本領(lǐng)域技術(shù)人員將理解該問題和利用該常規(guī)以解決該問題。
以幾種方式來縮小在360-3D游戲中使用的圖形文件的尺寸。例如,使用稱為游程長度編碼的壓縮算法以將.tga文件轉(zhuǎn)換成.pic文件140。游程長度編碼處理通過指定圖像中透明的連續(xù)像素的數(shù)目而不是每個單獨透明像素來縮小文件尺寸。由于在.tga文件中的典型圖像的大部分是透明的,所以可以通過使用該方法而不是指定在圖像中的每個單獨像素的透明性或非透明性來顯著縮小文件尺寸。通過對預(yù)呈現(xiàn)圖像的游程長度編碼可以在.tga文件到.pic文件140的轉(zhuǎn)換中獲得10∶1的壓縮率。作為將.tga圖形文件120導(dǎo)入到創(chuàng)作工具130中的部分,發(fā)生通過游程長度編碼從.tga文件到.pic文件140的轉(zhuǎn)換。在利用圖形程序110來產(chǎn)生期望的.tga文件120之后,游戲開發(fā)者可以通過選擇在創(chuàng)作工具130中的按鈕、菜單項、或類似機構(gòu)來啟動導(dǎo)入和轉(zhuǎn)換處理。
而且,在.tga文件120中的每一像素的色彩一般以24位的色彩來編碼,并且在總共32位中,8位用于透明性。8位用于紅色調(diào)(shade),8位用于綠色調(diào),8位用于藍色調(diào),并且8位用于表示透明度。.tga文件120被預(yù)呈現(xiàn)和轉(zhuǎn)換成16位色彩格式的專門的.pic文件140,這是所需要的全部,因為大多數(shù)移動裝置僅具有16位彩色顯示。在16位.pic文件140數(shù)據(jù)格式中,5位用于紅色調(diào),6位用于綠色調(diào),5位用于藍色調(diào),由此每像素用于編碼彩色信息的位數(shù)減少了8位。已知人眼對于可見光譜的綠色區(qū)域中的色差相對更敏感。
通過從8R-8G-8B數(shù)據(jù)中截去低有效位來獲得從8位紅色、8位綠色、8位藍色格式(8R-8G-8B)到5位紅色、6位綠色、5位藍色格式(5R-6G-5B)的轉(zhuǎn)換。也就是說,對于每個像素,刪去紅色數(shù)據(jù)的三個最低有效位、綠色數(shù)據(jù)的二個最低有效位和藍色數(shù)據(jù)的三個最低有效位。通過游程長度編碼處理在.pic圖像中編碼.tga圖像中的完全透明的部分。利用8位的透明性信息來維持傾斜(feathered edge)薄邊或其他透明信息。
.pic文件140包括可以是三種不同類型的數(shù)據(jù)的分組。分組標識符將每一分組標識為具有這三種不同類型之一的圖像數(shù)據(jù)。包括圖像的完全透明部分的第一類型被編碼出來并且具有零字節(jié)。包括圖像的主要的不透明顏色部分的第二類型被利用如上所述的16位來轉(zhuǎn)換和編碼。包括圖像的其他部分透明的部分和/或在主要圖像周圍的傾斜薄邊的第三類型利用如上所述的16位和附加的用于透明性的8位(總共24位用于包括透明信息的圖像部分)來轉(zhuǎn)換和編碼。
在.pic文件140將在顯示屏幕200上呈現(xiàn)時,通過游程長度編碼的、從.tga文件120到.pic文件140的壓縮允許高速解壓縮。由于對于多個透明的連續(xù)像素可以跳過呈現(xiàn)處理,所以對游程長度編碼的文件的呈現(xiàn)可能實際上快于對未壓縮文件的呈現(xiàn)。當360-3D游戲啟動時,不立即解壓縮.pic文件140。當運行時引擎190在游戲期間檢索用于顯示的.pic文件140時,它解壓縮圖像并且?guī)缀趿⒓丛谶\行過程中顯示它們。如果對原始圖形文件120使用了.tga之外的文件格式(如.jpg或.gif),則這樣的快速解壓縮將是不可能的。
當在計算機屏幕上在創(chuàng)作工具130的仿真器920中顯示.pic文件140時,發(fā)生另一轉(zhuǎn)換處理。在.pic文件140中的圖像為上述的16位格式,但是諸如基于Windows的計算機之類的典型臺式機以24位格式(其中每一顏色使用8位)顯示圖像。因此,基于Windows的計算機不能直接讀取.pic文件140。為了在計算機170上顯示.pic文件140,進行下述轉(zhuǎn)換其中針對.pic文件140中的每一像素中的每一顏色的最低有效位被填充零,以便對于每一顏色使用8位。也就是說,在像素的數(shù)據(jù)的紅色部分中的5位被向左移三位,在像素的數(shù)據(jù)的綠色部分中的6位被向左移二位,在像素的數(shù)據(jù)的藍色部分中的5位被向左移三位。然后,三個零被添加到5個紅色位的右側(cè),兩個零被添加到6個綠色位的右側(cè),三個零被添加到5個藍色位的右側(cè)。雖然在.pic文件140中的圖像以24位格式顯示在計算機170上,但是圖像僅僅具有16位的質(zhì)量,因此,開發(fā)者將在仿真器920中看到一圖像,該圖像具有與其在移動裝置180上顯示時所具有的相同的景象。
基于Windows的計算機170能夠讀取以這種方式轉(zhuǎn)換的視頻數(shù)據(jù),并且在仿真器920中正確地顯示所述數(shù)據(jù)。在仿真器920中的圖像的質(zhì)量將基本上等同于將出現(xiàn)在移動裝置180的屏幕200上的質(zhì)量,這是因為在每一情況下顯示16位的可用數(shù)據(jù)。
在通常用于在計算機170的視頻監(jiān)視器上顯示圖像的雙緩沖處理期間,可能發(fā)生這種轉(zhuǎn)換。在雙緩沖中,如本領(lǐng)域技術(shù)人員所公知的,當在監(jiān)視器或其他顯示裝置上顯示在第二存儲緩沖器中存儲的圖像的同時,在第一存儲緩沖器中構(gòu)建圖像。當下次更新監(jiān)視器或顯示器時,在第一存儲緩沖器中存儲的圖像隨后顯示在監(jiān)視器或顯示裝置上,同時在第二存儲緩沖器中構(gòu)建下一圖像。以這種方式緩沖圖像防止了當直接在監(jiān)視器上構(gòu)建圖像時可能發(fā)生的閃爍效應(yīng)。
在一個實施例中,在從第一緩沖器向第二緩沖器傳送構(gòu)建的圖像期間,發(fā)生從16位色彩的.pic格式到24位色彩的格式的轉(zhuǎn)換。也就是說,在第一緩沖器中構(gòu)建在屏幕以外(off-screen)的16位彩色圖像,所述圖像被轉(zhuǎn)換成24位的色彩格式,并且所述24位色彩的圖像被傳送到第二緩沖器。這保證了從基于移動裝置的格式到基于計算機的格式的轉(zhuǎn)換在顯示圖像之前的最后的可能時刻發(fā)生。該轉(zhuǎn)換僅對基于.pic的圖像而不是包含圖像的.pic文件140進行。由于不需要將實際的.pic文件140轉(zhuǎn)換成計算機170可讀的格式,所以使用創(chuàng)作工具130的游戲開發(fā)者可以對在玩360-3D游戲期間將由移動裝置180使用的相同.pic文件140進行工作。這保證了在創(chuàng)作工具130上創(chuàng)建的游戲?qū)⑴c它在仿真器920上呈現(xiàn)的幾乎完全一樣地出現(xiàn)在移動裝置180的屏幕200上。
如上所述,除了已描述的游戲動作的類型之外,可以以多人模式來玩360-3D游戲。兩個或多個玩家可以在不同的移動裝置180上同時一起或彼此對抗地玩游戲。裝置180一般將能夠通過WiFi、藍牙或其他無線通信技術(shù)彼此無線地通信。也可以使用有線通信。所有玩家可以看到基本相同的全景圖220,但是,每一玩家能夠看到并與該全景圖220的不同部分交互。從第一玩家的視角看,看起來第二玩家處于與第一玩家相同的位置,但是第二玩家正在獨立地旋轉(zhuǎn)、瞄準和射擊。
在所有類型的裝置180上的所有運行時引擎190基本上相同,并且特定游戲的所有容器160基本上相同。因此,兩個在不同移動裝置180上玩相同游戲的真實玩家當在每一裝置180上的引擎190開始讀取和執(zhí)行在每一裝置180上初始的command.act文件時將看到相同的初始屏幕200。在一個實施例中,在每次讀取幀時,每一玩家的擊鍵被無線地發(fā)送到另一玩家的裝置180,并且由在另一玩家的裝置上的引擎190處理所述擊鍵。兩個引擎190同時開始讀取和執(zhí)行相同的command.act文件并且其后接收來自小鍵盤的相同輸入。因此,兩個引擎190將讀取和執(zhí)行相同的.act文件150。如果產(chǎn)生更多的.act150,則兩個引擎190將同時產(chǎn)生相同的.act 150。以這種方式,由一個引擎190正在讀取和執(zhí)行的所有.act 150將由另一引擎190在相同幀上讀取和執(zhí)行。因此,在兩個裝置180上的兩個游戲逐幀地同步。
兩個游戲的同步意味著在由每一引擎190創(chuàng)建的全景圖220中呈現(xiàn)的整個360°場景對于兩個玩家來說基本上相同。但是,由于每一虛擬玩家210可以在全景圖220中獨立于另一虛擬玩家210旋轉(zhuǎn),因此,每一虛擬玩家210能夠看到全景圖220的不同部分并且每一真實玩家在其裝置180的屏幕200上看到的顯示可以是不同的。
每一真實玩家也可以獨立于另一玩家而上下移動它的十字準線270。由于當虛擬玩家210旋轉(zhuǎn)時十字準線270保持在左右的中央,并且由于每一虛擬玩家210可以獨立于另一玩家旋轉(zhuǎn),所以可以獨立于另一虛擬玩家的十字準線270而設(shè)置一個虛擬玩家的十字準線270的上下和左右位置。因此,每一虛擬玩家210可以射擊與另一虛擬玩家210不同的人物260。在玩家都看著在360度全景圖上的大約相同位置時,每一虛擬玩家的十字準線270將出現(xiàn)在另一玩家的屏幕200上。每一虛擬玩家的十字準線270可以例如通過不同的顏色來彼此區(qū)分。
當?shù)谝徽鎸嵧婕仪脫羲难b置180上的鍵以進行射擊時,該擊鍵將被發(fā)送到第二真實玩家的裝置180。在第二裝置180上的引擎190將以與第一裝置180上的引擎190相同的方式處理該擊鍵。因此,將在兩個裝置180上的兩個引擎190中同時啟動可作為第一玩家的射擊結(jié)果而啟動的任意附加.act150。每一引擎190然后將繼續(xù)與另一引擎190同步地處理附加.act 150。同時在相同幀啟動.act 150、以相同速率讀取和執(zhí)行.act 150、以及使用來自兩個裝置180的擊鍵作為對兩個引擎190的輸入足以保持引擎190同步。在一個優(yōu)選實施例中,對于多人游戲,兩個裝置180不需要交換除了每一玩家按壓的鍵入之外的任何數(shù)據(jù)來維持在兩個引擎190之間的同步。在本實施例中,對于多人游戲,在裝置180之間僅僅需要四個字節(jié)的數(shù)據(jù)來交換擊鍵信息。
當在多人游戲中使用的所有裝置180上的運行時引擎190同步地讀取和執(zhí)行相同的.act150時,由每一引擎190存儲的數(shù)據(jù)中存在一些不同。在每一裝置180上的引擎190可以使用可被稱為‘伙伴模塊(buddy module)’的模塊來記住針對每一玩家的玩家專用數(shù)據(jù)。例如,當玩家殺死人物260時,伙伴模塊登記哪一個玩家得分并且將該分數(shù)加到正確玩家的總分中。該伙伴模塊也可以保證針對每一玩家的正確得分290呈現(xiàn)在顯示屏幕200的合適位置中。而且,伙伴模塊可以記住和正確地顯示在不同玩家的顯示屏200中呈現(xiàn)的不同雷達280。
作為在兩個不同裝置180上的引擎190可以如何執(zhí)行相同的多人游戲的例子,第一玩家可以選擇游戲的多人模式。當其裝置180正與第一玩家的裝置180通信的第二玩家選擇了同一游戲的多人模式時,在兩個玩家的裝置180之一中的同步組件確保在每一裝置180上的引擎190在大致相同的時刻讀取針對該游戲的初始command.act文件的第一幀。其后,由于每一引擎190以相同速率讀取在每一command.act文件中的后續(xù)幀,所以每一引擎190在相同時刻讀取在command.act文件中的相同幀。
當?shù)谝徽鎸嵧婕仪脫羲难b置180上的鍵以進行射擊時,所述擊鍵被發(fā)送到第二真實玩家的裝置180。在第二裝置180上的引擎190將以與在第一裝置180上的引擎190相同的方式處理該擊鍵。例如,如果第一玩家的射擊殺死了第一人物260,則控制第一人物260的第一.act 150a將啟動產(chǎn)生第二人物260的第二.act 150b。由于第一.act 150a正在兩個玩家的裝置180上的相同幀執(zhí)行,并且由于兩個裝置180在大致相同的時刻從兩個裝置180的小鍵盤接收相同的輸入,所以第一玩家的射擊將使得在兩個裝置180上同時開始執(zhí)行第二.act 150b。在兩個裝置180上的引擎190隨后將逐幀地同時讀取和執(zhí)行第二.act 150b。任一真實玩家的附加擊鍵可以使得附加.act 150在兩個裝置180上基本上同時開始執(zhí)行。在整個游戲中,這些附加.act 150和它們啟動的任何進一步的.act 150將在兩個裝置180上啟動并且將被兩個引擎190同步地讀取和執(zhí)行。
伙伴模塊確保殺死了第一人物260歸功給第一玩家。當每一玩家得分時,該伙伴模塊將該分數(shù)加入到恰當?shù)耐婕业目偡种小?br> 如上所述,運行時引擎190一般嵌入在移動裝置180的操作系統(tǒng)中??商鎿Q地,引擎190可以通過諸如Java或Brew之類的軟件的幾層來和裝置的操作系統(tǒng)通信。由于在不同平臺下運行的、安裝在裝置180上的引擎190基本上相同,所以具有不同移動裝置180的玩家可以參與多人游戲。
而且,使用移動裝置180的玩家可能能夠和使用計算機的玩家參與一個多人游戲。如上所述作為創(chuàng)作工具130的一部分的仿真器920一般用于創(chuàng)建360-3D游戲。但是,可以容易地將仿真器920修改成可以在計算機上執(zhí)行360-3D游戲的單機組件。當這樣的修改的仿真器920被安裝在具有與移動裝置180通信所需硬件(例如WiFi接口)的計算機上時,使用計算機的玩家和使用移動裝置180的玩家可以加入多人游戲。
上述基于移動裝置的16位色彩格式的圖像被轉(zhuǎn)換成基于Windows的24位色彩格式的圖像的轉(zhuǎn)換過程將允許計算機和移動裝置180都使用基本上相同的.pic文件140和.act文件150,并且允許基于Windows的計算機和移動裝置180一起加入多人游戲。
在不同類型的裝置180上的顯示屏幕200可能具有不同尺寸。例如,在PDA上的顯示屏一般大于在移動電話上的顯示屏。在一個實施例中,在360-3D游戲中出現(xiàn)的圖像并不與在其上出現(xiàn)它們的顯示屏200的尺寸成比例地進行縮放。也就是說,適合較小顯示屏的場景不被放大以適合較大的顯示屏,并且適合較大顯示屏的場景不被縮小以適合較小顯示屏。將根據(jù)像素以相同尺寸來顯示特定圖像,而不管它是顯示在PDA上還是顯示在移動電話上。為了補償不同顯示屏在尺寸上的差異,在較大顯示屏上能看到在較小顯示屏上看不到的場景的附加部分。
在圖9中圖解了這種情況,其中較小的移動電話尺寸的顯示屏460被示出為疊加在較大的PDA尺寸的顯示屏470上。在移動電話上玩游戲的玩家將僅看到在方框460中出現(xiàn)的場景部分。在PDA上玩同一游戲并且看著同一方向的玩家將看到在方框460中出現(xiàn)的場景部分并且還看到該場景的附加部分。即,使用PDA的玩家還將看到在該場景的上方的上部水平部分480、該場景的下方的下部水平部分485、該場景的左側(cè)的垂直部分490和在該場景的右側(cè)的垂直部分495。這些附加部分與在較小顯示屏460中的場景無縫配合以創(chuàng)建該場景的較大視圖。換句話說,較小顯示屏460可以被看作是較大顯示屏470的中間部分的剪切塊(cutout)。
如果利用PDA的玩家和利用移動電話的玩家正在玩多人游戲并且兩個玩家都使得他們的虛擬玩家210在相同方向上旋轉(zhuǎn),則兩者都將看到較小區(qū)域460中的相同場景。例如,兩個玩家將看到建筑物240和人物260,并且這些圖像在兩個顯示屏上將是相同尺寸的。但是,利用PDA的玩家還將看到在上部水平部分480中的山230以及在下部水平部分485中的樹250。這些圖像對于使用移動電話的玩家是不可見的,這是因為在其顯示屏460上不呈現(xiàn)上部水平部分480和下部水平部分485。
在一些實施例中,上部水平部分480和下部水平部分485僅僅是背景圖像的擴展,并且在這些部分中不發(fā)生任何活動或動作。在其他實施例中,上部水平部分480和下部水平部分485是人物260可以移入和移出并且可以發(fā)生活動的有效區(qū)域。在一些實施例中,上部水平部分480是相同結(jié)構(gòu)區(qū)域(例如天空)的擴展,并且下部水平部分485是相同結(jié)構(gòu)區(qū)域(例如沙灘)的擴展。
在一些實施例中,雷達280和得分290出現(xiàn)在較小的顯示區(qū)域460上,而不管該游戲是在具有較小顯示屏460的裝置180上還是在具有較大顯示屏470的裝置180上運行。在其他實施例中,雷達280和得分290在具有較小顯示屏460的裝置180上出現(xiàn)在較小顯示區(qū)域460中,而在具有較大顯示屏470的裝置180上出現(xiàn)在上部水平部分480和下部水平部分485中。
當使用不同移動裝置180的玩家加入一個多人游戲時,第一玩家可能具有第一裝置180,所述第一裝置180具有大于由第二玩家使用的第二裝置180上的顯示屏幕460的顯示屏幕470。如果允許第一裝置180的整個顯示區(qū)域470保持完全有效,則第一玩家可具有優(yōu)勢。也就是說,第一玩家可能能夠射擊在對于第二玩家將是不可見的上部水平部分480和下部水平部分485中的人物260,并且因而得到第二玩家不能得到的分數(shù)。
為了消除這種差異,可以防止在第一裝置180的屏幕470上的十字準線270進入在第一裝置180的屏幕470的上部水平部分480和下部水平部分485。這些部分對于第一玩家仍將是可見的,并且第一玩家可能能夠觀察正在移入和移出這些部分的人物260,但第一玩家不能射擊在這些部分中的人物260。以這種方式,可以使得兩個玩家可獲得的分數(shù)相同。將不需要防止十字準線270移到左垂直部分490和右垂直部分495中,這是因為通過向左或右旋轉(zhuǎn),這些區(qū)域?qū)τ诘诙婕襾碚f將是可見的。
在移動裝置180的屏幕中出現(xiàn)的雷達280幫助在單人或多人游戲中的真實玩家確定可對虛擬玩家210造成損傷的人物260的位置。圖10圖解了雷達280。雷達280構(gòu)建到引擎190中并且對于每一不同的360-3D游戲基本上相同地運轉(zhuǎn)。雷達280可以采取包含一組等尺寸的部分940的水平條930的形式。條930的長度對應(yīng)于全景圖220的周長,并且在條930中的每一部分940對應(yīng)于在全景圖220中的成比例尺寸的部分。條930的中央對應(yīng)于正好在虛擬玩家210前面的全景圖220的部分。條930的最左端的部分940a和條930的最右端的部分940x可以看作彼此重疊,并且兩者代表在虛擬玩家210之后180°的全景圖的部分。因此,二維條930符號化了在全景圖220中的三維的360°視圖。
在雷達中的部分940可以改變顏色或類似地變成高亮以指示正在射擊虛擬玩家210的人物260的位置。(正在有效射擊的人物260將在下文中稱為敵人,以將這樣的人物260和當前不能對虛擬玩家210造成損傷的人物260區(qū)分開。)例如,接近條930的中央的高亮部分950a可以指示在虛擬玩家210前面的敵人。在條930的最右端的高亮部分950b可以指示在虛擬玩家210右側(cè)、但是在屏幕200的當前可見區(qū)域之外的敵人。當虛擬玩家210在全景圖220內(nèi)旋轉(zhuǎn)時,在條930中的高亮部分950移動以指示虛擬玩家210的位置相對于敵人的位置的變化。
在條930中的高亮部分950可以改變顏色或明暗以指示敵人正對虛擬玩家210造成的損傷的損傷量。在一個實施例中,假定敵人進行的每一射擊都擊中虛擬玩家210。當敵人射擊虛擬人物210時,對虛擬玩家210的損傷累積,并且,如果損傷到達閾值,則虛擬玩家210死亡,并且游戲結(jié)束。例如,由敵人進行的每一射擊可能導(dǎo)致對應(yīng)于敵人位置的高亮部分950變得更暗或更紅。真實玩家可以觀察在雷達280中的高亮部分950的顏色或明暗來了解存在最大威脅的敵人的位置。
暗的高亮部分950例如可以表示一個敵人,該敵人已對虛擬玩家210造成比由亮的高亮部分950表示的敵人大的損傷量。優(yōu)選地,在殺死其他敵人之前可以殺死已造成更大損量失的敵人,這是因為,已造成更大損失的敵人更接近于殺死虛擬玩家210。在一個實施例中,當虛擬玩家210殺死敵人時,表示敵人位置的高亮部分950失去其亮度以表示所殺死的敵人不再造成威脅,并且由該敵人對虛擬玩家210造成的損失量已被復(fù)位到零。因此,可以僅僅基于每個部分來累積損傷。
在一個實施例中,箭頭960或指針可以定位在條930的末端上以向真實玩家提供對虛擬玩家210將轉(zhuǎn)動的方向的指示,以便對付最大的威脅。例如,如果由在虛擬玩家的左側(cè)的敵人造成的損失的總量大于由在虛擬玩家的右側(cè)的敵人造成的損失的總量,則在條930的左側(cè)的箭頭960可變得高亮,開始閃爍,或給出虛擬玩家210應(yīng)當關(guān)注左側(cè)的一些其他指示。
雷達280的功能由運行時引擎190控制。當敵人射擊虛擬玩家210時,每一射擊的威力級別被報告給引擎190并且引擎190以敵人已對虛擬玩家210造成的新的總損傷級別來更新雷達280。該損傷級別反映在雷達280的高亮中。當虛擬玩家210殺死敵人時,引擎190從表示被殺死敵人的位置的、條930的部分940去除高亮。在多人游戲中,在每一玩家的引擎190中的伙伴模塊控制每一玩家的雷達280的外觀。
在上述的當前實施例中,可以被稱為容器160的文件保存在游戲過程中可能使用的所有的.pic文件140和所有的.act文件150。容器160也保存用于指定將在開始新游戲時或到達游戲的新級別時將執(zhí)行的.act文件150的命令文件。圖11圖解了典型的容器160??梢钥吹?act文件150是相對小的文件,這是因為它們僅包含指向.pic文件140的指針和每一個僅消耗存儲器的幾個字節(jié)的其他數(shù)據(jù)單元。由于.act文件150的每一幀使用存儲器的32個字節(jié),所以.act文件150的實際尺寸將依賴于在.act文件150中的幀的數(shù)目??梢灶A(yù)期典型的.act文件150將具有在大約1千字節(jié)以下的尺寸。由360-3D游戲使用的.act文件150的數(shù)目依賴于游戲的復(fù)雜度。
.pic文件140一般需要比.act文件150更多的存儲器,并且.pic文件140的尺寸依賴于在其中包含的圖像的復(fù)雜度。可以預(yù)期游程長度編碼將分配給一般的.pic文件140大約10千字節(jié)的大小。由360-3D游戲使用的.pic文件140的數(shù)目依賴于將在游戲中使用的不同人物260的數(shù)目以及人物260將采取的不同姿勢的數(shù)目。
應(yīng)當注意需要的.pic文件140的數(shù)量不取決于根據(jù)相同.act文件150啟動的不同活動的數(shù)目。例如,從相同的.act文件150啟動的奔跑士兵的5個活動的每一個將從由公共.act文件150所引用的一組相同的.pic文件140來產(chǎn)生。不管根據(jù)單個.act 150啟動多少不同的活動并因而可見到人物260的多少不同版本,僅僅需要一組.pic文件140來描述人物260的特定運動。與之相對,使用上述多邊形和紋理方法,附加的人物260將可能需要分配給每一附加人物260的網(wǎng)格和紋理的附加存儲器。每一.act 150僅僅使用針對描述人物260的.pic文件140的指針并且如所需的那樣多的指針可以同時指向相同的.pic文件140。因此,可以在執(zhí)行類似動作(諸如奔跑和射擊)的游戲中的不同位置上提供多個相同人物260,而不需要消耗附加存儲器或需要附加的存儲容量。還應(yīng)當注意,每一活動獨立地運行,并且例如因為主活動經(jīng)歷諸如被射擊之類的不同事件,每一活動可能展示與根據(jù)相同的.act 150啟動的其他活動不同的行為。
命令文件980也僅消耗最小量的存儲器,這是因為它們僅包含在游戲的每一級別的開始時運行的一組.act文件150。根據(jù)這些考慮,可以看出容器160不消耗在移動裝置180上的大量存儲空間?;叵肴萜?60包含360-3D游戲的完整說明和描述??梢灶A(yù)期典型的容器160將具有在大約兩到三兆字節(jié)范圍中的大小。這允許在沒有為游戲而特別增強的標準移動裝置180上運行360-3D游戲,這是因為,這樣的裝置180一般具有少于5兆字節(jié)的存儲容量。
在一個實施例中,在容器160中的.pic文件140可以順序地排列以使得360-3D游戲的開發(fā)更容易。如上所述,游戲開發(fā)者可以使用在創(chuàng)作工具130中的添加按鈕790來增加幀編號并且同時指定將由下一幀調(diào)用的在當前目錄中的下一.pic文件140。為了添加按鈕790工作正常,.pic文件140必須以正確的順序排列在容器160中。例如,如果將描述奔跑動作,則包括第一奔跑姿勢的.pic文件140應(yīng)當在容器160中的.pic文件140的目錄中列在第一,包含第二奔跑姿勢的.pic文件140應(yīng)當列在第二,等等。
通過使用仿真器920在計算機上的玩360-3D游戲的能力表明了360-3D游戲的各種銷售策略。例如,可以使得360-3D游戲的演示版本可在計算機上自由運行。其可以如在移動電話上那樣在計算機監(jiān)視器上顯示,其中可以在該移動電話的顯示屏上玩該游戲。例如可以以低費用或無費用下載這些演示。在計算機上玩游戲的限制版可以鼓勵游戲玩家購買在移動裝置180上使用的完整版,或購買具有能玩360-3D游戲的引擎190的移動裝置180。
上述系統(tǒng)可以在如本領(lǐng)域技術(shù)人員所公知的任何手持移動電子裝置180上實現(xiàn)。在圖12中圖解了用于實現(xiàn)在此公開的一個或多個實施例的例證性移動手持系統(tǒng)180。移動手持機180包括處理器1210(其可被稱為中央處理單元或CPU),耦接到第一存儲區(qū)域1220、第二存儲區(qū)域1230、諸如小鍵盤的輸入裝置1240、和諸如顯示屏幕200的輸出裝置。
處理器1210可以被實現(xiàn)為一個或多個CPU芯片并且可以執(zhí)行從第一存儲區(qū)域1220或第二存儲區(qū)域1230存取的指令、代碼、計算機程序、或腳本。第一存儲區(qū)域1220可以是諸如閃存的非易失性存儲器。容器160和其他移動手持機180數(shù)據(jù)將一般被安裝在第一存儲區(qū)域1220中。第二存儲區(qū)域1230可以是固件或類似形式的存儲器。運行時引擎190和該裝置的操作系統(tǒng)一般將安裝在第二存儲區(qū)域1230中。
上述的創(chuàng)作工具130可在任何通用計算機上實現(xiàn),該通用計算機具有足夠的用于處理置于其上的必需工作負荷的處理能力、存儲器資源、和網(wǎng)絡(luò)吞吐能力。圖13圖解了一種典型的、通用計算機系統(tǒng),其適于實現(xiàn)在此公開的一個或多個實施例。計算機系統(tǒng)1300包括處理器1332(可被稱為中央處理單元或CPU),其與包括輔助存儲器1338、只讀存儲器(ROM)1336、隨機存取存儲器(RAM)1334的存儲器、輸入/輸出(I/O)裝置1340、和網(wǎng)絡(luò)連接裝置1312通信。
輔助存儲器1338一般包括一個或多個盤驅(qū)動器或磁帶驅(qū)動器,并且用作數(shù)據(jù)的非易失性存儲器,以及如果RAM 1334不是足夠大以保存所有工作數(shù)據(jù),則用作溢出數(shù)據(jù)存儲裝置??梢允褂幂o助存儲器1338來存儲在程序被選擇以用于執(zhí)行時載入到RAM 1334中的程序。ROM 1336用于存儲指令和或許在程序運行期間讀取的數(shù)據(jù)。ROM 1336一般是具有相對于輔助存儲器的大存儲容量的小存儲容量的非易失性存儲器。RAM 1334用于存儲易失性數(shù)據(jù)和或許是存儲指令。對ROM 1336和RAM 1334的存取一般比對輔助存儲器1338的存取要快。
I/O裝置1340可以包括打印機、視頻監(jiān)視器、液晶顯示器(LCD)、觸摸屏顯示器、鍵盤、小鍵盤、開關(guān)、刻度盤、鼠標、跟蹤球、語音識別器、讀卡器、紙帶讀取器、或其他已知輸入裝置。
網(wǎng)絡(luò)連接裝置1312可采取調(diào)制解調(diào)器、調(diào)制解調(diào)器集、以太網(wǎng)卡、通用串行總線(USB)接口卡、串行接口、令牌環(huán)卡、光纖分布式數(shù)據(jù)接口(FDDI)卡、無線局域網(wǎng)(WLAN)卡、諸如碼分多址(CDMA)和/或全球移動通信系統(tǒng)(GSM)無線收發(fā)器卡的無線電收發(fā)器卡和其他已知網(wǎng)絡(luò)裝置的形式。這些網(wǎng)絡(luò)連接裝置1312可以使得處理器1332能夠與因特網(wǎng)或一個或多個內(nèi)部網(wǎng)通信。利用這樣的網(wǎng)絡(luò)連接,可以預(yù)期在執(zhí)行上述方法步驟的過程中,處理器1332可以從網(wǎng)絡(luò)接收信息或可以輸出信息到網(wǎng)絡(luò)。
可以例如以計算機數(shù)據(jù)基帶信號或在載波中包含的信號的形式,從網(wǎng)絡(luò)接收和向網(wǎng)絡(luò)輸出下述信息,該信息可以包括數(shù)據(jù)或?qū)⑹褂美缣幚砥?332來執(zhí)行的指令。由網(wǎng)絡(luò)連接裝置1312產(chǎn)生的基帶信號或包含在載波中的信號可以在電導(dǎo)體中或表面上、在同軸電纜中、在波導(dǎo)中、在例如光纖的光媒體中、或在空氣或自由空間中傳播。按照處理或產(chǎn)生信息、或發(fā)送或接收信息的需要,可以根據(jù)不同順序來排列在基帶信號或在載波中包含的信號中包含的信息??梢愿鶕?jù)本領(lǐng)域技術(shù)人員已知的幾種方法來產(chǎn)生基帶信號、或在載波中包含的信號、或當前使用或以后開發(fā)的其他類型的信號(在此稱為傳輸媒體)。
處理器1332執(zhí)行其從硬盤、軟盤、光盤(這些不同的基于盤的系統(tǒng)都可以被認為是輔助存儲器1338)、ROM 1336、RAM 1334、或網(wǎng)絡(luò)連接裝置1312存取的指令、代碼、計算機程序或腳本。
雖然已在本公開中提供了幾個實施例,但是應(yīng)當理解,所公開的系統(tǒng)和方法在不脫離本公開的精神或范圍的情況下可以以許多其他特定形式來體現(xiàn)。本示例將被認為是描述性的,而不是限制性的,并且不想限于在此給出的細節(jié),而是可以在所附權(quán)利要求及其等價內(nèi)容的完全范圍內(nèi)進行修改。例如,可以在其他系統(tǒng)中組合和集成各種單元或組件,或可以省略或不實現(xiàn)某些特征。
而且,可以在不脫離本公開的范圍的情況下,與其他系統(tǒng)、模塊、技術(shù)或方法組合或集成在各個實施例中分開或單獨描述的技術(shù)、系統(tǒng)、子系統(tǒng)和方法。被示出或描述為彼此直接耦接或通信的其他項可以通過某一接口或裝置來耦接,以至于所述項可能不再被認為是彼此直接耦接,而是還可以彼此電、機械或其他方式地間接耦接和通信。本領(lǐng)域技術(shù)人員可確定修改、替代和更換的其他例子,并且可以在不脫離在此公開的精神和范圍的情況下進行上述的修改、替代和更換。
權(quán)利要求
1.一種用于多個移動手持機上的多人游戲的方法,包括第一用戶經(jīng)由第一移動裝置的小鍵盤輸入多個輸入以玩第一游戲;將所述第一用戶在所述第一移動裝置上的小鍵盤輸入傳送到第二移動裝置;第二用戶經(jīng)由所述第二移動裝置的小鍵盤輸入多個輸入以玩第二游戲,所述第一和第二游戲是在各自的移動裝置上提供的基本上相同的游戲;以及將所述第二用戶在所述第二移動裝置上的小鍵盤輸入傳送到所述第一移動裝置,所述第一游戲使用來自所述第二移動裝置的所述小鍵盤輸入并且所述第二游戲使用來自所述第一移動裝置的所述小鍵盤輸入,以使得能夠在所述第一和第二游戲之間進行多人游戲。
2.如權(quán)利要求1所述的方法,其中實際上在所述第一和第二移動裝置之間傳送的、用于多人游戲的唯一數(shù)據(jù)是在所述第一和第二移動裝置之間傳送的小鍵盤輸入。
3.如權(quán)利要求1所述的方法,其中實際上僅僅在所述第一和第二移動裝置之間傳送的小鍵盤輸入被用于同步用于多人游戲的游戲。
4.如權(quán)利要求1所述的方法,其中在所述第一和第二移動裝置之間的傳送是經(jīng)由無線連接的。
5.如權(quán)利要求1所述的方法,其中在所述第一和第二移動裝置之間的傳送是經(jīng)由有線連接的。
6.如權(quán)利要求1所述的方法,其中所述第一和第二移動裝置是從包括移動電話和個人數(shù)字助理(PDA)的多個裝置中選擇的。
7.如權(quán)利要求1所述的方法,其中被傳送到所述第二移動裝置的、來自所述第一移動裝置的用戶小鍵盤輸入被進一步定義為大約3字節(jié)的數(shù)據(jù),以及其中被傳送到所述第一移動裝置的、來自所述第二移動裝置的用戶小鍵盤輸入被進一步定義為3字節(jié)的數(shù)據(jù)。
8.如權(quán)利要求1所述的方法,其中所述小鍵盤輸入是包括向上鍵、向下鍵、向左鍵、向右鍵和中間鍵的5個鍵輸入之一。
9.一種用于移動手持機的多人游戲,包括游戲組件,可在第一用戶的第一移動手持機上操作以在該第一移動手持機上玩游戲,所述游戲組件提供與所述第一用戶使用所述第一移動手持機進行的動作有關(guān)的第一玩家指示器,并且還提供與第二用戶使用第二移動手持機進行的動作有關(guān)的第二玩家指示器;以及通信組件,可操作用于接收與來自在所述第二移動手持機上玩所述游戲的第二用戶玩游戲的小鍵盤輸入有關(guān)的數(shù)據(jù),其中所述游戲組件可操作用于根據(jù)從所述第二移動手持機接收的小鍵盤輸入來更新在所述第一移動手持機上的所述第二玩家指示器。
10.如權(quán)利要求9所述的多人游戲,其中所述游戲組件進一步可操作用于根據(jù)所述第二玩家指示器的最后已知位置來更新所述第二玩家指示器。
11.如權(quán)利要求9所述的多人游戲,其中所述第一和第二玩家指示器中的至少一個被進一步定義為目標組件、指針組件、十字準線、瞄準指示器和目標刻線之一。
12.如權(quán)利要求11所述的多人游戲,其中游戲進一步被定義為第一人稱射擊者游戲。
13.如權(quán)利要求9所述的多人游戲,其中所述游戲組件進一步可操作用于提供與由使用第三或更多移動手持機的第三或更多用戶進行的動作有關(guān)的第三或更多玩家指示器,以及其中所述通信組件進一步可操作用于接收與由在所述第三或更多移動手持機上玩游戲的所述第三或更多用戶玩游戲的小鍵盤輸入有關(guān)的數(shù)據(jù),其中所述游戲組件可操作用于根據(jù)從所述第三或更多移動手持機接收的小鍵盤輸入來更新在第一移動手持機上的所述第三或更多玩家指示器。
14.如權(quán)利要求9所述的多人游戲,其中從所述第二移動手持機傳送到所述第一移動手持機的小鍵盤輸入被進一步定義為大約3字節(jié)的數(shù)據(jù)。
15.一種用于多人游戲的系統(tǒng),包括在第一計算平臺上的第一游戲;在第二計算平臺上的第二游戲,所述第一和第二游戲基本上是相同的游戲;第一通信組件,可操作用于接收第二用戶的、與在所述第二計算平臺上玩所述第二游戲有關(guān)的游戲輸入;以及第二通信組件,可操作用于接收第一用戶的、與在所述第一計算平臺上玩所述第一游戲有關(guān)的游戲輸入,其中,所述第一游戲可使用來自所述第二計算平臺的、第二用戶的游戲輸入來操作,并且所述第二游戲可使用來自所述第一計算平臺的、第一用戶的游戲輸入來操作,以使得能夠在所述第一和第二游戲之間進行多人游戲。
16.如權(quán)利要求15所述的系統(tǒng),其中所述游戲輸入被進一步定義為是從包括小鍵盤輸入、鍵盤輸入、鼠標輸入和觸摸屏輸入的組中選擇的。
17.如權(quán)利要求15所述的系統(tǒng),其中所述第一和第二計算平臺被進一步定義為移動電話、個人數(shù)字助理、個人計算機、便攜式計算機和電視機頂盒系統(tǒng)之一。
18.如權(quán)利要求15所述的系統(tǒng),其中所述第一游戲可進一步操作用于在所述第一計算平臺上提供與由使用所述第一計算平臺的第一用戶進行的動作有關(guān)的第一玩家指示器,以及進一步提供與由使用所述第二計算平臺的第二用戶進行的動作有關(guān)的第二玩家指示器,所述第一通信組件可進一步操作用于接收與來自由所述第二用戶在所述第二移動平臺上玩游戲的、第二用戶的游戲輸入有關(guān)的數(shù)據(jù),其中所述第一游戲可操作用于根據(jù)從所述第二計算平臺接收的、所述第二用戶的游戲輸入而在所述第一計算平臺上更新所述第二玩家指示器。
19.如權(quán)利要求18所述的系統(tǒng),其中所述第一游戲可進一步操作用于根據(jù)所述第二玩家指示器的最后已知位置來更新所述第二玩家指示器。
20.如權(quán)利要求18所述的系統(tǒng),其中所述第一和第二玩家指示器中的至少一個被進一步定義為目標組件、指針組件、十字準線、瞄準指示器和目標刻線之一。
21.如權(quán)利要求18所述的系統(tǒng),其中第一和第二游戲進一步被定義為第一人稱射擊者游戲。
22.如權(quán)利要求15所述的系統(tǒng),其中所述第一和第二計算平臺被進一步定義為個人計算機和便攜式計算機之一。
23.如權(quán)利要求15所述的系統(tǒng),其中所述第一計算平臺被定義為移動電話、個人數(shù)字助理、移動游戲平臺之一,而所述第二計算平臺被進一步定義為個人計算機和便攜式計算機之一。
24.如權(quán)利要求15所述的系統(tǒng),其中所述第一計算平臺被定義為移動電話和個人數(shù)字助理之一,而所述第二計算平臺被定義為移動電話和個人數(shù)字助理之一,并且其中所述第一和第二用戶的游戲輸入被進一步定義為包括向上鍵、向下鍵、向左鍵、向右鍵和中間鍵的5個鍵輸入之一。
25.如權(quán)利要求15所述的系統(tǒng),其中所述第一和第二游戲被進一步定義為包括3維圖形的第一人稱射擊者游戲。
26.如權(quán)利要求16所述的系統(tǒng),其中實際上在所述第一和第二計算平臺之間的、用于提示多人游戲的唯一通信是向所述第二計算平臺的第一用戶的游戲輸入和向所述第一計算平臺的第二用戶的游戲輸入。
27.如權(quán)利要求26所述的系統(tǒng),其中在所述第一和第二計算平臺之間的、與多人游戲有關(guān)的唯一通信是向所述第二計算平臺的第一用戶的游戲輸入和向所述第一計算平臺的第二用戶的游戲輸入。
全文摘要
提供一種用于在多個移動手持機上的多人游戲的方法。所述方法包括第一用戶經(jīng)由第一移動裝置的小鍵盤輸入多個輸入以玩第一游戲,將所述第一用戶在所述第一移動裝置上的小鍵盤輸入傳送到第二移動裝置,第二用戶經(jīng)由所述第二移動裝置的小鍵盤輸入多個輸入以玩第二游戲,所述第一和第二游戲是在各自的移動裝置上提供的基本上相同的游戲,以及將所述第二用戶在所述第二移動裝置上的小鍵盤輸入傳送到所述第一移動裝置,所述第一游戲使用來自所述第二移動裝置的所述小鍵盤輸入并且所述第二游戲使用來自所述第一移動裝置的所述小鍵盤輸入,以使得能夠在所述第一和第二游戲之間進行多人游戲。
文檔編號A63F13/12GK101049539SQ200710091500
公開日2007年10月10日 申請日期2007年3月30日 優(yōu)先權(quán)日2006年3月30日
發(fā)明者戴維·C·愛德華茲 申請人:三星電子株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1