php+mysql开发多人线上游戏

楼主: chocho1981 (o(.```.)o)   2020-08-17 21:44:40
我目前使用php+mysql开发像这样的一个游戏
https://i.imgur.com/nMQdwWb.jpg
我的角色是右边那个
左边头上有名字的是其他玩家
我要知道其他玩家目前在地图上的位置
我目前的做法是每1秒去捞一次数据库
位置有变动就更新其他玩家的位置
不过这样等于我的角色放在地图上挂网2小时
会产生7000多次的requests
感觉人一多,对服务器也是个负担
请问各位先进,有没有其他更有效率的做法
可以提供给小弟参考呢?
作者: frank910138 (frank)   2020-08-17 21:46:00
用websocket
楼主: chocho1981 (o(.```.)o)   2020-08-17 22:14:00
感谢,我试试看
作者: onininon (万)   2020-08-18 13:03:00
firebase
作者: menShow (The Show)   2020-08-18 14:13:00
redis,存玩家座标资料当cache,玩家移动时,侦测可视范围内的玩家发websocket通知这些玩家就好.
作者: ctrlbreak   2020-08-19 03:24:00
你知道 一般这种RPG地图每秒钟每个玩家至少更新10次以上画面看起来才不会lag吗 XD
作者: swallowcc (guest)   2020-08-19 10:29:00
1,php不好做websocket 2,10秒更新一百次也不是好选择
作者: kyoe (缘份‧不再)   2020-08-19 13:55:00
比较少人用php做这个,效率跟资源比不上其他的
作者: ctrlbreak   2020-08-19 20:18:00
先试着学习写常连线的server,这类型游戏php+db不好胜任
作者: swallowcc (guest)   2020-08-20 17:48:00
不砍掉重练你后面会遇到更多状况啦... 而且你有现成的code 可以 reference 了,商业逻辑部分也不用重想了只是说练习新语言要花点时间,不然开发上不会太耗时
作者: f416720001 (Gemini翔)   2020-08-27 20:59:00
我是认为早晚都要改的
作者: mohai (墨海)   2020-09-03 05:21:00
非得PHP的话,swoole websocket 可以参考看看
作者: jjba310 (走走吧)   2020-09-04 22:33:00
我也想做这个,做完验证帐密上来就看见这篇,推目前想php做其他事,入口网页及管理mysql在另外找工具及框架去做游戏本体去连结mysql另外想问原po,左边游戏画面是那个工具做的*哪
作者: laechan (挥泪斩马云)   2020-09-27 11:32:00
通常的做法是改成比方1分钟存一次+额外情况出现时存一次
作者: Isaea (Isaea)   2020-10-15 09:26:00
用两个资料表,一个存最后位置一个现在位置,现在位置的5分钟清空一次
作者: WeiMyWoW (...)   2020-11-09 03:55:00
好有趣的专案,赞赞

Links booklink

Contact Us: admin [ a t ] ucptt.com