Re: [魯蛇] 手機遊戲多人連線相關問題

作者: cowbaying (是在靠北喔)   2015-04-22 10:54:59
→ drophead520: 我個人偏好想用c++自己寫server,處理資料庫連接寫入 04/22 00:15
→ drophead520: 取出和遊戲邏輯和客戶端server互傳 server,無奈實體d 04/22 00:15
→ drophead520: emo教學沒有,猶如瞎子摸象 04/22 00:15
→ drophead520: arcalet 書我有買,但cloud型的發展很難擴充其他系統 04/22 00:20
→ drophead520: 請問我的方向是學c++ socket寫server ,然後用客戶 04/22 04:34
→ drophead520: 端c#用tcp,udp互傳遊戲資料到這個c++ socket ,在用 04/22 04:34
到這裡其實都沒錯
→ drophead520: 這隻socket寫進和讀取資料庫和傳到客互端,這樣概念 04/22 04:34
這裡
你提到讀寫資料庫
所以我認為有必要提醒一下
→ drophead520: 正确嗎? 04/22 04:34
正常的做法
是不會對資料庫做頻繁讀寫
像是1秒讀寫入一次
或是客戶端每做一個動作就讀寫入一次
資料庫也有著資料同步的問題
所以寫跟讀是有先後順序的
並非同時進行
就算只搜尋索引
DB還是會去對資料做hash檢查
而資料庫基本上是還是檔案
讀取跟寫入的效能一樣受限於檔案系統的效能
如果遠端的話
就受限於網路通訊的效率
不曉得你是不是程式底
看過很多開發者都是用硬幹的
一筆一筆寫入資料庫
效能可想而知(根本科科)
所以請善用資料結構
使用超大陣列來提升效能
資料庫的部分固定時間批次寫入即可
資料庫只是用來伺服器剛開機的初始化和資料備份
這是基本
除非你的遊戲不是很即時
或者玩家人數不多
或是DB連線數開到數十萬
亦或是將資料庫分散
作者: drophead520 (別開玩笑)   2014-04-22 00:15:00
我個人偏好想用c++自己寫server,處理資料庫連接寫入取出和遊戲邏輯和客戶端server互傳 server,無奈實體demo教學沒有,猶如瞎子摸象arcalet 書我有買,但cloud型的發展很難擴充其他系統請問我的方向是學c++ socket寫server ,然後用客戶端c#用tcp,udp互傳遊戲資料到這個c++ socket ,在用這隻socket寫進和讀取資料庫和傳到客互端,這樣概念正确嗎?
作者: LayerZ (無法如願)   2015-04-22 11:17:00
推這篇,DB讀寫非常耗效能
作者: drophead520 (別開玩笑)   2015-04-22 11:32:00
謝謝你的回文對我幫助很大感謝
作者: bearkitten   2015-04-22 20:52:00
請愛用nosql, 而且現在大型資料庫很少不切master-slave, 只要前面自己再實作個排程即可,時代在進步,不需要還一直用舊方法...

Links booklink

Contact Us: admin [ a t ] ucptt.com