Re: [程式] online game 的 data base 存些什麼?
看板GameDesign (遊戲設計)作者remmurds (雷穆爾德‧小一)時間15年前 (2009/09/25 09:21)推噓6(6推 0噓 11→)留言17則, 7人參與討論串2/2 (看更多)
※ 引述《etrexetrex (moonet)》之銘言:
: 這個問題困擾我很久了
: 比方說 online game 的 DB 應該要存玩家身上有哪些道具
: 那麼我一直丟撿東西,資料庫中的資料就應該會隨之改變
: 不過這樣的頻率不會太高嗎?
: 我之前寫過一個網路蜘蛛 (ASP.NET + SQLserver)
: 每隔幾秒存取一次資料庫
: 幾分鐘之後就壞了
: 我猜壞掉的原因是資料庫擋了頻率過高的存取
: 所以那種 online game 人物狀態、道具一直改變的遊戲
: 資料庫都存些什麼?
大致上來說
其實資料庫的存取主要只有在使用者登入與離線這兩個時機而已
伺服器程式對於每一個已登入的玩家都會個別建立一個實體物件
物件的每個成員變數都對應資料庫中的每一項欄位
在使用者登入時就會把所有資料一次從資料庫載入對應的成員變數中
之後遊戲中的變動都是在實體物件中操作
直到偵測到使用者已離線(無論是自行登出還是意外斷線)
或者是伺服器準備要關機
就把所有資料一次寫回資料庫中
當然這中間還有些技術細節要處理
比方說為了避免伺服器意外停機
可能每隔一段時間就要進行一次遊戲資料的儲存動作
(這也是有時候會出現回溯的原因...如果伺服器剛好在下次儲存之前意外停擺)
但絕對不會是遊戲資料一有變動就儲存在資料庫中
那樣作對資料庫的負荷太大
--
「我從來都不喜歡 MFC,從一開始就不喜歡,我認為它的設計不良,
且幾乎不能算是物件導向。」
- Charles Petzold
http://reassert.blogspot.com
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.41.81
※ 編輯: remmurds 來自: 114.32.41.81 (09/25 09:22)
推
09/25 10:09, , 1F
09/25 10:09, 1F
→
09/25 10:10, , 2F
09/25 10:10, 2F
推
09/25 10:46, , 3F
09/25 10:46, 3F
推
09/25 12:50, , 4F
09/25 12:50, 4F
推
09/25 20:42, , 5F
09/25 20:42, 5F
→
09/25 20:42, , 6F
09/25 20:42, 6F
→
09/25 20:43, , 7F
09/25 20:43, 7F
→
09/25 20:45, , 8F
09/25 20:45, 8F
→
09/25 20:45, , 9F
09/25 20:45, 9F
→
09/25 20:46, , 10F
09/25 20:46, 10F
→
09/26 00:22, , 11F
09/26 00:22, 11F
→
09/26 22:13, , 12F
09/26 22:13, 12F
→
09/26 22:14, , 13F
09/26 22:14, 13F
推
09/27 23:31, , 14F
09/27 23:31, 14F
→
09/27 23:32, , 15F
09/27 23:32, 15F
→
09/27 23:34, , 16F
09/27 23:34, 16F
推
10/08 15:21, , 17F
10/08 15:21, 17F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章