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

寫在前面的話

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

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

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

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

輸入圖片說明

輸入圖片說明

輸入圖片說明

輸入圖片說明

輸入圖片說明

輸入圖片說明

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

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

輸入圖片說明

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

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

Windows 7

Visual Studio 2010

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

輸入圖片說明

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

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

輸入圖片說明

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章