遊戲服務端開發 隨想

2021-06-26 01:38:55 字數 874 閱讀 1087

最近公司上線了一款遊戲,後台服務端出現各種bug,我簡單的將出現的問題做了分類,多執行緒操作的資料一致性bug,邏輯bug,流程bug。雖然感覺這樣分並不能完全表述出現的bug型別,但我認為至少是這三類問題能概括了目前出現的bug.  於是大家一起**了怎麼在上線環境來定位bug的問題所在。其實,我想更應該在設計開發中來避免這類問題的出現。於是個人總結了一下在開發過程中的一些規範,流程。

個人認為在服務端的開發工作分這幾個階段:前期--設計  中期--開發 後期--測試,當然一般的系統也是這樣的,下面闡述在這三個階段要解決的一些問題。

前期--設計

在前期設計中設計好程式的框架,主要解決併發,效能,做出保證多執行緒運算元據一致性規範。確定網路執行緒跟邏輯執行緒是如何互動的,確定邏輯執行緒是單執行緒還是多執行緒,如果是多執行緒的,那要給出多執行緒對資料操作一致性規範。

在這一階段就從根本上結果多執行緒的資料一致性問題。

中期--開發

中期開發主要是在前期的設計前提下,做遊戲功能開發。如遊戲邏輯,演算法。這裡要遵循前期設計階段對資料一致性操作的一些規範,來處理資料。

在這一階段主要是開發遊戲功能。

後期--測試

這裡要說的是(白盒)單元測試,包括正常遊戲的邏輯測試。

說到測試,我們不按照《軟體工程》上講各種測試,只要我們要涵蓋的點:

1.邊界測試

2.條件測試,保證遊戲邏輯中每個分支都要跑到

2.非法資料測試,測試我們的程式對非法資料的處理能力

3 .正常資料測試,這裡主要測試功能的完整度

在這一階段,是要確定我們寫的遊戲的功能邏輯能否正常的跑。

備註:此文章只是說明在遊戲開發中的一些個人體會。至於說效能測試,壓力測試,穩定性測試這些遊戲伺服器經常做的測試,是在以上遊戲功能正常執行後進行的。

遊戲服務端開發 一

資料儲存伺服器 遊戲中的資料大致分為靜態配置資料和動態的玩家資料。這裡主要討論玩家資料儲存的解決方案。雖然遊戲應用的寫操作要多於讀操作,但是加入快取層仍然有其必要性。多個應用伺服器啟動時從資料庫讀取資料會在瞬間給資料庫造成巨大壓力,如果將相對靜態的資料以檔案的形式放在應用伺服器本地,可以避免這個問題...

遊戲服務端開發 二

應用伺服器的設計 上 應用伺服器的工作有 0 同步廣播玩家的行為 1作為第三方對玩家個體和玩家之間互動行為計算,並將計算結果推送到資料儲存系統 2驅動遊戲中的 npc 3作為乙個特殊的遊戲參與者,與玩家相互作用。應用伺服器最重要的工作莫過於同步廣播玩家之間的行為,使玩家之間能夠互視,多人同時遊戲才有...

遊戲服務端開發 排行榜

排行榜幾乎是每個網路遊戲都有的系統,以下用erlang以例,分享一種排行榜實現方式。每個排行榜對應乙個actor,state使用如下結構 通用排行榜結構 record rank list,已經排好序的列表 ready list one rank 待排序的列表 sort time 0 排行榜的重新整理...