開發Flash網絡遊戲需要掌握的技術

開發Flash網絡遊戲需要掌握的技術

 

 

轉自:http://androider.javaeye.com/blog/268914

 

1.顯示 

  一個遊戲離不開顯示,AS3已經爲開發者提供了一個比較完整的2D顯示引擎了。學習這個部分,學習顯示列表,學習DisplayObjectDisplayObjectContainer的區別,學習Shape, Sprite, MovieClip, Bitmap這些基本可顯示對象的區別。 

2.鼠標輸入 

  交互就離不開用戶輸入的處理,鼠標是遊戲中最常用的輸入設備。需要知道只有繼承自InteractiveObject的對象才能接收鼠標消息。還要學習如何使用鼠標拖拽,如何判定鼠標消息產生的目標,如何啓用,禁用鼠標消息。鼠標座標的全局和局部的轉換。 

3.鍵盤輸入 

  鍵盤除了標準UI組件內部會用到,遊戲的快捷鍵等功能也需要用到。 

4.位圖 

  作爲遊戲開發,可能不是所有的美術素材都是在開發階段就固定的,或多或少需要在遊戲過程中對圖形進行一些變換處理。因此需要熟練掌握BitmapBitmapData對象。 

5.層 

  作爲MMORPG遊戲,不同可視對象之間是有層次關係的。不同層的關係是固定的,比如地面層,人物層,UI層。同一層上的物體重疊時,需要通過修改在顯示列表中的相對位置來調整上下關係。 

6.UI組件 

  按鈕,輸入框,文本框,下拉框,列表,表格。這些在遊戲中都少不了。爲了遊戲畫面的美觀和風格一致,通常都需要修改標準組件的皮膚,才能應用到遊戲中。 

7.資源加載 

  大家都知道,傳統客戶端MMORPG遊戲,動輒幾百MG的尺寸,大部分都是媒體資源,我們不可能把這些資源都打到一個SWF文件中,因此需要根據資源的重要程度來決定加載策略。最常用最基本的,程序啓動時加載;其他的,可以在遊戲過程中動態加載。 

8.事件機制 

  作爲新人,或多或少都會用到addEventListener方法。作爲大型系統開發者,一定要知道這個方法背後的IEventDispatcher接口和EventDipatcher類。使用事件機制進行開發,一方面爲了降低代碼之間的耦合,另外也是方便了多人協作開發。 

9.遠程通訊 

  作爲MMORPG的通訊方案,需要考慮效率和安全性。由於服務器端我們很熟悉JavaSocket開發,而且看到了AS3Socket類,於是毫不猶豫的選擇了使用私有協議的通訊方式。作爲MMORPG,基於HTTP的協議效率肯定比直接基於TCP的二進制協議低。另外,基於HTTP方式,不太適用於服務器向客戶端推消息的情景。AS3的其它通訊方式我瞭解的不太清楚,不知道是否有在靈活性,安全性,性能方面超越Socket方案的。 

10.性能優化 

  作爲商業遊戲,需要考慮到玩家環境的千差萬別,因此係統的很多效果都需要有參數可以控制,使得程序能流暢的運行於玩家的機器上。作爲Flash網遊,需要考慮客戶端的內存佔用和CPU使用,需要考慮服務器的流量和客戶端到服務器的帶寬。 

11.多線程 

  首先,Flash沒有多線程,是一個單線程,如果有時候需要實現類似開一個線程進行耗時的複雜計算時,可以將這個計算封裝成一個類,提供一個step方法,每掉用一次step,執行若干步計算,手工爲代碼分配時間片。用這種方法來模擬多線程。 

12.高級知識(js/jsfl/swf格式/加擾/虛擬機運行機制) 

  作爲一款產品,在開發過程中還有很多細節需要考慮。 

  比如使用ExternalInterfaceJS通訊。Web遊戲,離不開網頁的,偶爾還是會與網頁有些交互的。 

  使用JSFL批量生成或者處理Fla項目文件。遊戲中大量的資源的格式是類似的,如果完全由人工,需要大量重複勞動。幸好Flash提供了JSFL的擴展,幫我們節約了大量的人工。 

  對SWF格式的理解。有些工作,由於JSFL的可編程性比較差,無法完美實現,我們還編寫程序直接對SWF文件進行操作。曾經有一個需求,需要四個人花一週時間才能搞定,而且還很容易出錯,後來寫了JSFL腳本,外加編程直接處理SWF,每次進行類似的工作,只需要一個人幾分鐘人工,程序跑1個小時就搞定了。 

  商業產品發佈時,還是要代碼加擾的。現在反編譯先鋒Sothink4/ASV6已經問世,但是AS3加擾的工作還遠遠落後於反編譯的步伐。我們這些Flash開發人員很着急呀。 

13.算法 

  算法對於遊戲開發還是很有用的。有時候是效率的提升,有時可能是01的區別。

 

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/roundstars/archive/2010/01/05/5133841.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章