這一篇就來提提 server 的重要性與在我的程式裡面佔的地位。
有一位老大前輩有說,不要相信 client 端所有的訊息,以五子棋爲例,如果你是 client 判斷能不能放棋這件事情,會不會就有人亂改你的程式碼企圖覆蓋別人的位置?
因爲 client 端的 code 都放在可以看得到的地方,所以當你把這些邏輯判斷、規則、甚至是之後出遊戲接下來的觸發事件都寫在 client 端,小則讓玩家進度加快,大則改變遊戲規則影響遊戲
所以在遊戲的世界裡面, client 端只要負責渲染畫面與你認爲想對被看到也沒關係的資訊,但只要是攸關遊戲的規則、邏輯...都放在 server 會比較好,
一來可以減少 client 的負擔,因爲只要傳簡單的訊息,等 server 判斷完回來再渲染到畫面就好
二來可以防止有人意圖直接改 client 的 code ,企圖改變遊戲規則
所以這樣就知道 server 的重要行了,除了保持玩家的連線外,還要負責邏輯的判斷,甚至是與資料庫的溝通都要透過 server ,所以常常才聽到一些公司要分流阿、伺服器忙碌中阿,就是因爲每個 server 的穩定性與承載量是有限到,這時候就要去思考很多架構上的問題了,什麼要放在 client 端 、什麼要 server 要做,什麼要存在資料庫.....
講了這麼多就是當做了這個遊戲才更知道 server 的重要性與地位,所以明天的結合就會在一些邏輯判斷與畫面要怎麼呈現都放在 server , client 就只負責渲染畫面啦~~