作者fasthall (Xen)
看板GameDesign
標題[程式] MMO之server/client情境設計
時間Sat Jul 21 07:48:53 2012
現在正在練習寫一個realtime的MMORPG
server端帳號資料和遊戲物件使用MySQL來儲存
為了即時的需求使用UDP來傳送指令
由於完全沒有設計過這種MMORPG
又不好意思直接發問請教怎樣設計
所以我自己想了如下一個情境
請有設計過MMORPG的前輩指教使否可行
===========================================
遊戲世界中的物件皆儲存在server記憶體中
1.client登入時送username/password給server
2.server收到帳密後到DB的user表中找有無使用者資訊
3.若找到則回傳一個token並在server記憶體登入這玩家
4.之後client都只傳這個token和指令(不用傳帳密)
5.server收到tokent和指令後去更新記憶體中玩家資訊(不動DB)
6.server定時檢查記憶體中的玩家 每隔一段時間回存到DB
============================================
這樣設計的目的是不要每個封包都包含帳號資訊
而且可以減低資料庫存取頻率
我server用Java non-blocking udp socket寫
由於遊戲本身不複雜預計能負載千人在線
想請問這個設計會不會遇上什麼問題?
或是有沒有標準的一套MMORPG設計情境可參考?
謝謝各位前輩
--
約翰高爾特是誰?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 98.156.103.209
1F:→ fasthall:剛剛又想到 可是這樣只要有人偽造token就能破解了...... 07/21 11:08
2F:→ NightDream08:token寫一個加密蓋上去用自己的格式讀? 07/22 00:38
3F:→ NightDream08:啊不對,當我沒說(炸 07/22 00:43
4F:→ fasthall:樓上ID好眼熟XD 07/22 01:59
5F:→ fasthall:想了想 如果指令不加密 只能在登入的時候給個session id 07/22 01:59
6F:→ fasthall:來讓每次登入都能用不同id防止hacker偽造封包了 07/22 02:00
7F:→ justben:帳密傳遞的時候不加密 hacker直接攔下來讀不就得了? @@ 07/22 03:44
8F:→ Hevak:session id更方便搶劫吧,你看看免費空間的cookie.... 07/22 10:57
9F:→ fasthall:那請問有不加密的辦法嗎 伺服器要解密的話挺耗資源的 07/22 11:26
10F:→ fasthall:有人說session id+client address/port這樣OK嗎 07/22 11:32
11F:推 cowbaying:SSL 07/22 12:47
12F:→ cowbaying:現在電腦夠快 加解密也只是幾百奈秒的事情 07/22 12:49
13F:→ cowbaying:RSA AES也都可以 都有套件可以幫你處理資料加密的事情 07/22 12:52
14F:→ cowbaying:抱歉 SSL是HTTP通訊協定在用的 SHA也不錯 07/22 13:00
15F:推 Hevak:RSA/AES是加密,SHA是雜湊驗算.... 07/22 14:05
16F:→ Hevak:SSL是協議,其下可以使用很多種算法... 07/22 14:06
18F:推 LaPass:問你的pm = = 07/22 23:38
19F:→ LaPass:等等... 練習? 是學生喔..... 07/22 23:38
20F:→ fasthall:我是研究生 這是練習 跟我職業無關 有問題嗎? 09/16 15:49