技術路線

開發(fā)語言

服務器和客戶端都使用typescript來開發(fā),并且雙端使用同一種語言可以共享邏輯代碼流强。
typescript是javascript的超集汤善,最終會編譯成javacsript使用,在大型項目的體驗遠勝過javascript野宜。

開發(fā)框架和引擎

客戶端采用laya引擎
服務器采用nodejs
兩端通過socket.io來通信太防,保持長鏈接妻顶。
因為微信小游戲必須是https的連接,用nginx做了反向代理杏头。

服務器拓撲

層級圖如下:


層級拓撲.jpeg

TopCenter: 集群中心(唯一)
Center:中心(一臺物理機器一個)
Game:游戲服務器(一般一臺物理機器可以開多個)
Gate:網關(和客戶端通信,一般一個游戲開2個足夠)
nginx: 反向代理盈包。

服務器集群

分為三個集群:測試沸呐,提審醇王,正式;這三個集群不互通包括數(shù)據(jù)庫崭添。
對應微信小游戲的后臺就是體驗寓娩,提審和正式。
測試服是可以使用GM命令來測試的呼渣,并且充值任何都是1塊錢(省錢)棘伴。
提審和正式則沒有。
通過正式集群數(shù)據(jù)庫的版本號的配置屁置,來確定客戶端登入哪一個集群焊夸。

服務器壓力測試

采購騰訊云4核(2.7/3.3GHZ)16GB的服務器,承載5000人
此時cpu大概在50%蓝角,內存占25%
每個服務器進入1500人阱穗,那么峰值一般在300-500,那么1臺機器可以開10臺服務器使鹅。隨著時間過去揪阶,人數(shù)減少,一臺物理服務器可以承載更多患朱。

自動開服

一般在一臺云服務器配置10個游戲服務器(game)鲁僚,在數(shù)據(jù)庫配置好這些服務器的開服時間,到了時間才能被客戶端檢索到裁厅,也就自動開了冰沙。
客戶端選擇服務器的邏輯是,有登錄就進最近的登錄的游戲服执虹,否則就進最新開的服務器拓挥。

數(shù)據(jù)庫

TopCenter集群中心用mysql數(shù)據(jù)庫,每日自動備份
Center用levelDB數(shù)據(jù)庫声畏,因為levelDB是文件數(shù)據(jù)庫撞叽,只能在每次重啟時備份姻成。

服務器維護

正式服維護,就是把提審服的代碼同步到所有物理機器愿棋。
使用nodejs的pm2作為運維工具科展,可以做到秒級的重啟。
但是游戲內的玩家需要存檔糠雨,預計要幾分鐘才睹。
并且Center用levelDB數(shù)據(jù)庫是文件數(shù)據(jù)庫,不能熱備甘邀,只能重啟時備份琅攘。
所以一般的服務器更新需要半個小時左右。

客戶端版本管理

客戶端只有一條主干松邪,并沒有使用分支開發(fā)坞琴。
新開發(fā)的功能在數(shù)據(jù)庫屏蔽掉其入口即可,如果放出逗抑,只需要解除屏蔽即可剧辐。

GM權限

在測試服GM可以使用GM指令。
在正式服的服務器列表邮府,GM可以看到所有服務器荧关,也可以進入未到開放時間的服務器,不受開服時間的限制褂傀。

一些特殊的機制

相同的游戲角色忍啤,新的會頂?shù)襞f的登錄,比如網頁微信會頂?shù)羰謾C微信仙辟。
角色離線后同波,三十分鐘會踢出游戲(此時再重連會回到登錄)。
ios離開(息屏欺嗤,切換等)超過10秒参萄,會立即重連服務器。(ios網絡斷線難以判定煎饼,比較粗暴的做法讹挎。)
充值付費領取的獎勵,必須手動點掉吆玖,這次不點下次上線會再次彈出筒溃。(防止玩家誤判)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市沾乘,隨后出現(xiàn)的幾起案子怜奖,更是在濱河造成了極大的恐慌,老刑警劉巖翅阵,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件歪玲,死亡現(xiàn)場離奇詭異迁央,居然都是意外死亡,警方通過查閱死者的電腦和手機滥崩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進店門岖圈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人钙皮,你說我怎么就攤上這事蜂科。” “怎么了短条?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵导匣,是天一觀的道長。 經常有香客問我茸时,道長贡定,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任屹蚊,我火速辦了婚禮厕氨,結果婚禮上进每,老公的妹妹穿的比我還像新娘汹粤。我一直安慰自己,他們只是感情好田晚,可當我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布嘱兼。 她就那樣靜靜地躺著,像睡著了一般贤徒。 火紅的嫁衣襯著肌膚如雪芹壕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天接奈,我揣著相機與錄音踢涌,去河邊找鬼。 笑死序宦,一個胖子當著我的面吹牛睁壁,可吹牛的內容都是我干的。 我是一名探鬼主播互捌,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼潘明,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了秕噪?” 一聲冷哼從身側響起钳降,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎腌巾,沒想到半個月后遂填,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體铲觉,經...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年吓坚,在試婚紗的時候發(fā)現(xiàn)自己被綠了备燃。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡凌唬,死狀恐怖并齐,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情客税,我是刑警寧澤况褪,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站更耻,受9級特大地震影響测垛,放射性物質發(fā)生泄漏。R本人自食惡果不足惜秧均,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一食侮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧目胡,春花似錦锯七、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至巨双,卻和暖如春噪猾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背筑累。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工袱蜡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人慢宗。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓坪蚁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親婆廊。 傳聞我的和親對象是個殘疾皇子迅细,可洞房花燭夜當晚...
    茶點故事閱讀 45,047評論 2 355

推薦閱讀更多精彩內容