不知不覺我們的專案開發有2年了,這兩年來走了很多彎路,也收穫了很多,今天在這裡做乙個總結。
專案基本情況:
這款引擎在使用上只滿足了部分需求,再加上原作者又跳槽,引擎基本是我在維護和改進,不過基本上都往裡面加東西,改動地方不多(主要是修改小bug)。引擎的網路層採用c++開發,原先的**有些問題,後來公司同事用c++重寫了個網路層,效率上還不錯,測試下來每秒能傳送30w+個資料報。如果有同學想用上面說的引擎,需要自己對網路層進行改造。引擎除了網路層外,其它的部分都還ok,可以放心使用。
客戶端用silverlight是整個專案的乙個大敗筆,因為,微軟現在已經放棄它了。雖然sl在配合我們的伺服器開發很方便,但玩家和運營商的接受度還是比較低,所以,***。
研發總結:
1.賬戶和玩家id,要在所有伺服器裡全域性唯一。這點,之前在看一些其他網友的總結裡有說過,但是當時真的沒認為有多重要,直接用資料庫的自增也可以。等遊戲真正上線後才發現,這對遊戲後面的運營,合服都產生了重大影響。最直接的影響,就是每次合服都需要重置玩家的id。合服需要修改的和賬號id關聯地方就數不清了,所以,在這裡還是要和各位強調,賬戶的唯一id對遊戲運營非常重要。
2.遊戲邏輯的指令碼化或者動態更新能力。如果遊戲做不到指令碼化,那麼,至少要利用.net的特性,實現dll的動態載入和更新。運營時不停服更新是很重要的功能,因為每次意外停服都有可能會造成5%的玩家流失。而在運營中碰上的bug,基本上是**的邏輯錯誤或者資料配置錯誤,有動態更新功能,就能不停服更新伺服器,修正這個bug。真正的因為底層崩潰的bug導致遊戲崩潰的,基本沒發生過(底層**還是很穩定的^_^)。
3.遊戲死鎖狀態下脫離死鎖的功能。雖然我們只是在偶然幾次特殊情況下碰上,但是如果當時有脫離死鎖功能(把當前任務強制結束,繼續執行後面的任務),我們就不用重啟伺服器了。
4.給策劃的資料配置檔案,要二維表結構,不要多維表結構。雖然xml可以表示多維表和樹形關係,反序列化後可以給程式直接使用。但是,結構層次一多,策劃在通過excel轉xml時就容易發生問題,同時也不利於策劃配置資料。所以,在定義配置檔案時二維錶比多維表要好。
5.資料記錄不可或缺。日誌不僅僅指錯誤日誌,還包含遊戲裡業務邏輯產生的資料。遊戲邏輯需要記錄的資料由策劃定。作為程式我們也記錄一些資料,特別需要關注的是每個任務執行的耗時,這個對今後的效能優化很有幫助。(注意,效能優化不僅僅只是用效能測試工具來看看那個函式耗時那麼簡單。因為只有真正上線後,玩家玩遊戲時才能找到真正熱點任務。)
6.一定要擋住策劃設計的帶複雜玩法的系統。資料結構越複雜,規則越多,業務邏輯就容易混亂,混亂了,bug就產生了。所以,簡化玩法對程式和玩家也有好處。
7.敏捷開發。敏捷開發裡的規則就算不能全用,下面的幾點最好還是要有:單元測試,每日構建,以週為單位的迭代開發,故事(任務)牆。
運營總結:
1.伺服器的環境依賴盡可能少。在一台空白的windows2003上,我們配置伺服器之前,需要上傳200m左右的軟體並進行安裝,導致重新配置一台新伺服器的時間不少於3小時,時間浪費嚴重。
2.遊戲的配置項要盡可能的少。這個配置是指資料庫,ip,埠等,每個伺服器都會不一樣的配置。因為配置項分散在多個檔案,導致檔案安裝到位後,還需要仔細的修改和檢查這些檔案,也浪費了不必要的時間。
3.合適自己的伺服器更新方法。一開始我們用遠端登入到伺服器,然後執行更新批處理的方法進行更新。但當伺服器變多(>8臺)時,這個流程就會變慢,也容易出錯。最後用ssh執行指令碼的方法對伺服器進行批量更新。
4.伺服器的監控工具。監控的目的是防患於未然,例如,硬碟不足,cpu和記憶體異常變高,這個都是出故障的前兆。我們的遊戲執行時會產生大量的日誌,常常會因為配置關係,沒有及時處理這些日誌資料從而導致日誌被撐滿硬碟,遊戲被迫停服。大家不要以為現在硬碟很便宜,2t的硬碟還不到600塊,但是運營商給的硬碟通常是73g或者140g。
最後
c#遊戲伺服器交流 136485198 --群裡面有有乙個c#的網路引擎的高手
c#遊戲開發 223604735
c#遊戲伺服器交流 279489850 --群主用c#實現了乙個《热血传奇》的伺服器
創業公司webgame專案開發團隊人員安排
專案開始只需要主策劃1 客戶端主程式 服務端主程式1,然後就可以開工了 這3位是核心,需要非常明確產品定位和產品未來2 3個月的工作內容和計畫 主策劃,兼專案經理 客戶端主程和服務端主程搭建遊戲的框架,基礎模組的編寫。大概2 3周。開工第二週,美工 美術 開工,設計介面風格 遊戲第三 四周 就是上面...
webgame的檔案儲存方案
對於網遊的檔案型別,按照載入來區分的話可以分為這幾種 因為單佇列載入的話在每個單元檔案載入完成之後會有乙個重新建立新的連線的過程 我把它叫做間隙時間 時間。按需檔案 按需載入,隨時需要隨時載入,使用完後徹底銷毀。該類檔案處理起來比較有意思。畢竟按需也有個輕重緩急,等待的時間也 不盡相同,所以在處理上...
webgame 哆啦大冒險
已經不知道是多久之前,很多神靈開啟通往這個名叫安多拉星的 門 來到這裡,賦予了安多拉星生命和智慧型。神把太陽拉近,讓星球氣溫變得舒適 接著他們在星球上塑起高山 鑿出海洋,並種下一棵充滿著魔力的魔樹來保護世界,各種動物植物相繼誕生。神最後教會充滿智慧型的精靈族各種知識 技能 魔法。幾經周折,神靈留下的...