完成以精武館平臺為中心的跨域登錄模塊。
精武館圍棋譜頁面重新設計
20100810
一個重要的計劃正在實施!
精武館第一個生產版本,與2010-08-08上線
20100808
圍棋打譜加入聲音
修復圍棋幾個bug
20100807
圍棋模塊新增功能:
1. 進入點目模式后,啟動Timer,2分鐘后自動完成點目,每30秒提醒一次
2. 完成點目時,有30秒的時間選擇是否接受點目結果,30秒后自動選擇繼續走棋
3. 一個請求(求和,點目,悔棋),如果被拒絕,則本輪無法再發起該請求
20100802
精武館已經通過所有重要測試:
1. 客戶端:
1). 無內存泄露
2). 即便是IE6,也不會很卡
3). 主流瀏覽器兼容
2. 服務器端:
1). 以房間為單位的服務器集群,可容納至少10萬人同時在線
2). 在百萬級數據下所有查詢操作均在0.2秒以內(未測試千萬數據)
3). 緩存,全文檢索均工作正常,并能很好的緩解數據庫壓力
20100801
Hibernate Search大數據手動建立索引
數據庫:Mysql
64萬條數據,創建索引結果:



創建索引的代碼:







配置:



































jvm參數:






由于用的筆記本,因此各項參數都不高,整個重建過程,jvm內存使用率一直徘徊在250m左右
20100726
一段oracle造數據的存儲過程
create or replace
PROCEDURE "data_gen" IS
buid varchar2(32);
huid varchar2(32);
BEGIN
For m In 1..100 Loop
select dbms_random.string('X',32) into buid from dual;
select dbms_random.string('X',32) into huid from dual;
For i In 1..1000 Loop
INSERT INTO big_test
(gID,
bUID,
hDATE,
hUID,
)
VALUES
((select dbms_random.string('X',32) from dual),
buid,
sysdate,
huid,
);
End Loop;
commit;
End Loop;
END "data_gen";
PROCEDURE "data_gen" IS
buid varchar2(32);
huid varchar2(32);
BEGIN
For m In 1..100 Loop
select dbms_random.string('X',32) into buid from dual;
select dbms_random.string('X',32) into huid from dual;
For i In 1..1000 Loop
INSERT INTO big_test
(gID,
bUID,
hDATE,
hUID,
)
VALUES
((select dbms_random.string('X',32) from dual),
buid,

sysdate,

huid,

);
End Loop;
commit;
End Loop;
END "data_gen";
20100725
配置好“精武館客服”(support # jingwuguan.com)郵箱
一段mysql造數據的存儲過程

























































20100724
1. 郵件服務器搭建完成;
2. 完成3個郵件模板:
注冊后的歡迎與激活郵件
密碼重置郵件
激活碼重置郵件
3. 已測試郵箱:
126, gmail, hotmail, 2個企業內部郵箱
20100712
加強事務處理
配置二級緩存
增加一些小細節,比如個人信息修改,圍棋耍賴投訴等
20100615
頁面方面的性能測試,主要是測試當房間中玩家較多的情況下,高密度的頁面dom操作對性能的影響。
房間數據:房間包含50張桌子,每張桌子2個座位,房間可容納最多130個玩家。
1. 開啟150個線程,每個線程模擬一個玩家,分別每隔2秒和5秒進行一次進入/離開房間
2. 開啟150個線程,每個線程模擬一個玩家,分別每隔2秒和5秒進行一次坐下/站起
測試瀏覽器:ie8, firefox3.6
ie的性能表現比較糟糕,FF還比較平穩,總體來說,在真實的環境中,即使房間人數爆滿,瀏覽器表現應該會比較平穩。
20100521
添加jquery element的remove替代方法,在child div較多的情況下,可提升性能數十倍。
20100516
解決內存泄露問題(sIEve-0.0.8 + ie)
1. Test Case: 進入房間,刷新頁面100次,memory usage曲線平穩,無dom leak
2. Test Case: 進入/離開 房間100次(頁面不刷新),memory usage曲線平穩,無dom leak
3. Test Case: 坐下/站起(打開/關閉圍棋窗口) 100次(頁面不刷新),memory usage曲線平穩,無dom leak
jquery的ajax調用代碼段有內存泄露(jquery1.4.2)










20100504
視頻:如何搭建本地平臺開發環境
http://video.jingwuguan.com/public/builddevplatform/builddevplatform.html
20100503
介紹精武館的視頻制作完成
part1: http://video.jingwuguan.com/public/intro/part1web/part1web.html
part2: http://video.jingwuguan.com/public/intro/part2web/part2web.html
20100418
打包環境已創建完成
20100330
開發者論壇:https://groups.google.com/group/jingwuguan
![]() |
Subscribe to 精武館開發者論壇 |
Email: |
Visit this group |
20100316
平臺的抽象層代碼基本完成了,接下來是做一些項目管理的配套設施,包括清晰的模塊劃分,SVN,jira,論壇,mail等
其實這是一件非常有趣的事。
20100225
簡單的注冊登錄步驟必然能吸引更多玩家,因此精武館將允許玩家使用以下網站的ID登錄:
不過首次登錄還是需要填寫一些必要信息。
1. 使用google帳號
2. 使用msn帳號 - https://live.azure.com
3. 使用yahoo帳號 - http://developer.yahoo.com/social/updates/
4. 使用人人網帳號
20091230
精武館開始向開放式游戲平臺轉型,比原計劃要早,因為一個人開發進度太慢了,于是必須提前轉型。
精武館將為開發者提供以下資源:
1. 環境文檔,介紹精武館核心架構,介紹如何搭建開發環境和調試環境
2. java-api文檔,如何擴展使用精武館提供的各種java api
3. javascript-api文檔,如何擴展使用精武館提供的各種javascript api
4. 開放“圍棋”模塊源代碼以供開發者參考
5. 以maven依賴包的形式提供java api包
開發者可以根據以上資源自由開發游戲模塊,由精武館付費購買其源代碼。
20091223
利用googlecodes創建靜態資源的cache捷徑,表情和頭像等圖片資源,可以放到googlecodes上面(不是Hosting,兩者區別很大),然后在nginx中做代理和緩存配置,如下:
















20091222
javascript優化基本完成,IE8下所有操作不超過100ms
20091221
javascript優化:
優化前:build游戲大廳40個座位IE花費280ms,FF花費160ms
build空圍棋棋盤IE花費350ms,FF花費200ms
優化后:build游戲大廳60個座位IE和FF均花費60ms左右
build空圍棋棋盤IE和FF均花費30ms左右
目前javascript已接近產品響應級別。
在VM虛擬機下跑的IE6,測試效果不佳,有待優化。
20091217
圍棋游戲功能已經做好了,等待測試,接下來計劃2周內完成“觀戰”模式和開放服務——“打譜”。
20091210
開放式服務策略:
以精武館為例,目前可提供的開放式服務有
1. 棋類游戲打譜,客戶網站只需引入精武館相關棋類游戲模塊的打譜js,即可以在自己的網站上建立一個即時打譜的窗口。
2. 即時通信頻道,客戶網站只需引入精武館的及時通信js,即可以在自己的網站上建立一個類似在線客服的即時通訊窗口。
20091209
精武館首個即將開放的API——圍棋打譜api
它將幫助圍棋愛好者網站提供基于javascript/ajax的在線打譜功能,為圍棋愛好者提供更便捷的研究棋譜的方式。
例如: 某網站 http://www.go.com是一個棋譜搜集網站,它需要使用精武館的圍棋api實現在線打譜功能,只需要引入精武館的goapi.js,并以某棋譜的http絕對路徑為參數,創建并啟動apijs中的打譜對象,就可以實現在線打譜功能。
20091124
技術上已經可以實現以游戲模塊或房間為單位的分布式多機集群,基于web的游戲大廳完全可以模擬出基于客戶端的游戲大廳。
2篇Cometd的性能測試報告:
http://wiki.exoplatform.com/xwiki/bin/view/WS/Cometd+Cluster+Bench
http://cometdaily.com/2008/01/07/20000-reasons-that-comet-scales/
20091122
1. C-S通信做了些優化,目前只要能較快的打開國內各大門戶網站首頁,那么玩精武館就會很流暢。
2. 采用cookie來判斷登錄,不過由于后臺使用的是memcached作為用戶對象的集群緩存,目前可以提供的同步方法為:當用戶狀態改變時,及時更新緩存對象。
3. 頁面增加了一些元素,游戲結束時的計分部分(包含道具系統)已經差不多完工了,不過道具與積分/玩家的對象關系還需進一步改善。
4. 暫時取消google搜索框,它對頁面的打開速度有影響。
20091120
1. 加入后臺虛擬貨幣,積分,道具的對象系統
2. 網速過慢的客戶端,會導致Cometd重置與服務器之間的連接,產生新的ClientId,導致Channel無效,也就是收不到來自服務器的p2p消息
3. 精武館將能嵌入開放式平臺中(例如開心網或是Google Wave),使得玩家可以在它們之中任何一個平臺進入精武館游戲。
20091115
1. 優化ack通訊
2. 加入在線人數統計
3. 加入google自定義搜索,它將為站內搜索提供幫助
20091112
1. 修正了游戲窗口ID查找的bug
2. 玩家圍棋落子后,先顯示落子再提交ajax請求
3. 修正了斷開連接時多層彈出框
4. 取消了一個客戶端與服務器端的通道
20091111
圍棋:添加Pass
添加Ack擴展,可以支持離線消息以及server端丟包重發
修正了Cometd-js中Reload時Ack的一處小BUG
20091110
當游戲大廳的Cometd連接時才設置session過期時間,而不是登錄時,這樣可以防止登錄后進入大廳之時由于網速過慢而導致session過期,并且延長過期時間為20秒
取消了ajax request的10秒超時限制,因為在網速較慢的情況下,它的影響似乎很惡劣。
添加了與服務器失去連接時的提示,由于客戶端是無狀態的,可以任意刷新。
圍棋模塊需要先實現SGF導入,這樣可以方便測試點目,精武館圍棋的點目效果與QQ圍棋的點目效果差不多。
研究圍棋的SGF讀寫功能,發現應該為玩家提供這樣一個服務:可以創建自己的棋譜庫,可以方便的管理并使用它們,而該棋譜庫又是精武館的開放資源。
20091109
由于要限制一個賬號同時只能登錄一個實例,目前使用的是session,10秒后過期。實際上也可以用cookie,用戶登錄時生成一個隨機ID,存入memcached,不過這樣就沒有辦法知道用戶何時關閉瀏覽器,不過這是一個代替session集群的最佳方案,可以考慮。
本周的開發計劃為:完成圍棋模塊的基礎功能,包括:SGF讀入,點目,PASS,認輸。