一、背景和目標
當年大三的時候寫了個五子棋世界,就是qq game那種大廳-房間-桌子(我只有簡單邏輯的五子棋)。畢業后一直想找個時間來重構它,后來有次下決心看了下代碼,有點兒不知所措,你懂的,:D,還不如重寫。
現在對go很感興趣,準備用go來實現以前的開源夢。就先已以前的五子棋世界那種休閑游戲平臺來開始練手吧。
目標暫時不定的太大,基本實現大廳-房間-桌子-游戲就行了,慢慢重構慢慢完善。
二、服務器架構
基本架構參照之前給公司項目做的架構。當架構有改變時,及時修改這篇博客,或者新博客與這篇相互引用和注解。
不同的部分,加個大廳,大廳里顯示房間狀態,這樣玩家就自己選擇閑的房間去玩,這樣就不需要做負載均衡的算法了。
(一)賬戶系統
游戲自身不做賬號密碼這種用戶系統,只用第三方的賬戶,如微博賬戶等來連接到我們游戲。或者更簡單點,這塊兒只模擬下微博等第三方用戶系統的登陸了。
第三方賬戶連接到我們游戲,我們本地只由自增長的uid生成器來生成一個int的uid即可,將第三方的platformUid和我們的localUid做個關聯映射。
(二)大廳
大廳可以做成短連接,玩家選擇游戲及房間的時候才去大廳刷新下當前的各房間負載情況。
二、客戶端
用walk。(待詳細規劃)