謹以此博記錄我的游戲開發路程,進度將不定期在此文中更新。
想要開發一個網頁游戲,下面是我的計划:
1.客戶端計划用flash語言,所以需要先學習AS3和Flex。
目前AS3已經大致學完,對Flex也有一定的了解,因為在學Flex的過程中,感覺Flex更適合做一些Form,而在繪制游戲界面並沒有發現有什么特別的優勢,特別是如果引入Flex將不必要的加大flash文件的大小,所以計划使用純AS3.
AS3:
ActionScript3(AS3)類庫學習之(一)——Object基本對象
ActionScript3(AS3)類庫學習之(二)——掌握Array和Vector數組操作
ActionScript3(AS3)類庫學習之(三)——靈活操作XML
ActionScript3(AS3)類庫學習之(四)——Event事件和定制自己的Event
ActionScript3(AS3)類庫學習之(五)——EventDispatcher事件分發和監聽
ActionScript3(AS3)類庫學習之(六)——用Point和Rectangle進行計算
ActionScript3(AS3)類庫學習之(七)——Transform二維平面轉換
ActionScript3(AS3)類庫學習之(八)——自定義上下文菜單
ActionScript3(AS3)類庫學習之(九)——響應鼠標和鍵盤
ActionScript3(AS3)類庫學習之(十)——DisplayObject等顯示對象基類
ActionScript3(AS3)類庫學習之(十一)——Graphics類
ActionScript3(AS3)類庫學習之(十二)——BitmapData類
ActionScript3(AS3)類庫學習之(十三)——使用合適的顯示子類
AS3語言注意事項匯總(不定期更新)
Flex:
Flash的控件庫(不定期更新)
2.確定客戶端Flash開發工具
Flash開發工具決定使用flashdevelop,因為用慣了VS,感覺這個比Flash CS更符合自己的開發習慣。
flashdevelop使用中遇到的問題匯總(不定期更新)
3.AS3框架的研究
看了pureMVC,對我來說,感覺從這個框架主要學到的是listNotificationInterests方法,這個方法列出的是一個Mediator關注的信息,當每個Mediator被加入系統中時,系統都會通過listNotificationInterests方法查看該Mediator關注哪些消息,並將Mediator加入相應的觀察者中,將其handleNotification方法注冊為其關注的消息的處理函數。
看了IOC框架SwiftSuspenders,這個框架讓我發現了describeType函數的妙用,框架在getInjectionPoints函數中利用describeType函數來獲取類的內容,並進行解析以實現自動獲取注入點。
看了RobotLegs,感覺這個框架的亮點是充分運用SwiftSuspenders實現了系統的自動化,通過映射Mediator和view component,能夠在view component被加入view list中時自動創建相關聯的Mediator。
AS3的通用框架暫時就准備看這幾個了,不知道還有什么更值得學習的沒有呢?
4.客戶端game框架研究
游戲引擎PushButtonEngine:從這個引擎主要學到的就是引入一套循環機制來控制需要循環顯示或者執行的對象,其中的一些模塊也可以借鑒。
Ash:這是一套基於數據的游戲引擎,對於一個游戲來說,速度是很重要的,從這個引擎學到了基於數據比基於對象速度要快。
Starling-Framework:利用Stage3D進行GPU繪圖的渲染引擎,因為其結構和API與AS3類庫本身相近而易於使用。近期不打算研究其內部實現,可以先直接將其用作游戲的渲染引擎,只要會用就行。
可用的參考文章:
http://www.cnblogs.com/tankaixiong/archive/2012/11/28/2792047.html
http://www.cnblogs.com/zhouyuanzhong/archive/2012/12/11/2812543.html
http://www.cnblogs.com/sevenyuan/archive/2013/01/10/2854406.html
http://www.cnblogs.com/hisiqi/archive/2013/01/01/2841251.html
http://www.cnblogs.com/physwf/archive/2012/11/19/2776637.html
Box2DFlash:是由一個C++的物理引擎Box2D改寫的Flash版本,Box2D被改寫成了多個語言版本,應該是個很強大的物理引擎。近期不打算研究其內部實現,如果寫游戲的時候需要物理引擎的話,可以先直接將其用作游戲的物理引擎,只要會用就行。
別人整理的Box2D的學習文章
還有什么推薦的么?
5.學習別人的game
下了一款別人的game,用閃客精靈反編譯,結果因為那個game里面設置了如果不滿足某條件會頻繁的打開某網頁,直接把閃客精靈都弄崩了。這款游戲采用了多層的保護,
a.Loading設置條件,不滿足條件則頻繁打開網頁。
b.Loading采用奇異字符,且增加多種無用函數,以增加閱讀難度。
c.用byteArray的形式加載主game程序
d.主game程序用無意義的名稱做類名等。
雖然最后得到了主game,但是覺得看這個game花的功夫太大了,放棄。主要收獲是了解了game保密的一些方法。
TODO
6.研究提高flash效率的方法
flash性能優化方案整理(不定期更新)
7.研究游戲的復雜度
a.3D的肯定不行,第一,我自己的眼睛就受不了3D的界面,第二,開發的復雜度飆升啊
b.2D的,需要實現地圖,人物動作動畫等,可以試着實現一個小地圖和人物動畫看看自己能做出來不,花費的時間等情況。感覺這種更有可玩性,但是精力有限啊。
c.最簡單的,不需要地圖,只需要一個個場景圖片,最難的可能就是做一下戰斗時的小動畫,這個應該能實現。
在b,c之間糾結。
TODO
8.游戲服務器框架的研究
a.Pomelo,大公司出的游戲框架,品質應該有保證,不過其采用node.js,應該是很好用,但是貌似看到過其性能不怎么樣。
b.C#,一個比較熟悉的語言,就是不知道有沒有什么成熟的框架,求推薦。
c.C++,效率高,但是很多東西都需要自己寫,不知道有沒有什么成熟的框架,求推薦。
d.Erlang,據說是面向並發性的?很適合開發服務器,不過需要重新學,不知道有沒有什么成熟的框架,求推薦。
TODO
9.游戲的各種設定
人物屬性,寵物屬性,升級方式,裝備強化,技能,武功秘籍等等
TODO
10.程序的設計與實現
TODO
11.游戲情節主線,副線等的設計
TODO
12.營銷方式的研究
TODO