謹以此博記錄個人遊戲開發路程,進度將不按期在此文中更新。html
想要開發一個網頁遊戲,下面是個人計劃:node
1.客戶端計劃用flash語言,因此須要先學習AS3和Flex。git
目前AS3已經大體學完,對Flex也有必定的瞭解,由於在學Flex的過程當中,感受Flex更適合作一些Form,而在繪製遊戲界面並無發現有什麼特別的優點,特別是若是引入Flex將沒必要要的加大flash文件的大小,因此計劃使用純AS3.github
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