遊戲郵箱系統設計

2021-10-20 18:20:06 字數 1032 閱讀 9109

在玩遊戲的過程中,郵箱絕對是玩家喜歡的東西,郵箱代表著有新的更新說明,或者官方發放的獎勵。特別是一鍵領取,看著亮晶晶的獎勵不停彈出,那叫乙個心情愉悅。但是對於伺服器來說,郵件帶來的負擔可不小,需要小心設計。

郵件系統一般有3個需求。

一種直覺的設計方案就是: 我要發一封郵件給哪個玩家,只要給資料庫插入一條對應的郵件資料就可以了。

對於個人郵件來說,這樣很ok。對於多人郵件來說,勉強也可以。但是對於全服郵件,比如這個伺服器有100萬玩家,就要往資料庫插入100萬條郵件資料,會嚴重影響資料庫效能導致伺服器延遲增大甚至不可用。

我們需要改進的是全服郵件的發放時機,不能在運營傳送維護補償郵件時就新增大量資料。需要安排乙個新增資料的時機。

這樣就把繁重的插入工作分攤到不同的時間段進行,保證伺服器穩定流暢。

系統郵件,在運營傳送時,儲存一封在資料庫的系統郵件表中,通用資料結構如下:

列名說明

id自增的id

titile

標題content

內容rewards

獎勵filter

過濾條件,比如玩家領取最低等級,過期時間

注意這裡的自增id,用於保證玩家不會重複領取。

離線玩家登入過程中,檢查系統郵件,檢查過濾條件,並對比自身已領取最大系統郵件id,這裡記為max_received_sysmailid, 如果有系統郵件的id大於max_received_sysmailid,則將此郵件轉換為玩家的個人郵件,插入到玩家的個人郵件表中。並將max_received_sysmailid設定為當前系統郵件id。

max_received_sysmailid可以單獨建表儲存,也可以整合在玩家個人資訊表中。

對於多人郵件,既可以按個人郵件那樣實時分批次直接插入,也可以像系統郵件一樣對比id,和過濾條件發放。(建議按系統郵件方式)

對於全服郵件,特別是有幾百個文字的補償說明,在每個玩家領取後都會存乙份,這樣會造成大量的資料冗餘,對於 快取和資料庫來說都很不友好。

遊戲中任務系統設計

1 任務分類 遊戲中任務可以分為主線任務 支線任務 日常任務 周任務 節日活動任務,其中周任務和節日任務可以根據設定的日期進行開啟關閉,屬於重複性任務。2 遊戲條件 各類任務開啟條件 1 玩家等級 2 玩家攻擊力3 前置任務等等 完成條件 玩家進行任務進度是否達成 任務關閉 1 玩家領取獎勵後關閉任...

從遊戲系統角度看遊戲活動設計

最近正找工作,在遊戲行業一年過去,發現我已經不是過去的那個啦,一點意氣都沒有,簡歷也寫得羅哩八嗦,投了如泥牛入海,唉,咋壓力這麼重呢。怎麼證明自己啊!為了這個,我不得不去整理自己腦海裡的想法和過去的記錄。寫了個破東西。理論一大堆啊,呵呵。從遊戲系統角度看遊戲活動設計 1概念 遊戲系統 乙個完整的遊戲...

遊戲中郵件系統設計

一般遊戲中有兩種郵件,系統發給某個人的私人郵件 乙個是發給全服玩家的公共郵件 比如活動郵件 補償郵件 2 系統是發給全服玩家的郵件,這種郵件需要單獨處理,先在記憶體中儲存,同時插入全服郵件箱中。3 玩家登入上線郵件處理 玩家上線載入自己的郵件列表資訊,同時對比伺服器記憶體中的全服郵件是否在玩家列表裡...