c 遊戲服務端程式設計有什麼書籍推薦嗎?

時間 2021-05-09 19:46:56

1樓:青玉白露

這裡推薦兩本,一本是Linux高效能伺服器程式設計另一本是Unix網路程式設計。

看完這兩本書就可以考慮自己寫乙個web伺服器了,下面是乙個教程,可以學習一下:

青玉白露:TinyWebServer——從0到伺服器開發!

做了上面的這個專案之後,回答一些面試題:

青玉白露:Tinywebserver——伺服器常問面試題!

2樓:戀戀風辰

目前C++做伺服器,多用於高併發及時性強的領域,比如遊戲,金融等。而遊戲服務端程式設計主要是三個方面,網路,資料儲存,邏輯處理。後兩個方面各公司有不同的策略,可以進入公司再了解。

而遊戲伺服器程式設計的重中之重就是網路,如果你精通了Cpp網路程式設計,學習任何公司的框架都不成問題。下面著重講解如何高階網路部分。

先了解什麼使網路程式設計,簡單的實現TCP/UDP單執行緒阻塞程式設計。之後學會在accept時候開闢執行緒,多執行緒伺服器如何執行。了解這些之後,進一步學習I/O多路復用,epoll和select足夠了,遊戲伺服器目前都發布在linux上,所以主攻epoll模型,原理,了解如何註冊時間,epoll_wait丟擲事件。

windows上了解select即可。這個階段你要熟悉Cpp語法和基本的網路程式設計入門,推薦圖書為:

學習完這本書你就了解了cpp網路的基本原理和程式設計,下一步需要了解Reactor設計模式和Proactor設計模式,因為大部分遊戲伺服器都採用的是這兩種中的一種實現的。上面的書已經簡單講述了Reactor模式和Proactor模式。你需要結合實際的網路庫原始碼領悟了。

推薦你學習libevent和redis原始碼,有本文件是libevent原始碼分析,基於C實現的,但是思想採用的是Reactor模式。

文件連線:https://

blog.csdn.net/sparklian

g/article/details/4957667

我自己的C++伺服器程式設計總結: https://www.

基於Reactor實現的簡易伺服器框架

這些都學完了,接下來擴充你的眼界,繼續深化學習大神的網路程式設計思路和框架,推薦學習boost::asio,裡邊實現的是Proactor模式,將epoll和iocp封裝城跨平台的網路庫。學習位址,官方學習是最快的:

採用了C11,C03,C17分別實現了echo server,http,websocket等伺服器。我根據官方文件,做了乙個基於boost::asio的server,8000併發連線pingpong協議測試,10ms左右。

secondtonone1/boostserver

我封裝了tcp和websocket的解析和切包。感興趣可以看看。

接下來需要進一步拓寬自己的思路,繼續學習,推薦幾本優秀的資料,也是我在讀的圖書

陳碩老師結合工作實踐編寫的,五星推薦,非常優秀。

unix網路程式設計,套接字程式設計三本,有時間啃一啃,能填補自己思想和知識的不足。

做C++遊戲伺服器,網路是內功,懂得越多寫出來的框架就越熟練。目前各大遊戲公司都有自己的遊戲伺服器框架,不需要自己造輪子了,但是了解這些可以讓你更快速地熟悉伺服器執行流程。另外推薦幾個目前高效能的遊戲伺服器,樓主可以看看原始碼

開源伺服器框架,底層C++,上層用python寫邏輯即可,前後端通訊有自己的序列化和sdk

開源伺服器框架,底層C++實現,上層開發可用js,python,C++,C#等等。

接下來遊戲伺服器邏輯,如果採用C++編寫,就要熟悉stl基本的模板和容器,一些常用的單例模式等等。

資料庫方面,遊戲伺服器採用mongodb和mysql的較多,當然也有用redis做快取的。

祝樓主學習愉快,下面是我購買的一些教程,感興趣可以學習下

3樓:

如果你連C++工程的編譯執行都做不到,建議從C# (.net core)入手吧。

也許你很快就發現你這輩子都用不上C++呢。

以後碰上對執行效率要求極苛刻的情況,也可以用C++寫演算法,用C#呼叫。

學習C++最好的環境並不是看書,而是直接參與專案,這種上古語言,其實已經很少有什麼書能教你構建乙個好的工程了。合理的使用方式都在「苟存」的專案中,你如果沒有機會參與實際專案,還是使用其他語言,這樣能讓你有更多時間去接觸和學習語言之外的計算機知識。

如果你非要通過自學C++做專案,送你一句話:

皓首窮經,歲月蹉跎。

4樓:

最近進了個程式設計群, 被各種易語言的"程式設計師"震驚了.

開發就是買模組, 買買買....

如果你要速成, 直接易語言買模組哈哈哈, 好玩

5樓:

這個問題可以拆開看,學習C++和學習伺服器端程式設計,前者可看眾多的C++書,後者建議用Python這類易學易用的語言開始邊理解邊學習,專門C++學習遊戲服務端程式設計,開發是可以的,但學習個人感覺不適合。因為你會同時掉進兩個甚至三個深坑裡爬不上來。技術初學重要的是理解概念,不用拘泥於語言,哪個易學學那個,因為伺服器端程式設計是乙個超越語言的概念,理論上用任何語言都可以實現任何網路程式設計模型,同時學C++和伺服器端程式設計你會時而陷入語言的深坑而難以理解真正的理論概念。。。

等到有實力做具體的專案了,再根據具體專案綜合運用已經掌握的知識。這是捷徑。

6樓:徐若疾

當然首推這本:

《網路多人遊戲架構與程式設計》

'No Bugs' Hare

的《Development & Deployment of Multiplayer Online Games》系列不錯,同時leanpub上面也有幾本很不錯的c++書,可以等熟悉了看看。

然後就是這個系列的兩本:

v1有中文版,v2沒有。

最後根據題主的描述來看,其實應該先找本c++入門的書,我推薦:

《現代C++探秘:編碼、工程與科研必修》

最後,看書的同時一定要不斷思考->編碼。不然肯定看了就忘。

7樓:

推薦陳碩那本《多執行緒服務端程式設計》,配合《unix網路程式設計》,《TCP/IP詳解》。

簡單說下,本人之前主要做工業物聯裝置軟體相關開發,大概兩年前想轉服務後台,參考了陳碩那本書,順帶讀了一遍muduo網路庫的原始碼,雖然很少在生產環境用muduo,但讀原始碼確實很受益。

最後安利乙個C++封裝的網路庫,底層基於libuv,用於生產環境https://

mmorpg arpg fps等遊戲服務端如何設計?

Prime DNF碰撞設計和遊戲狀態同步實際上和冒險島 本人研究冒險島技術多年 的設計是相同的。由於DNF早期的伺服器的效能不是很高,因此大部分操作都放在了客戶端進行,因此可以見到很多的吸怪 無敵等外掛程式。下面來具體說說狀態同步,其實現思路以冒險島為例 玩家狀態同步基於幀的狀態同步 在開始設計的時...

準備自學程式設計 遊戲程式設計 ,買什麼電腦有推薦的嗎?

馬遙 首選台式電腦,有移動需求再考慮遊戲筆記本。台式電腦購買思路 5000元左右的,打遊戲用的主流配置就可以,現在B站上有很多主打裝電腦的UP主,他們提供的配置基本可以參考。具體到做遊戲,建議配置更加側重於CPU 記憶體,不要關心顯示卡。記憶體一定要雙條8G或更高,顯示卡GTX 1660這個檔次就足...

零基礎學習程式設計有什麼適合的可以書籍推薦一下嗎?

null null 如果你們學校在計算機競賽領域成績斐然,建議參加,不然還是老實高考來得划算.上乙個好學校比自學搞會一兩門語言有用多了.各類大神不在此列 零基礎看 The C Programming Language 會很吃力的,但 TCPL 必須還是必看的。可以先從 C Primer Plus 看...