關於web遊戲的搭建

houzhe11發表於2012-01-18
去年10月份搭建的一個專案,,開發已經有3個月了。。但總是擔心效能問題。希望板橋老師給點建議。
專案中前臺使用的為as3(flash),java後臺的搭建為ibatis2.0,servlet,spring2.0
前臺與後臺的通訊是透過json格式。
遊戲的靜態資料都是放到excel中,專案啟動的時候放入記憶體,儲存到map中。大約有20張excel檔案,10w條資料。。
程式碼的分層:dao層,負責處理資料庫操作,
service層,負責業務邏輯處理,將dao引入service。透過spring注入。
servlet層,用於接收前臺傳過來的請求,響應請求。說明一下,我們的所有的請求都是配置在資料庫中的,,也是在遊戲啟動的時候,將資料庫中的請求配置一次性讀入到記憶體中。。
由於是使用ibatis,我沒有自己寫sql語句,是使用了eclipse的外掛ibator來自動生成的ibatis配置檔案和dao的,可能比較少使用多表查詢,而是使用單表查詢。。
我們對外就公佈一個請求地址,例如:
http://119.57.21.197:9170/zombietown/zombie.do,我們是根據請求的一個引數command,來與資料庫中的一條記錄對應,從而透過反射方式來找到對應的servlet中的方法。。不曉得反射對效能影響大嗎?
這款遊戲的核心是任務系統與寶箱系統,也是在效能這塊,我比較擔心的。。
任務系統,需要記錄遊戲中的每一步的操作,比如:任務的需求為用手槍殺死6只程式設計師殭屍,,我目前的實現為同過AOP攔截所有的請求,找到打殭屍的命令號,然後分析其中響應給前臺的引數。
必需為手槍,必需要殺死,,而且必需為程式設計師殭屍,,打了以後,要記錄到使用者任務資訊表中。。那任務資訊表就應該是頻繁的操作了。。。
。這個攔截器,處理的業務邏輯很多,,怕人數一多,,有問題。。[目前的需求是確保玩家同時線上人數為2W]。。
寶箱系統,每殺一個殭屍,掉落的東西都不一樣,,用到了寶箱配置機制。。
比如打程式設計師殭屍,10%的機率掉2點金幣,20%的機率掉5點經驗,50%機率掉1點行動力,30%的機率掉4點金幣。。由於打殭屍是玩家玩遊戲的核心。。所以當心開寶箱的效能問題。。
希望板橋老師給點意見。。
最近半個月我也一直在jdon上面看文章,,在公司負責這個小專案也是第一個負責的專案。
來到jdon,感覺發現了新大陸一般,不但從思維還是思想都有些轉變。。
可能自己的學習技巧有問題或者理解上面有問題,,你的那個SimpleJdonFrameworkTest專案還沒有完全弄明白,,jivelive部署還有點問題。。

[該貼被houzhe11於2012-01-18 11:23修改過]

[該貼被houzhe11於2012-01-18 11:27修改過]

相關文章