從零學習遊戲伺服器開發系列(一) 從一款多人聯機實時對戰遊戲開始

從零學習遊戲伺服器開發系列(一) 從一款多人聯機實時對戰遊戲開始

來自專欄 從零學習遊戲伺服器開發系列

weixin.qq.com/r/DS_qsp3 (二維碼自動識別)

寫在前面的話

經常有學生或者初學者問我如何去閱讀和學習一個開源軟體的代碼,也有不少朋友在工作崗位時面對前同事留下的項目,由於文檔不完善、代碼注釋少、工程數量大,而無從下手。本文將來通過一個多人聯機實時對戰遊戲——最後一戰,來解答以上問題。

其實,我以上問題在我是一個學生時,我也同樣因此而困惑,但是後來,我發現,對於文檔缺失、注釋缺失的項目,需要自己摸索,雖然是挑戰,同時也是機遇——一個不錯的學習機會。因為至少有代碼,正如侯捷大師所說的的,「源碼面前,了無秘密」,所以我們應該「read the fucking code」。

所以,這個系列的文章,我們分析「最後一戰」這個遊戲源碼時,我們不會按照傳統的思路:先介紹總結的程序結構,再介紹各個模塊的細節,因為,當我們面對一套陌生的源碼時,尤其是在文檔缺失的情況下,我們根本無法開始就掌握這個項目的總體結構,我們只能從零開始一個個模塊的對代碼進行閱讀和調試,所以我們這個系列的文章也按這個思路來分析,以真實的案例來教會新手一步步讀懂一個開源項目的代碼。

我們先來看下這個遊戲的內容吧,下面給出遊戲畫面的部分截圖:

這是一款類似於王者榮耀、dota之類的5v5實時RPG競技遊戲。

源碼下載方法:微信搜索公眾號『easyserverdev』(中文名:高性能伺服器開發),關注公眾號後,在公眾號中回復『最後一戰源碼』,即可得到下載鏈接。(噴子和代碼販子請遠離!)如果您按照要求做了以後會收到以下下載鏈接,並且這個鏈接的代碼是不斷更新的,你可以通過svn定期更新成最新的源碼:

客戶端的邏輯比較簡單,主要是一些遊戲特效和動畫(基於Unity 3D),所以這裡我們主要分析遊戲的伺服器端源碼。

先介紹一下推薦的源碼的運行和開發環境(我的配置):

Windows 7

Visual Studio 2010

伺服器端有非常多的模塊,這裡先截一張主要模塊的項目圖示:

從下一篇文章開始,我們將介紹如何學習這樣的源碼。整理源碼不易,如果您喜歡此文,幫忙給本文點個贊。

歡迎關注公眾號『easyserverdev』。如果有任何技術或者職業方面的問題需要我提供幫助,可通過這個公眾號與我取得聯繫,此公眾號不僅分享高性能伺服器開發經驗和故事,同時也免費為廣大技術朋友提供技術答疑和職業解惑,您有任何問題都可以在微信公眾號直接留言,我會儘快回復您。

weixin.qq.com/r/DS_qsp3 (二維碼自動識別)


推薦閱讀:

遊戲《魔域》的指導功能有什麼?
室友每晚都LOL五黑到一點左右,已經影響到自己的休息了,我該怎麼辦?
為什麼能讓你爽的事情越來越少了?
為什麼外國人並不像中國人那麼喜歡《我的世界》這個《遊戲》?
求一套能玩《絕地求生》的最低配置有推薦嗎?

TAG:遊戲 | 開源項目 | 伺服器開發 |