作者fasthall (Xen)
看板GameDesign
標題[程式] Socket如何寫得漂亮
時間Mon Aug 8 01:17:13 2011
之前寫過比較完整的連線遊戲是一個類似炸彈超人的遊戲
當時寫法是host不斷接收其他玩家的封包
其他玩家一直傳目前的鍵盤input給host
由host處理完每個玩家和遊戲世界的邏輯後
回傳目前遊戲世界狀況給其他玩家
當時用一般網路測過並沒有頻寬和lag的問題
但是今天我用同樣的概念寫一個android的遊戲
並且使用3g測試
發現在開始傳封包前ping都低於70ms
開始傳之後ping就衝到1000ms左右
想請問的是有沒有正規或一般化的遊戲socket架構?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.240.68.129
1F:推 chenglap:不要用 3G 做動作遊戲, 不同地方的網絡品質完全沒得比. 08/08 01:48
2F:→ chenglap:你的 socket 怎寫也解決不了問題. 08/08 01:48
3F:→ fasthall:可是還是有看到一些用3G也能連線的遊戲 08/08 09:20
4F:→ fasthall:我傳的東西一次都不超過8bytes應該不會比他們多 08/08 09:20
5F:→ fasthall:還是說他們都是用一些技巧讓遊戲看起來是即時的? 08/08 09:21
6F:→ cowbaying:我想可能是執行緒的問題 08/08 10:55
7F:→ cowbaying:請善用SLEEP 08/08 11:31
8F:推 chenglap:那些遊戲在我們這邊的網絡都運行不良, 例如街頭霸王. 08/08 11:51
9F:→ chenglap:就算你是 8 byte, 傳起上來也是一個 packet, 不會比較好. 08/08 11:52
10F:→ fasthall:現在發現若是遊戲延遲需要小於半秒 但是TCP只要在區網外 08/09 00:05
11F:→ fasthall:就會超過容忍值 就算是用一般網路也一樣 請問這是寫法有 08/09 00:05
12F:→ fasthall:問題 還是得從smooth下手? 08/09 00:05
13F:推 cowbaying:應該是3G的先天不良了... 08/09 00:07
14F:→ cowbaying:沒事 看錯 08/09 00:10