php+mysql開發多人線上遊戲

看板Web_Design作者 (o(.```.)o)時間4年前 (2020/08/17 21:44), 4年前編輯推噓12(1209)
留言21則, 11人參與, 4年前最新討論串1/1
我目前使用php+mysql開發像這樣的一個遊戲 https://i.imgur.com/nMQdwWb.jpg
我的角色是右邊那個 左邊頭上有名字的是其他玩家 我要知道其他玩家目前在地圖上的位置 我目前的做法是每1秒去撈一次資料庫 位置有變動就更新其他玩家的位置 不過這樣等於我的角色放在地圖上掛網2小時 會產生7000多次的requests 感覺人一多,對伺服器也是個負擔 請問各位先進,有沒有其他更有效率的做法 可以提供給小弟參考呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.12.82.246 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1597671882.A.AEC.html

08/17 21:46, 4年前 , 1F
用websocket
08/17 21:46, 1F

08/17 22:14, 4年前 , 2F
感謝,我試試看
08/17 22:14, 2F

08/18 13:03, 4年前 , 3F
firebase
08/18 13:03, 3F
看了一下介紹,感覺這東西超神奇的 不過這是不是要收費啊? 如果用到資料庫監聽功能的話

08/18 14:13, 4年前 , 4F
redis,存玩家座標資料當cache,玩家移動時,偵測可視範圍內
08/18 14:13, 4F

08/18 14:14, 4年前 , 5F
的玩家發websocket通知這些玩家就好.
08/18 14:14, 5F
※ 編輯: chocho1981 (101.12.82.246 臺灣), 08/18/2020 20:08:32

08/19 03:24, 4年前 , 6F
你知道 一般這種RPG地圖每秒鐘每個玩家至少更新10次以
08/19 03:24, 6F

08/19 03:25, 4年前 , 7F
上畫面看起來才不會lag嗎 XD
08/19 03:25, 7F
嗯,不過我的問題不在這裡 其他玩家有移動10秒 更新100次我也可以接受 但是若是其他玩家在地圖上發呆2小時 我也得更新7000次,那就真的很沒效率了 ※ 編輯: chocho1981 (101.12.82.246 臺灣), 08/19/2020 07:35:22

08/19 10:29, 4年前 , 8F
1,php不好做websocket 2,10秒更新一百次也不是好選擇
08/19 10:29, 8F

08/19 13:55, 4年前 , 9F
比較少人用php做這個,效率跟資源比不上其他的
08/19 13:55, 9F
除了php外,有比較好的建議嗎? 我前端主要是用jquery php主要是用來管理mysql的資料而已 ※ 編輯: chocho1981 (101.12.82.246 臺灣), 08/19/2020 15:06:47

08/19 20:18, 4年前 , 10F
先試著學習寫常連線的server,這類型遊戲php+db不好勝任
08/19 20:18, 10F
唉~~這也是我現在煩惱的地方 本來只是想能不能用websocket 傳一組其他玩家在地圖上的數據 再用canvas畫出來就好 這兩天研究了一下Nodejs和io.socket 類似聊天室的功能做是做出來了 可是我目前完全無法應用到我之前的程式裡 難道只有全部砍掉重練嗎? 夭壽喔,我搞了快一個月的東西耶... ※ 編輯: chocho1981 (101.12.82.246 臺灣), 08/20/2020 06:59:53

08/20 17:48, 4年前 , 11F
不砍掉重練你後面會遇到更多狀況啦... 而且你有現成的
08/20 17:48, 11F

08/20 17:48, 4年前 , 12F
code 可以 reference 了,商業邏輯部分也不用重想了
08/20 17:48, 12F

08/20 17:49, 4年前 , 13F
只是說練習新語言要花點時間,不然開發上不會太耗時
08/20 17:49, 13F

08/27 20:59, 4年前 , 14F
我是認為早晚都要改的
08/27 20:59, 14F

09/03 05:21, 4年前 , 15F
非得PHP的話,swoole websocket 可以參考看看
09/03 05:21, 15F

09/04 22:33, 4年前 , 16F
我也想做這個,做完驗證帳密上來就看見這篇,推
09/04 22:33, 16F

09/04 22:42, 4年前 , 17F
目前想php做其他事,入口網頁及管理mysql
09/04 22:42, 17F

09/04 22:43, 4年前 , 18F
在另外找工具及框架去做遊戲本體去連結mysql
09/04 22:43, 18F

09/04 23:40, 4年前 , 19F
另外想問原po,左邊遊戲畫面是那個工具做的
09/04 23:40, 19F

09/05 11:53, 4年前 , 20F
*哪
09/05 11:53, 20F
左邊的圖全部都是從RPGMV來的 地圖製作和人物製作 都是在軟體上做好後 再弄成圖片檔做成網頁 https://imgur.com/EbQZIFT
https://imgur.com/W1qUHHc
※ 編輯: chocho1981 (36.239.21.231 臺灣), 09/05/2020 13:44:04

09/27 11:32, 4年前 , 21F
通常的做法是改成比方1分鐘存一次+額外情況出現時存一次
09/27 11:32, 21F
文章代碼(AID): #1VEedAhi (Web_Design)
文章代碼(AID): #1VEedAhi (Web_Design)