作者Fontainerei ( )
看板GameDesign
標題Re: [程式] MMO之server/client情境設計
時間Mon Sep 3 23:44:28 2012
※ 引述《fasthall (Xen)》之銘言:
: 現在正在練習寫一個realtime的MMORPG
: server端帳號資料和遊戲物件使用MySQL來儲存
: 為了即時的需求使用UDP來傳送指令
: 由於完全沒有設計過這種MMORPG
: 又不好意思直接發問請教怎樣設計
: 所以我自己想了如下一個情境
: 請有設計過MMORPG的前輩指教使否可行
: ===========================================
: 遊戲世界中的物件皆儲存在server記憶體中
: 1.client登入時送username/password給server
: 2.server收到帳密後到DB的user表中找有無使用者資訊
: 3.若找到則回傳一個token並在server記憶體登入這玩家
建議通過驗證後把玩家的基本資料存放進server的記憶體
而token可考慮用user DB Index
: 4.之後client都只傳這個token和指令(不用傳帳密)
: 5.server收到tokent和指令後去更新記憶體中玩家資訊(不動DB)
原則上不能相信client傳送的資料
client只負責發出某項請求
server用記憶體中的資料檢查請求的合法性
進行計算後回傳結果
: 6.server定時檢查記憶體中的玩家 每隔一段時間回存到DB
有必要才進出db
譬如取得裝備或完成任務
其他的部分可在玩家登出時進行
: ============================================
: 這樣設計的目的是不要每個封包都包含帳號資訊
: 而且可以減低資料庫存取頻率
: 我server用Java non-blocking udp socket寫
: 由於遊戲本身不複雜預計能負載千人在線
: 想請問這個設計會不會遇上什麼問題?
: 或是有沒有標準的一套MMORPG設計情境可參考?
: 謝謝各位前輩
基本上要注意資料的互斥性
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.44.141.141
推 LayerZ:推第5點 同樣判斷最好client/server各做一次 09/04 10:05
→ LayerZ:client避免送出不合法請求 server驗證合法性 09/04 10:05