日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

拿到一套游戲服務(wù)端源碼,該從哪看起?

 勤奮不止 2019-07-31
 開發(fā)游戲服務(wù)端,經(jīng)常要接觸一套全新的游戲代碼。接觸新代碼貫穿于整個(gè)工作生涯,比如,作為剛?cè)肼毜男氯?,要去熟悉?xiàng)目代碼,盡快上手工作;調(diào)到一個(gè)新的項(xiàng)目組工作時(shí),要熟悉已有代碼;給項(xiàng)目組做技術(shù)指導(dǎo)時(shí),也需要了解原有的寫法。

然而看懂一套自己并不熟悉的代碼并不容易。其一是時(shí)間有限,工作中往往要求能夠快速上手;其二是新代碼往往包含自己一些知識(shí)盲區(qū),需要學(xué)習(xí)。于是編寫此文,總結(jié)一套看代碼的方法和流程,以供參考。

第一步:看角色邏輯的編寫方式

游戲服務(wù)端的最核心功能就是處理玩家邏輯,可以先從單服的邏輯看起。比如看看背包模塊、簽到模塊的編寫方式,從而理解游戲的邏輯組織。

一般而言,玩家邏輯會(huì)涉及如下圖的幾個(gè)部分,看代碼時(shí)可以按照模塊生命周期的流程跟著。當(dāng)玩家上線時(shí),需要加載數(shù)據(jù);然后處理客戶端協(xié)議;下線前需要保存數(shù)據(jù)。按照這個(gè)順序,看看每個(gè)步驟的寫法。


看過幾個(gè)模塊后,便可以仿寫一些簡(jiǎn)單的功能邏輯。對(duì)游戲公司,這也是培養(yǎng)新人時(shí),前期的要求。

第二步:看玩家上線到下線的整個(gè)流程

玩家從連接服務(wù)端,到他退出游戲,中間一般會(huì)經(jīng)歷如下圖的流程。

(圖片來源,《Unity3D網(wǎng)絡(luò)游戲?qū)崙?zhàn)(第2版)》第七章通用服務(wù)端框架)

跟完這個(gè)流程,基本可以明白整個(gè)服務(wù)端的邏輯架構(gòu)。比如有些游戲服務(wù)端在gateway中處理連接,然后交由login服處理登錄,再交給game服處理游戲邏輯,可能還會(huì)有db服處理數(shù)據(jù)庫(kù)的讀取。那么,一步步的跟進(jìn)這個(gè)流程,就能夠把服務(wù)端各個(gè)部分的職能給聯(lián)系起來,也能夠解決一些游戲流程的問題。

第三步:看戰(zhàn)斗邏輯的實(shí)現(xiàn)

游戲中的一些核心功能,比如地圖、戰(zhàn)斗往往較為復(fù)雜,還可能涉及跨服。看這部分代碼的目的是從之前只能開發(fā)一些簡(jiǎn)單的通用功能,擴(kuò)展到能夠開發(fā)核心功能。

舉例來說,比如某款游戲的戰(zhàn)斗流程可能如下圖。當(dāng)玩家進(jìn)入匹配時(shí),游戲服會(huì)把玩家的一些信息發(fā)到匹配服去做匹配;當(dāng)匹配成功,服務(wù)端會(huì)創(chuàng)建一個(gè)戰(zhàn)斗服,然后參與戰(zhàn)斗的各個(gè)玩家切到戰(zhàn)斗服去戰(zhàn)斗。


那么要關(guān)注的地方就有各個(gè)服務(wù)的職能是什么,它們間的數(shù)據(jù)傳輸流程,以及傳輸了哪些數(shù)據(jù)。進(jìn)而還需要了解角色在戰(zhàn)斗服中的邏輯,比如戰(zhàn)斗開始、戰(zhàn)斗結(jié)束的處理,放技能傷害的計(jì)算。

第四步:技術(shù)實(shí)現(xiàn)細(xì)節(jié)

游戲服務(wù)端涉及的內(nèi)容其實(shí)很多,在按照以上三個(gè)步驟看代碼后,基本就能夠在這套代碼的基礎(chǔ)上做開發(fā)。但如果要修改一些底層功能,或者做性能優(yōu)化,就要更加深入的看代碼。

一般而言,以下的三個(gè)模塊是重點(diǎn),可以優(yōu)先了解。


網(wǎng)絡(luò)作為服務(wù)端的重點(diǎn)模塊,可以了解該框架采用什么方式處理多路連接,了解協(xié)議的設(shè)計(jì)。磁盤IO可能會(huì)是服務(wù)端的性能瓶頸,一般會(huì)通過緩存機(jī)制來緩解,要了解服務(wù)端的存儲(chǔ)結(jié)構(gòu),知道保存著什么數(shù)據(jù)以及怎樣保存。手游很注重?zé)岣鹿δ?,作為保持服?wù)器穩(wěn)定的一個(gè)重要手段,但做好熱更新并不容易,可以了解框架的熱更方案。

經(jīng)由以上幾步,應(yīng)能夠了解一套服務(wù)端代碼,能在它的基礎(chǔ)上編寫邏輯,改動(dòng)底層功能。

作者:羅培羽

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多