※ 引述《hirabbitt (兔子)》之銘言:
: 資料庫的存取似乎速度有一定的限制
: 太快的資料庫存取會造成資源的消耗
: 爬文後發現flash也是透過網頁(php jsp等)的方式存取資料庫
: 那為什麼有些遊戲可以很快速的做一些存取的動作呢?
: (像是百鳥樂園戳鳥+exp 我一秒戳5~6隻也沒問題
: 農場類的收成 也是點的快 就可以在短短的幾秒內改變許多塊田地的資料)
電腦的CPU在處理事情是一秒幾十萬上下(其實不只數字)
你一秒鐘5、6隻對它根本沒感覺(除非玩家的量很大)
重點在於網路的傳輸夠不夠快、夠不夠穩定?
頻繁的存取資料庫很耗資源
所以也有可能遊戲不是你每點一隻就送一次資料
可能以批次的送資料,這得看遊戲的程式碼才知道怎麼設計了
通常遊戲人數很不大的,點一隻送一次是還好
: 另外我是想問即時聊天的問題
: 假如A要和B說話
: 流程應該是這樣
: A玩家-->A的Flash-->A的PHP-->資料庫-->B的PHP-->B的Flash-->B玩家
: 但是資料庫應該沒有主動送資料出去的功能
: 所以就變成B的PHP必須主動和資料庫要資料
: A玩家-->A的Flash-->A的PHP-->資料庫<--B的PHP-->B的Flash-->B玩家
: 其實還是一樣的問題
應該沒有分什麼A的PHP或B的PHP,通常就是同一隻PHP
: 太頻繁的和資料庫要資料會不會造成資源的浪費?
那要看你怎麼定義"浪費"了
遊戲玩的人很少,都沒人在存取資料,讓CPU晾那邊也是一種"浪費"
只能說太頻繁的存取,的確是會較耗用系統資源
: 太不頻繁的要資料又變得不即時?
也許會,不過不是所有遊戲都要做到非常即時
即使連股票資訊也不一定要做到完全即時,對我來說5秒鐘更新一次就覺得很夠了
你可以想像在"即時"跟"系統資源"之間有一個微調裝置
調大"即時"性,就可能讓"系統資源"變小,反之亦然
至於要怎麼做到可以很多人玩又很即時,系統資源又負荷得起?
魚與熊掌不是不能兼得,只是得看設計的人的功力
還有可能需要額外的成本(例如花錢買設備做load balance..等)
當然,那又是另一個故事了 :)
--
http://www.eddie.com.tw/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.139.9
※ 編輯: aquarianboy 來自: 122.116.139.9 (03/13 12:16)