使用FLEX開發(fā)大型多人在線游戲_第1頁
使用FLEX開發(fā)大型多人在線游戲_第2頁
使用FLEX開發(fā)大型多人在線游戲_第3頁
使用FLEX開發(fā)大型多人在線游戲_第4頁
使用FLEX開發(fā)大型多人在線游戲_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

付費下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

2009—08-11使用FLEX3開發(fā)大型多人在線游戲大型多人在線游戲(MMO)技術(shù)已經(jīng)涉足到各種軟件形式中了.當(dāng)我們還在思考MMO時,多人游戲已經(jīng)使很多玩家能夠?qū)崟r連接進行合作與競爭.(見圖表1).魔獸世界在通過DVD-ROM訂閱的MMO游戲行業(yè)中處在黃金標(biāo)準(zhǔn)的位置,但是,通過Abobe-flash平臺,我們可以利用魔獸的一小部分時間和預(yù)算來發(fā)展一個自由來玩的通過瀏覽器的類似于WAKFU和Smallworld的MMO游戲。Figure1.SomeleadingMMOgames。在這篇文章中,我旨在比你想象的少的時間內(nèi)告訴你制作一個完整的(并且簡單的)大型在線游戲的經(jīng)驗。同樣,我會給你一些示例代碼以使你能掌握這種高水平的思想。這些例子僅限于FLEX3的瀏覽器版,但是其中好多的信息都是與其他技術(shù)的應(yīng)用程序開發(fā)者相關(guān)的。包括AdobeFlashCS4以及Flex3AIR桌面應(yīng)用程序。我希望這些能給大型在線游戲的入門者做一個介紹,同時,也讓高手們獲得一些知識。什么是MMO?在超過十年的時間里,大型多人在線技術(shù)已經(jīng)成為了桌面PC游戲發(fā)展中的主流。在最近幾年中,我們發(fā)現(xiàn)它在瀏覽器端也很流行。一個MMO應(yīng)用程序是一種這樣的軟件,它能實時連接很多人,同時,一個人的操作動作會馬上影響到其他的人。就像在聊天窒里,當(dāng)你打出一則消息時,接受者會馬上看到這則消息一樣。當(dāng)你攻擊一個敵人的時候,這個敵人會被打,或者擋住攻擊并且反攻.在MMO最普通的形式中,一個MMO應(yīng)用程序是基于團隊,同時看重個人體驗與人機交互的應(yīng)用程序.MMO有好多種:角色扮演游戲(MMORPGs),實時戰(zhàn)略游戲(MMORTS),第一人稱射擊游戲(MMOFPS),基于瀏覽器的大型在線游戲(BBMMOGs)以及其他更多。MMORPG是非常流行的,或者仿真游戲。一個仿真實世界的游戲是通過互聯(lián)網(wǎng)接口聯(lián)接很多人制作出仿真世界的游戲。仿真游戲通常具有六個特點:共享空間:這是個可以允許多人同時參加的世界。圖形用戶界面:這個世界描繪出真實的空間距離,從二維的圖片轉(zhuǎn)變成三維的環(huán)境。實時:相互操作都是實時發(fā)生的.相互影響:這個世界允許用戶更改、發(fā)展、建造、或者提交自定義的內(nèi)容。一直運行:無論單個用戶是否登錄,都不會影響到整個程序的運行。社會化的/團體化的:這個世界允許并且鼓勵各種社團形式,如團隊、行會、俱樂部、集團、同居、鄰居等等。隨著計算機硬件性能與技術(shù)的快速發(fā)展,MMO游戲已從桌面程序發(fā)展到網(wǎng)絡(luò)程序。這篇文章的重點在后者。MMO游戲是商業(yè)性的MMO游戲非常流行。隨著越來越多的游戲玩家通過寬帶來上網(wǎng),越來越來的因特網(wǎng)用戶開始嘗試MMO游戲,使用人數(shù)正快速的增加。吸引人的WEB2.0以及RIA特性使這些游戲在游戲玩家中快速的流行起來.用戶在空閑時間中都沉浸在這些游戲中,哪里有用戶,哪里就有商機。但是傳統(tǒng)的商業(yè)游戲沉浸于在購買時加入一系列的費用.MMO游戲則是要交付不斷增加的用于發(fā)展與維護的費用,并且由于在線玩的原因會帶來其他的商業(yè)機會。游戲開發(fā)者與發(fā)行者將通過多種方式從成功的MMO游戲中獲利.發(fā)行者通常會選擇以下幾條:訂閱:用戶每月資付一定錢以能夠繼續(xù)玩,這是桌面發(fā)展中的獲利方式,并且曾經(jīng)一度成為最流行的獲利方式.廣告:在基于瀏覽器的游戲中,我們可以發(fā)現(xiàn),游戲發(fā)行商會在游戲場景上方放置一個banner廣告,這些廣告鏈接到普通網(wǎng)頁,有些廣告會被融入到游戲場景中.舉個例子,你在游戲中的角色會被一個高速公路廣告牌指引,而這個廣告牌上顯示的將會是真實的廣告信息.除了這種方式,也可能是下面的兩種方式:用戶游戲是不需要預(yù)選支付費用的。這使觀眾面得到最大化.由于因特網(wǎng)與Mmo游戲固有的連通性,新廣告可以在游戲體驗中輪換(出現(xiàn)),而且韻律可以決定每一個廣告可以吸引多少眼球。虛擬物品的銷售:雖然玩游戲可能不要錢,但是用戶可以通過付現(xiàn)金購買虛擬裝備來增加角色的屬性或者提高游戲的優(yōu)勢。虛擬貨幣的銷售:Whilegameplaymaybefree,userspayreal-worldcashtocredittheiraccountwithvirtualcurrency。Thecurrencyisthenusedtoperformgametransactionsforthingslikeadvancingtheircharactergrowthorpurchasingvirtualitems.Sponsorships:Real—worldcompanieswhowishtohavetheirbrandsintegrat(yī)edintothegamepaythepublishers。Anexampleisaclothingcompanywhowishestoincludevirtualclothesinthevirtualworld。Surely,astheaudienceforMMOgamingexpands,advertiserswillbecomeincreasinglycreativewithhowtheymonetizethegamesinthisindustry。策劃制作一個MMO游戲在規(guī)劃的互動項目時,重要的是要有令人信服的創(chuàng)造性以及使用匹配的適當(dāng)技術(shù)實現(xiàn)您的想法以及滿足您的目標(biāo)受眾。在下面的章節(jié)中,我將提供整體的MMO制作的意見以及可用技術(shù)的討論。圖2。RIP游戲LOGO.舉個例子,讓我們假設(shè)我們的目標(biāo)市場是8-10歲大的男孩與女孩,次目標(biāo)市場是具有童心的成年人。我制作一個叫做RIP的簡單的,完整的FLEX游戲以供我們來討論一下。它根本不是一個完整的工程,但它的用處是為了讓我們交流一下MMO游戲策劃與開發(fā)的思想.角色與故事除了挑戰(zhàn)與美麗的畫面來吸引用戶,增加角色的難度是保持MMO游戲長期有人玩的一個關(guān)鍵。人物和故事是留住你的用戶群的兩個關(guān)鍵因素.這里有一些提示關(guān)于設(shè)計MMO游戲時要考慮的:獨一無二:你認(rèn)為傷害你的市場可能會節(jié)省您的品牌差異。如果您選擇以超人的主題,因為流行的市場調(diào)研告訴您,您的用戶群喜歡這樣的主題,你同時要做好有半打競爭對手也想到了同樣的方式的準(zhǔn)備。讓你的角色成長:想想RPG游戲。里面的角色有許多特性(如強度,健康,速度和情報),這些都隨著經(jīng)驗的增加以及學(xué)習(xí)新的能力而增加。讓你的HYPERLINK”http://txf2004。javaeye。com/blog/articles/tag/??????"\t"_blank"游戲情節(jié)成長:請記住,如果您希望您的MMO游戲產(chǎn)生持久的壽命。就要把您的內(nèi)容設(shè)計的更像是正在進行的電視節(jié)目而不是一個孤獨的賣座電影情節(jié)。您的開始部分一定要設(shè)置很多的鋪墊,一定要打下好的基礎(chǔ)。對于RIP協(xié)議,我使用一個友好的鬼主題(見圖3)。當(dāng)我創(chuàng)建的,我無法找到一個友好的以鬼為主題的MMO游戲.所以這是獨一無二的.鬼魂可以有許多人的特性以及也可能產(chǎn)生一些超能力.這就使角色的特性可以增長。當(dāng)我想到一個鬼的世界,我想幾件事情:新的鬼會定時出現(xiàn),一個夢幻般的世界上任何事都是可能的,天堂與地獄的主題中角色可以死一遍又一遍.這些想法應(yīng)該促進一個長期,豐富的故事情節(jié)。Figure3。角色樣子.隨著人物和故事情節(jié)的確定,您可以讓作家和藝術(shù)家開始調(diào)查所需要的技術(shù)。客戶端與服務(wù)器端技術(shù)MMOHYPERLINK"http://txf2004.javaeye.com/blog/articles/tag/??????”\t"_blank”游戲技術(shù),主要有兩個方面要考慮:客戶端和服務(wù)器端。您已完成的項目結(jié)合了這兩種技術(shù)。客戶端技術(shù)(即AdobeFlashPlayer,AIR,等等)將做一切工作量大的事情—它負(fù)責(zé)前臺表現(xiàn)以及鼠標(biāo)和鍵盤的輸入。服務(wù)器端的技術(shù)負(fù)責(zé)在每個客戶端之間進行通信.從大處到細(xì)節(jié),技術(shù)上有許多問題都要考慮。例如,什么類型的計算機不能使用您的產(chǎn)品?Mac或PC或兩者都可以?它是桌面應(yīng)用程序還是運行在Web瀏覽器?它將是一個三維的或二維的?它要運行在怎樣的軟件平臺上?Ifyouareinterestedincreatingcasualonlinemulti-playergameswithouttheheadacheofhostingyourownservers,considercheckingouttheHYPERLINK"http://labs。adobe.com/technologies/afcs”AdobeFlashCollaborationService.對于這項工作,并與經(jīng)濟的考慮,我們使用的AdobeFlash平臺開發(fā)并使用2D技術(shù)將此游戲部署在網(wǎng)絡(luò)瀏覽器。我們使用了AdobeFlexBuilder作為我們的開發(fā)環(huán)境。我們結(jié)合客戶端和服務(wù)器的技術(shù),在客戶端使用FlashPlayer和在服務(wù)器端使用http://ww/products/flashmediaserver/"\t”_blank"AdobeFlashMediaInteractiveServer3.5和HYPERLINK”http://www.smartfoxser/"\t”_blank”SmartFoxServer1.6.如果你有興趣創(chuàng)造休閑多玩家游戲并不用為托管自己的服務(wù)器頭痛時,可以考慮HYPERLINK"http://labs。adobe.com/technologies/afcs”AdobeFlashCollaborationService.我選擇ElectroServer4,主要是因為它是穩(wěn)定,易于開發(fā),免費(最多20個用戶)。這意味著你可以開始一個新項目或測試而不用付費。此外,ElectroServer4具有可擴展性,幫助文檔豐富,并得到廣泛支持。您可能還問我為什么選擇二維而不是三維。雖然最新的FlashPlayer10中有一些令人興奮的3D能力,這是僅限于移動二維物體在三維空間或使用軟件提供的解決方案(其中提供比硬件提供的解決方案還慢的動畫),如Papervision3D。我很期待FlashPlayer中3D的未來,但是據(jù)我的經(jīng)驗,F(xiàn)lash平臺目前不是強大的3D需求的最好的選擇。開發(fā)現(xiàn)在,我已決定好了友好鬼主題故事和人物,FlashPlayer作為客戶端,并且ElectroServer4作為服務(wù)器端,我準(zhǔn)備開始開FlexBuilder中進行開發(fā)。對于用戶界面,我們將界面分塊,以滿足特定用戶的需求(見圖4)。每個地區(qū)獲取用戶輸入,并作出對應(yīng)反應(yīng):連接:允許用戶登錄和登出程序。用戶列表:顯示目前在線的所有用戶。聊天記錄:顯示HYPERLINK”http://txf2004.javae/blog/articles/tag/??????”\t”_blank”游戲的聊天記錄.聊天輸入口:允許用戶向HYPERLINK"http://txf2004。javaeye.com/blog/articles/tag/??????"\t"_blank"游戲中的當(dāng)前用戶發(fā)送一則消息.HYPERLINK"http://txf2004.javaeye。com/blog/articles/tag/??????"\t”_blank"游戲界面:顯示了HYPERLINK”http://txf2004。javaeye。com/blog/articles/tag/??????"\t”_blank"游戲世界,由背景藝術(shù)和用戶角色組成.用戶通過控件角色的位置來控制角色進行移動。Figure4。粗略布局的組成部分。創(chuàng)建組件我們將按照圖4來創(chuàng)造Flex組件。對于每一個組成部分,我們必須考慮到用戶的需要,來決定UI元素,以滿足這些需要,并充分利用Flex中的MXML來輕松地創(chuàng)建布局。在Flex開發(fā)過程中,這是最基本的,所以讓我們來看看一個簡單的例子.如同任何短信應(yīng)用,聊天輸入在應(yīng)用程序的布局的底部(見圖5),用戶可以輸入文字信息,并將其提交到聊天記錄中以供其他用戶看到。在參與者之間這是主要的通信方式。Figure5。聊天輸入部分TextInput與Button組件放在一個Panel組件中,ID屬性是用來給主程序中相關(guān)功能控件進行編號,當(dāng)用戶點擊chat(yī)Send_button實例,在chat_textinput實例中的任何文字,將傳遞給其他玩家.在下一節(jié)中,我們將看到這個信息是如何傳遞給服務(wù)器。Figure6.聊天輸入口的MXML.客戶端-服務(wù)器端代碼我們繼續(xù)建立我們的組成部分放下一些客戶端與服務(wù)器之間的通訊。開發(fā)多人HYPERLINK"http://txf2004.javaeye。com/blog/articles/tag/??????"\t"_blank"游戲與開發(fā)單機游戲的根本差別在,當(dāng)用戶交互而產(chǎn)生的任何東西都不應(yīng)該在屏幕上進行修改.所有的游戲客戶端(游戲運行的某個特定的玩家),包括提供了輸入口的玩家,應(yīng)當(dāng)?shù)却匦女?dāng)服務(wù)器說“玩家1已經(jīng)發(fā)出了一個聊天信息”,例如,當(dāng)玩家1的客戶端發(fā)送請求到服務(wù)器,服務(wù)器發(fā)送響應(yīng)給每一位客戶。只有到那時,屏幕才作出更新。當(dāng)然,玩家1的客戶端必須隨時準(zhǔn)備處理回應(yīng),并且當(dāng)客戶端發(fā)送請求時,其可以隨時隨刻的更新。玩家1使用Client(A)發(fā)出一個聊天信息請求和處理響應(yīng)(見圖7).發(fā)出的信息包含足夠的信息以供所有客戶作出適當(dāng)?shù)姆磻?yīng)。在這種情況作出的反應(yīng)很簡單地放入到聊天記錄中以供所有用戶可見。Figure7??蛻舳?服務(wù)器端—客戶端信息流在這個HYPERLINK”http://txf2004.javaeye.com/blog/articles/tag/??????"\t”_blank"游戲中,有5個類型的請求/響應(yīng)配對(見圖8)。所有與服務(wù)器端的交互是通過一個叫作稱為ElectroServer的ActionScript3對象來實現(xiàn)的。當(dāng)程序加載連接服務(wù)器與加入到房間中時,該組合被顯示。所有文字聊天和所有玩家的操作動作(如位置的變化,進攻,防守,等等)用這種方式進行發(fā)送。當(dāng)PublicMessageRequest僅發(fā)送文字,它通常是作為一個聊天信息。但不僅僅是文字是可能的.一個消息也可以發(fā)送一個EsObject對象。這是一個通用的ActionScript3對象。開發(fā)包裝EsObject的有用特性—例如,玩家在游戲中移動的新的X和Y的位置。更復(fù)雜的游戲功能較重使用EsObjects并且封裝更多的數(shù)據(jù)。創(chuàng)造復(fù)雜的游戲而不通過EsObjects傳送太多的數(shù)據(jù)是一種藝術(shù)。發(fā)送較小的信息將有助于游戲反應(yīng)速度。最后配對顯示如何斷開客戶端從服務(wù)器室當(dāng)用戶結(jié)束他或她的游戲。Figure8.RIP的請求/響應(yīng)對.技能,皮膚以及樣式因為Adobe的CreativeSuite4產(chǎn)品之間的合作,整合寫好的控件到Flex項目是很簡單。這是使用FLEX一個主要好處.如果仔細(xì)規(guī)劃高效率的工作流程,開發(fā)人員和設(shè)計人員,可以對項目以最少的沖突.對于RIP,我開始鋪設(shè)應(yīng)用程序的MXML而平面設(shè)計師編寫CSS來定義顏色和字體。我繼續(xù)編寫角色的移動和交互而藝術(shù)設(shè)計師用Flash制作背景和角色。我們?nèi)藥缀鯖]有中斷工作,因為RIP參考可見的元素進行開發(fā)。在FlexBuilder中主要有兩種類型的視覺效果:造型和外觀.在程序中,造型決定基本色澤和文本顯示屬性。出色的(但還遠(yuǎn)遠(yuǎn)沒有完成)的CSS兼容性的Flex允許一個CSS文本文件來定義樣式屬性。藝術(shù)團隊編輯和保存每個樣式的變化。一個例子是panels的背景顏色梯度和各種字體的處理(見圖9)。應(yīng)用程序中包括皮膚制定與動畫的設(shè)計。在RIP中,應(yīng)用程序中嵌入一個包含資源的SWF文件。界面小組利用AdobeFlashCS4專業(yè)版重新發(fā)布此SWF以更新每個皮膚。每一次的Flex項目是重新編譯,發(fā)布的游戲以程序上與創(chuàng)造性上作出修改。一個皮膚制作的例子就是RIPLOGO或鬼魂的動畫角色設(shè)計(見圖9).Figure9.完成HYPERLINK"http://txf2004。javaeye.com/blog/articles/tag/??????”\t"_blank"游戲的風(fēng)格和完整的皮膚?,F(xiàn)在我們有了一個堅實的,拋光建立的HYPERLINK"http://txf2004。javaeye。com/blog/articles/tag/??????"\t”_blank”游戲,我們都愿意嘗試一下。雖然尚未針對許多用戶優(yōu)化,游戲應(yīng)處理幾十個屏幕。加入有趣的是容易的.單擊連接并且一個獨特的彩色鬼魂顯示在屏幕上。輸入文字信息進行交流,然后點擊游戲中的任何地方,來控件你的游戲角色.更大的游戲可以擴大到包括化身屬性,如經(jīng)驗和速度,以完成任務(wù),庫存物品收集,和更多的世界來探索。下一步除了發(fā)展自己的HYPERLINK"http://txf2004。javaeye。com/blog/articles/tag/??????"\t"_blank"游戲,有兩個重要的輔助因素:在線整合您的應(yīng)用程序并規(guī)劃項目的維護工作。整合你的開發(fā)周期即將走到盡頭時,您需要在線整合您的應(yīng)用程序。在開發(fā)過程中,你可以在您的桌面上運行的一個ElectroServer?qū)嵗?并直接與出版的SWF文件交互。只需打開兩個或兩個以上的游戲SWF文件在您的桌面上,以測試多個用戶。這個工作流程可以快速發(fā)展。一旦你已經(jīng)準(zhǔn)備好您的應(yīng)用程序的在線測試,請執(zhí)行下列步驟:在Web服務(wù)器上安裝和運行的一個ElectroServer實例。您的HYPERLINK”http://txf2004。javaeye.com/blog/articles/tag/??????”\t”_blank”游戲配置要求在線實例,而非您的桌面實例.瀏覽網(wǎng)頁,其中包含您的SWF文件,并開始播放。打開兩個或兩個以上的窗口,以該網(wǎng)頁來自同一臺式電腦或臺式機,以測試不同的多個用戶.請記住,對大多數(shù)商業(yè)應(yīng)用,你還需要某種玩家匹配系統(tǒng)-通常稱為lobby,這樣,用戶就可以找到朋友,并開始游戲。您可以建立一個lobby到您的游戲或使用外部的.您可以使用一個精心設(shè)計的外部lobby作為入口成多個MMO游戲,所以當(dāng)你部署多人游戲你不需要重新發(fā)明車輪.維護除了典型的應(yīng)用系統(tǒng)維修,包括錯誤修正和功能要求,MMO游戲需要更多的行動,不斷推出服務(wù)后。重要的是要考慮推出網(wǎng)絡(luò)游戲項目作為一個完整的游戲所需要的.許多商業(yè)模式的網(wǎng)絡(luò)游戲應(yīng)用受益于前面提到的長期用戶。用戶全神貫注維持?jǐn)?shù)月或數(shù)年,需要堅實的社會管理和定期的內(nèi)容更新。大部分用戶將享受來自與其他玩家互動。新玩家加入后引起的社會動態(tài)與戲劇性發(fā)展將捕獲用戶的注意力.這是網(wǎng)絡(luò)HYPERLINK”http://txf2004。ja

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論