多人网游服务器端数据同步问题,望高手解答!!

来源:百度知道 编辑:UC知道 时间:2024/06/24 08:44:14
在多人在线网游中,当前玩家登陆后,服务器如何返回当前玩家所在坐标范围内的其他玩家信息?其他玩家的坐标是在不断变化中的。(玩家移动坐标也就变化了)

希望有网游制作经验的高手,给小弟一套解决方式。小弟不胜感激!

目前先给100分,问题解决后在补50分。
用timer 1秒请求一次信息,那样请求数据库就太过频繁。数据库会有效率问题,所以这个方式不是太好。
还有别的方式吗???

网络游戏都是传的"数字"

现在网络游戏客户端那么大 其实模型早已在本地机器上,只是数字控制了模型的变化,而坐标也是控制模型变化的一个因素

举个明了一些的例子:

你的可见窗口内有三个玩家

玩家ID分别为 11 22 33

那么你的游戏界面有有三个人物(还没有装备,以及坐标)

然后
id=11的玩家 装备是2,3,23,56,77
id=22的玩家 装备是1,3,33,46,78
id=33的玩家 装备是2,3,32,54,79

这时候 游戏根据本地模型对应的编号 去给人物上色(就是穿上华丽的装备)

游戏一般右上角或者左上角都有地图 人物在某个点是都有一个 由 x:y 组成的坐标

每个人物 移动的时候会发送一串数字给服务器 服务器只是存到内存里(随时准备被下一次请求的数据覆盖) 因为内存的存取速度快 所以存到数据库的话太慢了 我想大家也不会这么做,这就是我们平时玩的时候 在线人数多 会卡的一个原因

而做为一个游戏人物,他只接收你屏幕能看到的人物的坐标,总结下来是这样的,你接受的数据是:

& ID11,2,3,23,56,77,X133,Y86
& ID22,2,3,23,56,77,X155,Y336
& ID33,2,3,23,56,77,X114,Y36

这样看来 其实网络游戏 传输的数据量是很小的

有点累了,,睡觉去了,,,

不用数据库,把坐标写到文件里,需要的时候直接读文件。

坐标信息在游戏进行时,一般不会保存在数据库或文件中,数据量大,刷新快.
一般保存在内存中,只有在下线时才会保存到数据库或文件中.

用个timer 1秒 获取一次信息