本文主要介紹游戲服務(wù)端開(kāi)發(fā)教程(游戲服務(wù)端框架有哪些),下面一起看看游戲服務(wù)端開(kāi)發(fā)教程(游戲服務(wù)端框架有哪些)相關(guān)資訊。
經(jīng)常聽(tīng)說(shuō)有人打算自學(xué)技術(shù),然后做一個(gè)單機(jī)游戲,但是很少聽(tīng)說(shuō)有人自己做了一個(gè)網(wǎng)游。除了工作量大,服務(wù)器的門(mén)檻也是原因之一。
相比游戲客戶(hù)端,游戲服務(wù)器更難上手。原因如下:第一,客戶(hù)端引擎和工具比較完善統(tǒng)一,學(xué)習(xí)資料很多,而服務(wù)器至今沒(méi)有很強(qiáng)的解決方案,都是自己的一套項(xiàng)目,很多都缺少文檔;第二,犯錯(cuò)的風(fēng)險(xiǎn)更大。
尤其是對(duì)于網(wǎng)絡(luò)游戲,bug的危害比客戶(hù)端bug更大;再次,服務(wù)器的開(kāi)發(fā)涉及很多技術(shù)領(lǐng)域,不直觀,增加了開(kāi)發(fā)難度。
交叉層次多,導(dǎo)致知識(shí)盲區(qū)大。
從技術(shù)角度來(lái)說(shuō),門(mén)戶(hù)服務(wù)器的難點(diǎn)在于需要跨越更多的技術(shù)層面。下面是服務(wù)器端程序的一種分層,這里我分為六層。在實(shí)際項(xiàng)目中,有些層的內(nèi)容往往較少,不會(huì)單獨(dú)分開(kāi),但邏輯分層大體相似。
這六層是基礎(chǔ)層核心層框架層邏輯底層邏輯中間層邏輯頂層,每層的內(nèi)容如下:
基礎(chǔ)層
數(shù)學(xué)庫(kù),數(shù)據(jù)結(jié)構(gòu),緩沖區(qū),字符串處理,json等。
核心層
網(wǎng)絡(luò)庫(kù)、數(shù)據(jù)庫(kù)、協(xié)議編解碼、定時(shí)器
框架層
分布式結(jié)構(gòu)、消息分發(fā)、熱更新、數(shù)據(jù)持久化
邏輯底層
登錄,實(shí)體,離線(xiàn)消息,黑名單,aoi算法。
邏輯中間層
項(xiàng)目、公告、電子郵件、聊天、頭銜、成就、排行榜、登錄和首次充電。
邏輯上層
戰(zhàn)斗,收到
這六層加上一些運(yùn)維知識(shí),構(gòu)成了游戲服務(wù)器技術(shù)的知識(shí)結(jié)構(gòu)。對(duì)于剛畢業(yè),或者剛接觸服務(wù)器開(kāi)發(fā)的同學(xué),現(xiàn)有的知識(shí)結(jié)構(gòu)一般如下圖所示。下圖顯示了一般計(jì)算機(jī)相關(guān)專(zhuān)業(yè)畢業(yè)生可能掌握服務(wù)器開(kāi)發(fā)知識(shí)的程度。
大多數(shù)學(xué)校課程側(cè)重于基礎(chǔ),因此合格的畢業(yè)生一般都有很好的基礎(chǔ),尤其是在數(shù)學(xué)、操作系統(tǒng)、數(shù)據(jù)結(jié)構(gòu)和算法方面。學(xué)校一般會(huì)開(kāi)設(shè)網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)等課程,如果參加科技項(xiàng)目,可能也會(huì)用到。
所以畢業(yè)生對(duì)核心層的知識(shí)接觸很少;因?yàn)樵趯W(xué)校能寫(xiě)一些程序或者課程作業(yè),一般有簡(jiǎn)單邏輯實(shí)現(xiàn)的基礎(chǔ),所以邏輯的中級(jí)水平也略有接觸。而其他三層與游戲業(yè)務(wù)密切相關(guān),一般聯(lián)系不多。
為什么不輕松自學(xué)?
經(jīng)常聽(tīng)說(shuō)某某通過(guò)策劃自學(xué)技術(shù)做了一個(gè)好玩的單機(jī)游戲,但是很少聽(tīng)說(shuō)自學(xué)服務(wù)器誰(shuí)做的好。除了即使做出來(lái)也不能直接給別人看的原因。漫長(zhǎng)的學(xué)習(xí)過(guò)程是自學(xué)不容易的主要原因。如下圖,要做好服務(wù)器開(kāi)發(fā),
可能需要先學(xué)習(xí)socket和網(wǎng)絡(luò)協(xié)議,然后在此基礎(chǔ)上搭建服務(wù)器,再實(shí)現(xiàn)各種功能。
但是核心層的知識(shí),比如網(wǎng)絡(luò)、數(shù)據(jù)庫(kù),包含的內(nèi)容比較多,而且如果要做到高效率、不出錯(cuò),需要學(xué)習(xí)很多內(nèi)容。比如網(wǎng)絡(luò),先丟幾本書(shū),很厚。
比如數(shù)據(jù)庫(kù),再丟一本書(shū),還是很厚。
這就導(dǎo)致了學(xué)習(xí)的流程很長(zhǎng)。以看書(shū)學(xué)習(xí)為例,如果學(xué)客戶(hù)端,可能看到第一章就能做個(gè)五子棋,看到第二章就能做個(gè)貪食蛇,以此類(lèi)推,每一步都能出點(diǎn)成果。而如果看服務(wù)端的,那就完了,可能先啃個(gè)200頁(yè)的基礎(chǔ),
啥都做不出來(lái),等看到300頁(yè)才做個(gè)很基礎(chǔ)的,這對(duì)自學(xué)是非常打擊的。
游戲公司怎樣培養(yǎng)人新人
如果是比較成熟的游戲公司,會(huì)有一套帶新人的體系。一般而言,會(huì)從業(yè)務(wù)需求出發(fā),先讓新人接觸簡(jiǎn)單的業(yè)務(wù)邏輯,再逐步涉及復(fù)雜的業(yè)務(wù),當(dāng)熟悉業(yè)務(wù)后可能會(huì)嘗試一些改動(dòng)框架底層的任務(wù),以提升技術(shù)水平。
這樣每次學(xué)習(xí)基本只需學(xué)習(xí)一個(gè)層次的知識(shí),減少了難度。
如下圖,在一開(kāi)始時(shí)接觸較為簡(jiǎn)單的業(yè)務(wù),那么只需仿照邏輯中層的已有代碼,稍微熟悉支撐它的邏輯底層即可。對(duì)于復(fù)雜的核心層、框架層無(wú)需學(xué)會(huì),減少了入門(mén)難度。
但也由于業(yè)務(wù)層不太涉及核心層和基礎(chǔ)層,某些公司不太注重長(zhǎng)期的人才培養(yǎng),僅培養(yǎng)到“能開(kāi)發(fā)業(yè)務(wù)”這層就停止。對(duì)于新人,核心層與基礎(chǔ)就要靠自己學(xué)習(xí)。業(yè)務(wù)層的編寫(xiě)更多是模仿能力,仿照已有的代碼改動(dòng),
而核心層會(huì)涉及一些底層的知識(shí)。
對(duì)比于從基礎(chǔ)開(kāi)始的自學(xué),公司培養(yǎng)模式的學(xué)習(xí)曲線(xiàn)如下圖的橙色線(xiàn),學(xué)習(xí)一點(diǎn)就能出一點(diǎn)輸出。而自學(xué)曲線(xiàn)如藍(lán)色線(xiàn),要花上較長(zhǎng)時(shí)間才有輸出。
另一方面,某些游戲公司會(huì)給程序員評(píng)級(jí),比如從初級(jí)程序、核心程序一直到行業(yè)專(zhuān)家。
其中一種等級(jí)劃分方法是根據(jù)能夠解決問(wèn)題的范圍而定。如下圖,具體來(lái)說(shuō)能夠解決部分業(yè)務(wù)問(wèn)題的是初級(jí)程序員,能夠解決所有業(yè)務(wù)問(wèn)題的是核心程序員,能夠解決所有技術(shù)問(wèn)題的是副主程,
能夠在解決所有技術(shù)問(wèn)題并能夠管理團(tuán)隊(duì)的是主程,能解決任何問(wèn)題的是行業(yè)專(zhuān)家。
盡管要2年后才動(dòng)筆,作為后續(xù)服務(wù)端書(shū)籍的調(diào)研,一套好的教程應(yīng)當(dāng)有好的流程,從游戲公司的培養(yǎng)模式上汲取經(jīng)驗(yàn),能夠讓讀者看一點(diǎn)就能輸出一點(diǎn)成果,盡量避免看到最后才能做點(diǎn)東西。另,
筆者的《unity3d網(wǎng)絡(luò)游戲?qū)崙?zhàn)(第二版)》 詳解了一套簡(jiǎn)易服務(wù)端的實(shí)現(xiàn),歡迎關(guān)注。
怎么把蘋(píng)果手機(jī)視頻倒入電腦(蘋(píng)果手機(jī)視頻導(dǎo)入電腦)
電腦固態(tài)硬盤(pán)哪個(gè)盤(pán),懂電腦的大佬幫忙看看 固態(tài)在哪個(gè)盤(pán)里
阿里旺旺電腦版登錄(阿里旺旺有電腦版嗎)
小米4c手機(jī)忘記解鎖圖案怎么辦,小米手機(jī)忘記賬號(hào)密碼怎么解鎖
光貓可以直接連電腦嘛(電腦能直接連接光貓嗎怎么連接光貓)
游戲服務(wù)端開(kāi)發(fā)教程(游戲服務(wù)端框架有哪些)
硬盤(pán)誤格式化后能不能恢復(fù)文件夾,電腦硬盤(pán)能不能格式化
僅還原系統(tǒng)設(shè)置項(xiàng)可以還原系統(tǒng)么(什么叫僅還原系統(tǒng)設(shè)置項(xiàng))
固態(tài)硬盤(pán)和機(jī)械硬盤(pán)差價(jià),夠用固態(tài)硬盤(pán)比機(jī)械硬盤(pán)貴不了多少為什么
safari怎么設(shè)置一窗口多頁(yè)面手機(jī),safari瀏覽器怎么設(shè)置一窗口多網(wǎng)頁(yè)
深圳賣(mài)美版手機(jī)怎么樣啊,深圳市福田區(qū)華強(qiáng)北賽格廣場(chǎng)7A011賣(mài)的手機(jī)好嗎
戴爾電腦怎樣截屏快捷方式(戴爾電腦怎么截屏幕快捷鍵)
聯(lián)想電腦特約維修站在哪里,山西晉中靈石的聯(lián)想電腦特約維修站在哪
iphone 13的尺寸(iphone 13的尺寸大小)
環(huán)境設(shè)計(jì)專(zhuān)業(yè)用什么筆記本電腦好,我是學(xué)環(huán)境設(shè)計(jì)專(zhuān)業(yè)的 不知道買(mǎi)什么筆記本好
win7隱藏文件后綴名(win7的后綴名怎么顯示)
硬盤(pán)上主板能換嗎,硬盤(pán)的主板可以換嗎
組裝電腦都需要買(mǎi)什么,組裝電腦都要買(mǎi)什么
美圖m6s怎么樣root,美圖公司怎么樣
電腦應(yīng)用程序發(fā)生異常0xc06d007e(應(yīng)用程序發(fā)生異常0xc000417)