看板 GameDesign 關於我們 聯絡資訊
※ 引述《LaPass (LaPass)》之銘言: : 全文恕刪 : 先別管原PO的能力到底到哪裡 : 我想請問 : 如果有位小程式設計師(我承認就是我) : 有能力完成一般小遊戲 (打磚塊、俄羅斯方塊之類的) : 有能力做出server-client架構 : 有能力自訂/寫出簡單的MSN之類的通訊軟體 : 如果像這樣的人,想去完成一個數千甚至數萬人在線的網路遊戲 : 你們會給什麼建議呢? : 因為會寫程式 : 所以知道,即使自己在測試時,開個五六個client端做測試 : 也不能能保證在上千上萬人時能正常運作 : 請問在寫這種大架構的遊戲時,有什麼注意事項或是know-how? : 很多東西是在書上找不到的.... 壓力測試 這是多人互動程式必做的 如果是大型3D MMO的話 還要做client端的畫面承載測試 而server的話 簡單的方法 就是寫一支bot程式 模擬client行為 然後大量開啟跟server溝通 去找出效能瓶頸點 80%的效能問題 來自20%的程式碼 有可能是大量IO處理導致 server空轉等待 也有可能是 大量的序列化/反序列化處理 浪費server效能 而越複雜的遊戲 server要處理的溝通就越多 先去參考類似遊戲的server/client架構 分析優缺點 然後把它實作並改良 比如 神魔 會在第一次開啟戰鬥後 就把所有關卡的掉寶資料透過xml傳給client 優點 不用每次打完一支怪就跟server要掉寶結果 還有資料驗證處理 server才是真實資料的存放處 client的資料只是顯示用 也就是不可信任 避免玩家透過非法手段修改 ex:神魔的體力值 真實值存在server端的DB上 client上只是給玩家參考用 因此即使玩家修改client端體力 在跟server做驗證後就會修正回正確值 server寫好了 要架在哪? MS-Server環境方便普及 商業授權費貴 人力便宜 Linux-like環境便宜 但要找能維護linux跟能開發linux-server的人貴 這也是一開始在開發時 就要想到的問題 最後如果經驗不足 就不要把餅一開始就畫太大 把系統做好擴充性 會比一次大量功能一起做然後出包出到死的好 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.240.239.100 ※ 編輯: VVll 來自: 123.240.239.100 (11/02 04:42)
UbaldJimenez:推,連線遊戲大抵上的確是這樣處理 11/04 00:12