使用Adobe Flex 3開發大型多人在線遊戲

簡介

本文簡單介紹瞭如何使用Adobe Flex 3技術來開發多人在線遊戲.講到了爲何選擇Adobe Flex 3,開發中注意的問題以及開發的一個簡單流程等,對於想了解Flex 3在遊戲開發方面知識的朋友還是很有幫助的.

中間還有幾句,我怎麼也想不到該如何表達會好一點,還請大大們幫我補上.謝謝各位了!

使用FLEX3 開發大型多人在線遊戲

大型多人在線遊戲 (MMO) 技術已經涉足到各種軟件形式中了. 當我們還在思考MMO, 多人遊戲已經使很多玩家能夠實時連接進行合作與競爭。( 見圖表1). 魔獸世界在通過DVD-ROM  訂閱的MMO 遊戲行業中處在黃金標準的位置,但是,通過Abobe-flash 平臺,我們可以利用魔獸的一小部分時間和預算來發展一個自由來玩的通過瀏覽器的類似於WAKFU Small world MMO 遊戲。

 

Some leading MMO games

Figure 1. Some leading MMO games.

在這篇文章中, 我旨在比你想象的少的時間內告訴你製作一個完整的( 並且簡單的) 大型在線遊戲的經驗。同樣,我會給你一些示例代碼以使你能掌握這種高水平的思想。這些例子僅限於FLEX3 的瀏覽器版,但是其中好多的信息都是與其他技術的應用程序開發者相關的。包括Adobe Flash CS4 以及Flex 3 AIR 桌面應用程序。

我希望這些能給大型在線遊戲 的入門者做一個介紹,同時,也讓高手們獲得一些知識。

什麼是MMO?

在超過十年的時間裏,大型多人在線技術已經成爲了桌面PC 遊戲發展中的主流。 在最近幾年中,我們發現它在瀏覽器端也很流行。一個MMO 應用程序是一種這樣的軟件,它能實時連接很多人,同時,一個人的操作動作會馬上影響到其他的人。就像在聊天窒裏,當你打出一則消息時,接受者會馬上看到這則消息一樣。當你攻擊一個敵人的時候,這個敵人會被打,或者擋住攻擊並且反攻。在MMO 最普通的形式中,一個MMO 應用程序是基於團隊,同時看重個人體驗與人機交互的應用程序。MMO 有好多種:角色扮演遊戲 (MMORPGs), 實時戰略遊戲(MMORTS), 第一人稱射擊遊戲 (MMOFPS), 基於瀏覽器的大型在線遊戲 (BBMMOGs) 以及其他更多。

MMORPG 是非常流行的,或者仿真遊戲 。一個仿真實世界的遊戲是通過互聯網接口聯接很多人製作出仿真世界的遊戲。仿真遊戲通常具有六個特點:

  • 共享空間: 這是個可以允許多人同時參加的世界。
  • 圖形用戶界面: 這個世界描繪出真實的空間距離, 從二維的圖片轉變成三維的環境。
  • 實時: 相互操作都是實時發生的。
  • 相互影響: 這個世界允許用戶更改、發展、建造、或者提交自定義的內容。
  • 一直運行: 無論單個用戶是否登錄,都不會影響到整個程序的運行。
  • 社會化的/ 團體化的: 這個世界允許並且鼓勵各種社團形式,如團隊、行會、俱樂部、集團、同居、鄰居等等。

隨着計算機硬件性能與技術的快速發展,MMO 遊戲已從桌面程序發展到網絡程序。這篇文章的重點在後者。

MMO 遊戲 是商業性的

MMO 遊戲 非常流行。隨着越來越多的遊戲玩家通過寬帶來上網,越來越來的因特網用戶開始嘗試MMO 遊戲,使用人數正快速的增加。吸引人的WEB20 以及RIA 特性使這些遊戲在遊戲玩家中快速的流行起來。用戶在空閒時間中都沉浸在這些遊戲中,哪裏有用戶,哪裏就有商機。但是傳統的商業遊戲沉浸於在購買時加入一系列的費用。MMO 遊戲則是要交付不斷增加的用於發展與維護的費用,並且由於在線玩的原因會帶來其他的商業機會。遊戲開發者與發行者將通過多種方式從成功的MMO 遊戲中獲利。發行者通常會選擇以下幾條:

  • 訂閱: 用戶每月資付一定錢以能夠繼續玩,這是桌面發展中的獲利方式,並且曾經一度成爲最流行的獲利方式。
  • 廣告: 在基於瀏覽器的遊戲 中,我們可以發現,遊戲發行商會在遊戲場景上方放置一個banner 廣 告,這些廣告鏈接到普通網頁,有些廣告會被融入到遊戲場景中。舉個例子,你在遊戲中的角色會被一個高速公路廣告牌指引,而這個廣告牌上顯示的將會是真實的 廣告信息。除了這種方式,也可能是下面的兩種方式:用戶遊戲是不需要預選支付費用的。這使觀衆面得到最大化。由於因特網與Mmo 遊戲固有的連通性,新廣告可以在遊戲體驗中輪換(出現),而且韻律可以決定每一個廣告可以吸引多少眼球。
  • 虛擬物品的銷售: 雖然玩遊戲 可能不要錢,但是用戶可以通過付現金購買虛擬裝備來增加角色的屬性或者提高遊戲的優勢。
  • 虛擬貨幣的銷售: While game play may be free, users pay real-world cash to credit their account with virtual currency. The currency is then used to perform game transactions for things like advancing their character growth or purchasing virtual items.
  • Sponsorships: Real-world companies who wish to have their brands integrated into the game pay the publishers. An example is a clothing company who wishes to include virtual clothes in the virtual world.

Surely, as the audience for MMO gaming expands, advertisers will become increasingly creative with how they monetize the games in this industry.

策劃製作一個MMO 遊戲

在規劃的互動項目時,重要的是要有令人信服的創造性以及使用匹配的適當技術實現您的想法以及滿足您的目標受衆。在下面的章節中, 我將提供整體的MMO 製作的意見以及可用技術的討論。

RIP game logo

2. RIP 遊戲 LOGO.

舉個例子, 讓我們假設我們的目標市場是8-10 歲大的男孩與女孩,次目標市場是具有童心的成年人。我製作一個叫做RIP 的簡單的,完整的Flex 遊戲以供我們來討論一下。它根本不是一個完整的工程,但它的用處是爲了讓我們交流一下MMO 遊戲策劃與開發的思想。

角色與故事

除了挑戰與美麗的畫面來吸引用戶,增加角色的難度是保持MMO 遊戲長期有人玩的一個關鍵。人物和故事是留住你的用戶羣的兩個關鍵因素。

這裏有一些提示關於設計MMO 遊戲時要考慮的:

  • 獨一無二: 你認爲傷害你的市場可能會節省您的品牌差異。如果您選擇以超人的主題,因爲流行的市場調研告訴您,您的用戶羣喜歡這樣的主題,你同時要做好有半打競爭對手也想到了同樣的方式的準備。
  • 讓你的角色成長: 想想RPG 遊戲。裏面的角色有許多特性(如強度,健康,速度和情報) ,這些都隨着經驗的增加以及學習新的能力而增加。
  • 讓你的遊戲 情節成長: 請記住,如果您希望您的MMO 遊戲產生持久的壽命。就要把您的內容設計的更像是正在進行的電視節目而不是一個孤獨的賣座電影情節。您的開始部分一定要設置很多的鋪墊,一定要打下好的基礎。

對於RIP 協議,我使用一個友好的鬼主題(見圖3 ) 。當我創建的,我無法找到一個友好的以鬼爲主題的MMO 遊 戲。所以這是獨一無二的。鬼魂可以有許多人的特性以及也可能產生一些超能力。這就使角色的特性可以增長。當我想到一個鬼的世界,我想幾件事情:新的鬼會定 時出現,一個夢幻般的世界上任何事都是可能的,天堂與地獄的主題中角色可以死一遍又一遍。這些想法應該促進一個長期,豐富的故事情節。

Character art

Figure 3. 角色樣子.

隨着人物和故事情節的確定,您可以讓作家和藝術家開始調查所需要的技術。

客戶端與服務器端技術

MMO 遊戲 技術,主要有兩個方面要考慮:客戶端和服務器端。您已完成的項目結合了這兩種技術。客戶端技術(即Adobe Flash PlayerAIR ,等等)將做一切工作量大的事情- 它負責前臺表現以及鼠標和鍵盤的輸入。服務器端的技術負責在每個客戶端之間進行通信。

從大處到細節,技術上有許多問題都要考慮。例如,什麼類型的計算機不能使用您的產品? MacPC 或兩者都可以?它是桌面應用程序還是運行在Web 瀏覽器?它將是一個三維的或二維的?它要運行在怎樣的軟件平臺上?

If you are interested in creating casual online multi-player games without the headache of hosting your own servers, consider checking out the Adobe Flash Collaboration Service . 對於這項工作,並與經濟的考慮,我們使用的Adobe Flash 平臺開發並使用2D 技術將此遊戲部署在網絡瀏覽器。我們使用了Adobe FlexBuilder 作爲我們的開發環境。我們結合客戶端和服務器的技術,在客戶端使用Flash Player 和在服務器端使用ElectroServer 4 。與我們的客戶端選擇的Flash Player ,我選擇使用了一個現成的服務器技術,其中包括一個ActionScript 3 特定的輔助性文件,因爲這將有助於加快發展的速度。除了ElectroServer 4 ,一些重要的服務器端的選擇,支持ActionScript 3 還包括Adobe Flash Media Interactive Server 3.5 SmartFoxServer 1.6 。如果你有興趣創造休閒多玩家遊戲並不用爲託管自己的服務器頭痛時,可以考慮Adobe Flash Collaboration Service

我選擇ElectroServer 4 ,主要是因爲它是穩定,易於開發,免費(最多20 個用戶) 。這意味着你可以開始一個新項目或測試而不用付費。此外, ElectroServer 4 具有可擴展性,幫助文檔豐富,並得到廣泛支持。

您可能還問我爲什麼選擇二維而不是三維。雖然最新的Flash Player 10 中有一些令人興奮的3D 能力,這是僅限於移動二維物體在三維空間或使用軟件提供的解決方案(其中提供比硬件提供的解決方案還慢的動畫) ,如Papervision3D 。我很期待Flash Player3D 的未來 ,但是據我的經驗, Flash 平臺目前不是強大的3D 需求的最好的選擇。

開發

現在,我已決定好了友好鬼主題故事和人物,Flash Player 作爲客戶端,並且ElectroServer 4 作爲服務器端,我準備開始開Flex Builder 中進行開發。對於用戶界面,我們將界面分塊,以滿足特定用戶的需求(見圖4 ) 。每個地區獲取用戶輸入,並作出對應反應:

  • 連接: 允許用戶登錄和登出程序.
  • 用戶列表: 顯示目前在線的所有用戶。
  • 聊天記錄: 顯示遊戲 的聊天記錄.
  • 聊天輸入口: 允許用戶向遊戲 中的當前用戶發送一則消息.
  • 遊戲 界面: 顯示了遊戲 世界,由背景藝術和用戶角色組成。用戶通過控件角色的位置來控制角色進行移動。

Rough layout of components

Figure 4. 粗略佈局的組成部分。

創建組件

我們將按照圖4 來創造Flex 組件。對於每一個組成部分,我們必須考慮到用戶的需要,來決定UI 元素,以滿足這些需要,並充分利用Flex 中的MXML 來輕鬆地創建佈局。在Flex 開發過程中, 這是最基本的,所以讓我們來看看一個簡單的例子。

如同任何短信應用,聊天輸入在應用程序的佈局的底部(見圖5 ) ,用戶可以輸入文字信息,並將其提交到聊天記錄中以供其他用戶看到。在參與者之間這是主要的通信方式。

Chat Input component before final artwork

Figure 5. 聊天輸入部分

TextInput Button 組件放在一個Panel 組件中, ID 屬性是用來給主程序中相關功能控件進行編號,當用戶點擊chatSend_button 實例,在chat_textinput 實例中的任何文字,將傳遞給其他玩家。在下一節中,我們將看到這個信息是如何傳遞給服務器。

Chat Input component’s MXML

Figure 6. 聊天輸入口的MXML.

客戶端- 服務器端 代碼

我們繼續建立我們的組成部分放下一些客戶端與服務器之間的通訊。開發多人遊戲 與開發單機遊戲的根本差別在,當用戶交互而產生的任何東西都不應該在屏幕上進行修改。所有的遊戲客戶端(遊戲運行的某個特定的玩家) ,包括提供了輸入口的玩家,應當等待回信當服務器說“玩家1 已經發出了一個聊天信息” ,例如, 當玩家1 的客戶端發送請求到服務器,服務器發送響應給每一位客戶。只有到那時,屏幕才作出更新。當然,玩家1 的客戶端必須隨時準備處理迴應,並且當客戶端發送請求時, 其可以隨時隨刻的更新。玩家1 使用Client (A) 發出一個聊天信息請求和處理響應(見圖7 ) 。發出的信息包含足夠的信息以供所有客戶作出適當的反應。在這種情況作出的反應很簡單地放入到聊天記錄中以供所有用戶可見。

Client-to-server-to-client(s) message flow

Figure 7. 客戶端- 服務器端- 客戶端信息流

在這個遊戲 中,有5 個類型的請求/ 響應配對(見圖8 ) 。所有與服務器端的交互是通過一個叫作稱爲ElectroServerActionScript 3 對象來實現的。當程序加載連接服務器與加入到房間中時,該組合被顯示。所有文字聊天和所有玩家的操作動作(如位置的變化,進攻,防守,等等)用這種方式進行發送。

PublicMessageRequest 僅發送文字,它通常是作爲一個聊天信息。但不僅僅是文字是可能的。一個消息也可以發送一個EsObject 對象。這是一個通用的ActionScript 3 對象。開發包裝EsObject 的有用特性- 例如,玩家在遊戲中移動的新的XY 的位置。更復雜的遊戲功能較重使用EsObjects 並且封裝更多的數據。創造複雜的遊戲而不通過EsObjects 傳送太多的數據是一種藝術。發送較小的信息將有助於遊戲反應速度。最後配對顯示如何斷開客戶端從服務器室當用戶結束他或她的遊戲。

Request/Response pairs for RIP

Figure 8. RIP 的請求/ 響應對.

技能, 皮膚以及樣式

因爲AdobeCreative Suite 4 產品之間的合作,整合寫好的控件到Flex 項目是很簡單。這是使用Flex 一個主要好處。如果仔細規劃高效率的工作流程,開發人員和設計人員,可以對項目以最少的衝突。

對於RIP ,我開始鋪設應用程序的MXML 而平面設計師編寫CSS 來定義顏色和字體。我繼續編寫角色的移動和交互而藝術設計師用Flash 製作背景和角色。我們三人幾乎沒有中斷工作,因爲RIP 參考可見的元素進行開發。

Flex Builder 中主要有兩種類型的視覺效果:造型和外觀。在程序中,造型決定基本色澤和文本顯示屬性。出色的(但還遠遠沒有完成)的CSS 兼容性的Flex 允許一個CSS 文本文件來定義樣式屬性。藝術團隊編輯和保存每個樣式的變化。一個例子是panels 的背景顏色梯度和各種字體的處理(見圖9 ) 。

應用程序中包括皮膚制定與動畫的設計。在RIP 中,應用程序中嵌入一個包含資源的SWF 文件。界面小組利用Adobe Flash CS4 專業版重新發布此SWF 以更新每個皮膚。每一次的Flex 項目是重新編譯,發佈的遊戲以程序上與創造性上作出修改。一個皮膚製作的例子就是RIP LOGO 或鬼魂的動畫角色設計(見圖9 ) 。

Finished game with complete styles and skins

Figure 9. 完成遊戲 的風格和完整的皮膚。

現在我們有了一個堅實的,拋光建立的遊戲 , 我們都願意嘗試一下。雖然尚未針對許多用戶優化,遊戲應處理幾十個屏幕。加入有趣的是容易的。單擊連接並且一個獨特的彩色鬼魂顯示在屏幕上。輸入文字信息 進行交流,然後點擊遊戲中的任何地方,來控件你的遊戲角色。更大的遊戲可以擴大到包括化身屬性,如經驗和速度,以完成任務,庫存物品收集,和更多的世界來 探索。

下一步

除了發展自己的遊戲 ,有兩個重要的輔助因素:在線整合您的應用程序並規劃項目的維護工作。

整合

你的開發週期即將走到盡頭時,您需要在線整合您的應用程序。在開發過程中,你可以在您的桌面上運行的一個ElectroServer 實例,並直接與出版的SWF 文件交互。只需打開兩個或兩個以上的遊戲SWF 文件在您的桌面上,以測試多個用戶。這個工作流程可以快速發展。

一旦你已經準備好您的應用程序的在線測試,請執行下列步驟:

  1. Web 服務器上安裝和運行的一個ElectroServer 實例。
  2. 您的遊戲 配置要求在線實例,而非您的桌面實例。
  3. 瀏覽網頁,其中包含您的SWF 文件,並開始播放。打開兩個或兩個以上的窗口,以該網頁來自同一臺式電腦或臺式機,以測試不同的多個用戶。

請記住,對大多數商業應用,你還需要某種玩家匹配系統- 通常稱爲lobby , 這樣,用戶就可以找到朋友,並開始遊戲。您可以建立一個lobby 到您的遊戲或使用外部的。您可以使用一個精心設計的外部lobby 作爲入口成多個MMO 遊戲,所以當你部署多人遊戲你不需要重新發明車輪。

維護

除了典型的應用系統維修,包括錯誤修正和功能要求, MMO 遊戲需要更多的行動,不斷推出服務後。重要的是要考慮推出網絡遊戲項目作爲一個完整的遊戲所需要的。許多商業模式的網絡遊戲應用受益於前面提到的長期用戶。

用戶全神貫注維持數月或數年,需要堅實的社會管理和定期的內容更新。大部分用戶將享受來自與其他玩家互動。新玩家加入後引起的社會動態與戲劇性發展將捕獲用戶的注意力。這是網絡遊戲 類型的 遊戲 開發 商一個最大的優勢。然而,有很大的競爭來自其他的MMO 遊戲,以及用戶與用戶共享,可享受其他許多遊戲。爲了使您的遊戲令人興奮並保持新鮮,並確保您的用戶繼續參與,建立一個維持戰略去產生更多的角色,遊戲關卡,和情節隨着時間的推移。由於開發商往往不充分認識維護要求,因此沒有和預算範圍內保持均衡,保養不善是導致MMO 遊戲死亡的最大原因。

結尾

MMO 遊戲 結合最好的Web 2.0RIA 方法爲用戶提供經驗。它們可以成爲令人興奮的項目開發和有利可圖的事業的遊戲出版商。

建立成功的MMO 遊戲需要認真規劃,包括開發角色和故事應該是獨一無二的,並允許發展,建設一個有吸引力的視覺設計,並選擇適當的客戶端和服務器的技術力量去實現構想。

開發包括用戶界面設計,客戶端服務器通信,遊戲 邏輯,藝術和皮膚。我們相信的Flex Builder 是一個理想的客戶端的技術的選擇,因爲它靈活的開發環境。再加上Adobe 公司的Creative Suite 4 Flex Builder 將使你從一開始就順利地構建您的團隊協作。

如果您計劃真正特別的東西,制定嚴密,並保持您的項目啓動後運行很久,你就會使用Flex 3 創造一個成功的MMO 遊戲。

致謝

我特別感謝作出貢獻的藝術家。Warren Lee 創造了風格和遊戲藝術和Bill CoonsBillCoons.com 製作了皮膚與界面圖形設計。

發佈了100 篇原創文章 · 獲贊 4 · 訪問量 44萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章