Client作主持人還是Server作主持人好? | (25-04-2005) |
繼續上一篇回合制的多人連線遊戲開發的思考,上一篇提到由Client一方其中一個玩家作主持人,當知道所有玩家都完成該回合時,發出開始新回合訊息。另一種做法,所有玩家都完成該回合時,通知Server,再由Server發施號令。兩種做法,那種較好? Client作主持人 假設遊戲房間有4人,其中一人為主持人,如果玩家完成該回合時,Private Call通知主持人。由於Flash Player沒有可能用IP直接通訊,其實只不過是經過Server再轉送到主持人。如圖,共(n-1)*2=6次連線: 主持人收到並統計所有人都完成回合時,通知所有人開始,也是經過Server再轉送到所有人,共n+1=5次連線(不想因為Network Latency問題,主持人比其他人早開始,所以也送一份給自己,跟所有人一樣,收到訊息後才開始): 總數是(n-1)*2+(n+1)=3n-1=11
所有玩家完成該回合時,通知Server,共4次連線: Server知道所有人完成後,通知所有人開始,也是4次連線: 總數是2n=8 這樣說,Server作主持人可以較節省Bandwidth和減少Network Latency機會。我同意Server作主持人是比較美滿的做法。作主持人當然不只是信差角色而已,也有一些遊戲邏輯要執行,例如找出下一位擲骰子玩家,如果這些工作,可以Client端進行,是否可以減輕Server工作負擔?當然Client端進行的遊戲邏輯,容易作弊,也要考慮萬一作主持人的玩家登出後,要找人接替,進行途中遊戲邏輯,如何善後?這可能比交給Server處理更複雜。所以我又嘗試遊戲邏輯是所有人都各自進行,主持人真是只剩下一個作用,當信差來發施號令。 Client作主持人,Server端的架構可以較簡單,基本上不同遊戲都可以用同一個架構,不用度身加入遊戲邏輯部分,但將遊戲邏輯放在Client端SWF裡,現在Decompiler橫行的世界,是要留意考慮的因素之一。 13-5-2005補充 |
|||||
本文章由發表。 |
意見 | |
沒有意見。 |
|
同組文章 |