一般游戏不是一服对应一数据库嘛,那跨服是怎么实现的??很好奇!!!

2018-11-08 15:19:22 +08:00
 atfeel
3391 次点击
所在节点    问与答
11 条回复
sundy2014
2018-11-08 15:27:22 +08:00
之前看到的,说是同一个数据库,不同的区,只是登入入口不同而已。最后的主程序和数据库是同一个的。比如 1234 区是跨服区,就是同一个数据库,主程序。45678 是另外一个跨服区,又共用另外一个。
pcloves
2018-11-08 15:51:47 +08:00
说一下 mmorpg ~

不清楚你说的跨服概念,所以我先说一下我们自己理解的跨服:一般指的是某个活动的跨服玩法,比如跨服国战,这种情况下,A 服和 B 服的玩家早到 C 服( C 服也称作大世界服)参与活动,活动结束后,各回各家,奖励在各自服务器发放,存盘~这种概念的跨服很有局限性,而且需要针对性的开发跨服玩法。这种概念的跨服不影响各服的生态环境

另外一种跨服,应该是题主说的合服的概念,主要就是 A 服和 B 服的数据库进行合并(比如 a 库合并到 B 库,或 A 和 b 合并到 C 库),合服完毕后,游戏服务器连接新的 db,所以这种操作对玩家来说是无感,登录的还是自己的服,但是发现人多了,这种概念的跨服其实是将两个生态合并到一起,主要是应对玩家流失~

以上
v2eAllen
2018-11-08 15:59:59 +08:00
游戏后台开发者答一发,跨服的概念是把不同服的玩家拉到同一个场地内,进行游戏交互。楼主说的 1 对 1 数据库,那就把玩家数据拉到跨服中(内存),同时客户端需要建立到跨服的网络连接。跨服玩法结束后,再把玩家的数据删除掉。
一般在跨服玩法中,不会直接改变玩家属性。如果需要改动,也是发送消息通知到玩家所在的服务器进行修改。
feverzsj
2018-11-08 16:03:03 +08:00
就是和携号转网差不多嘛
xxxy
2018-11-08 17:24:52 +08:00
@v2eAllen 把数据存到内存长时间不是不可靠吗?
loveour
2018-11-08 19:00:59 +08:00
@xxxy #5 游戏服务器并不需要那么高的可靠性,真要丢数据,也就丢了,又不是银行。毕竟数据也没那么容易丢,服务器设计好点丢数据概率很低。
关于跨服同意 3L 说法。合服和跨服还是不一样的。
changnet
2018-11-08 19:13:20 +08:00
一服对应一数据库。跨服时,各个分服的各有一 socket 连接到跨服逻辑服,把玩家数据传过去。玩家在跨服逻辑服要保存数据时传回对应的分服。

根据各游戏的玩法不一样,传的数据会进行具体优化。
MeteorCat
2018-11-08 19:21:32 +08:00
2 和 3 楼正解
atfeel
2018-11-08 20:31:24 +08:00
@changnet 感觉你这个说法比较靠谱.
就是不知道 socket 连接到跨服逻辑服等等一套流程的原理..

很想知道
des
2018-11-08 20:45:36 +08:00
首先,你这个理解有点问题。

一般直接连接的是接入系统,用来管理连接,鉴权,数据分发。不过也有
qwe61655
2018-11-09 10:06:30 +08:00
怎么实现都可以 这属于基础啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/505796

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX