MMO-SNS类游戏服务器间数据交互策略分享

配电网可靠性评估(一)—最小路法和非序贯蒙特卡洛模拟法的matlab实现 电力系统的可靠性研究是相关领域的热点问题。根据研究对象的不同,又可分为发电系统的可靠性,输电系统的可靠性和配电系统的可靠性。配电网在电力系统中处于最末端的位置,直接和用户相连,一旦出现故障情况,就会在用户侧表现为停电事故。因此对配电网的可靠性评估有着重大意义。...... 阅读详情
MMO-SNS类游戏是一种在线角色之间存在交互,同时在线角色又可以同离线角色交互的游戏。这两种交互行为,决定了不同服务器之间的数据交互和常见的MMO类游戏存在很大差别。这类型一般会有下面两种类型的主服务器。
OnlineSvr实现一些MMO的业务逻辑,实现像做任务、战斗、NPC AI、视野管理和消息同步等行为。
OfflineSvr 实现一些离线类的SNS业务逻辑。注意,这个服务器涉及到操作离线角色的一些数据。

OnlineSvr和OfflineSvr的数据交互有一点讲究。简单以角色的EXP做为交互例子。有一个角色R,在OnlineSvr1上,他的经验值记为EXP;有另外一个角色,是R的好友,记为RF吧,在OnlineSvr2上。这个例子我只考虑R的EXP变化。


交互策略一


               

流程
1. R登录后,从OfflineSvr获取EXP1。
2. R执行某个行为后,获取了一些EXP,总的EXP就变成了EXP2,OnlineSvr1把EXP2同步到OfflineSvr。
3. 以此同时,OnlineSvr2上的RF获取了OfflineSvr的R的经验值EXP1。接着RF执行对R的某种SNS行为(比如挑战,挑战过程R不知道),R也可以获取一些经验,R的总经验变成了EXP3,最后OnlineSvr2也会把EXP3同步到OfflineSvr。
   注意上面两个步骤是同时进行的,而且谁先同步都不确定。
4. OfflineSvr收到EXP2和EXP3,最终EXP变成EXP2或EXP3都是不对的,有一部分的EXP丢失了。
从上面流程描述可以看出,直接用总量数据进行服务器间数据同步,业务并行时,同步会出错。


交互策略二

 
 

              


1. R登录后,从OfflineSvr获取EXP1。

2. R执行某个行为后,获取了一些EXP,总的EXP就变成了EXP2,OnlineSvr1把增加的EXP,就是增量DeltaExp传给到OfflineSvr。
3. 以此同时,OnlineSvr2上的RF获取了OfflineSvr的R的经验值EXP1。接着RF执行对R的某种SNS行为,R也可以获取一些经验,OnlineSvr2也将增加的EXP DeltaEXP3传给OfflineSvr。
4. OfflineSvr收到DeltaEXP2和DeltaEXP3,最终将DeltaEXP2和DeltaEXP3家到EXP1上。
5. OfflineSvr传DeltaEXP3给OnlineSvr1;或者,OnlineSvr1主动获取DeltaEXP3。OnlineSvr1上的EXP1和OfflineSvr保持一致。

 

交互策略三

               

交互策略二存在点问题,DeltaEXP如果丢失了,OnlineSvr和OfflineSvr的EXP1将会不一致。对策略二的处理方法做点改进。

1.  R登录后,从OfflineSvr获取EXP1。

2.  R执行某个行为后,获取了一些EXP,总的EXP就变成了EXP2,OnlineSvr1把EXP2同步到OfflineSvr。

3.  以此同时,OnlineSvr2上的RF获取了OfflineSvr的R的经验值EXP1。接着RF执行对R的某种SNS行为, R也可以获取一些经验,OnlineSvr2将增加的EXP DeltaEXP3传给OfflineSvr。

4.  OfflineSvr收到EXP2和DeltaEXP3,最终将EXP1替换成 EXP2,并且把DeltaEXP3保存起来。

5.  OnlineSvr1主动获取DeltaEXP3,将DeltaEXP3加到EXP2,又将结果同步到OfflineSvr。


其他问题

这类服务器数据交互,可以归纳为下面三个要素:

1.  基准数据服务器

相同的数据有多份副本在不同服务器上,应用要确定以哪个服务器上为准。基准服务器的确定,是由业务特点决定的,一般哪个服务器数据改变频率最高,就可以以该服务器上的数据为基准数据。这样可以减少服务器间的数据同步或通知的频率,减少流量,减少数据不一致的时间长度。

2.   全量数据同步和增量数据通知

上面的EXP1,2,3就是全量数据,DeltaEXP3就是增量数据。同步全量数据到另外一个服务器,还是通知增量数据,由哪一方是基准数据服务器决定。

 

3.   服务器对增量数据实时性要求

处理OnlineSvr和OfflineSvr中的数据实时性方法不一样。

OnlineSvr需要及时获取变化数据方法

当位于OnlineSvr2上的其他角色让EXP(EXP是OnlineSvr1上一个角色的EXP)发生变化时,记EXP变化量为DeltaEXP ,OnlineSvr1不能及时知道。 下面是一种比较安全的处理过程:

① OnlineSvr2通知DeltaEXP到OfflineSvr,OfflineSvr保存DeltaEXP。

② OfflineSvr向OnlineSvr1发一个通知,某个角色EXP发生变化了。

③ OnlineSvr1从OfflineSvr取DeltaEXP。

④ DeltaEXP被取走后,OfflineSvr将DeltaEXP清0。
论文分享|ECCV2022,PATnet,Cross-Domain Few-Shot Semantic Segmentation,CDFSS新基准,文末有复现教程 这篇论文提出的跨域小样本语义分割(CD-FSS)任务,旨在将源域学习的分割能力迁移到目标域,仅需少量标注样本。针对传统小样本分割方法在跨域场景性能下降的问题,作者提出了基于金字塔锚点变换的网络(PATNet),通过将域相关特征转换为域无关特征,并引入任务自适应微调推理(TFI)提升目标域适应能力。实验表明,PATNet在1-shot和5-shot设置下分别比现有方法提升8.49%和10.61%的准确率。同时,作者构建了CD-FSS基准并设计了任务难度评估指标。代码和数据集已开源,复现难度中等。 阅读详情

相关推荐

【Isaac Sim】无头服务器远程桌面连接实战:Turbovnc配置与常见问题解决

本文详细介绍了在无头GPU服务器上通过Turbovnc远程桌面连接并运行NVIDIA Isaac Sim的实战教程。针对无图形界面服务器运行仿真软件的核心痛点,文章提供了从Turbovnc安装配置、SSH隧道建立,到以普通用户身份启动服务、解决GLXBadFBConfig等常见图形错误的完整方案,帮助开发者在云端高效部署机器人仿真环境。

weixin_29254673的博客 773

MMORPG游戏中的移动同步相关技术总结

MMORPG中的移动同步技术是游戏开发中一个复杂但至关重要的部分。通过客户端预测、插值、服务器端权威、延迟补偿、回滚机制和优化技术等手段,开发者可以最大限度地减小延迟和不同步现象,提供更为流畅和一致的多人在线体验。随着网络和硬件技术的不断进步,移动同步的技术将不断优化,带来更好的游戏体验。

小宝哥Code的专栏 2350

ESP32 Arduino学习篇 (一) 引脚和串口的基本使用

简单来讲arduino就是通过源代码控制开发板的信号输入输出从而实现对一些电子元件的控制,例如LED灯,蜂鸣器,按键arduino程序首先来讲arduino程序是基于C语言,而实现类似对于LED灯和蜂鸣器的简单控制只需简单C语言知识即可实现。arduino程序是基于函数的,而在arduino的库有很多函数,我们只需要调用即可。arduino的程序主体是**setup()函数和loop()**函数以及其它在使用过程中需要构建的函数:setup()函数。

DOF526570的博客 1万+

我不是问网络,而是问游戏设计中,不是有几个基础类吗?那它们之间的数据是怎么交互的?用什么方式进行数据交互能最大限度减少耦合度...

在游戏设计中,通常会有几个基础类,如游戏对象类、场景类、游戏状态类等。这些类之间的数据交互可以通过多种方式进行,如直接调用、消息传递、事件触发等。 为了最大限度减少耦合度,可以采用以下方式进行数据交互: 使用接口或抽象类来定义数据交互的规范,而不是直接依赖具体类。 使用观察者模式或发布-订阅模式来进行消息传递。 使用数据传输对象(DTO)来封装数据,减少直接依赖。 但需要注意的是,要根据具体情...

weixin_42610671的博客 173

ABB机器人发送实时位置给PLC

本文使用中断方式实现,多任务要订购ABB功能包 Profinet总线组变量配置 注:映射为16位和32位均可用 声明数据 VAR num CurrentExAxisPos;!外轴位置 VAR robtarget pCurrentPos;!实时位置 var intnum TrapNum;!中断号 初始化开中断 IDelete TrapNum;!中断号 CONNECT TrapNum WITH iTrapCurPos;!连接中...

澍澍爸的blog 6778

线性自抗扰控制LADRC(一)---基础知识

LADRC(Linear Active Disturbance Rejection Control)是ADRC的线性化版本,通过简化非线性模块(如ESO和反馈律)降低计算复杂度,适用于实时控制系统(如电机驱动)。

ApexYuan 2078

基于Openfire Smack开发即时通讯应用、获取离线消息,发送消息,联系人列表,添加好友(三)

一:前面两篇说了Openfire服务器的搭建和注册登录,接下来就是重点了,实现与好友之间的聊天。二:获取用户的所有好友XMPPTCPConnection connection /** * 获得所有联系人 */ public Roster getContact() { Roster roster = Roster.getInstanceFor(conn

上辈子作恶多端,这辈子写前端。 8524

C# 进阶:打造WinForms中的动态交互式UserControl

本文深入探讨了如何在C# WinForms中创建动态交互式UserControl,以提升桌面应用的用户体验和代码复用性。通过剖析UserControl生命周期、事件体系,并结合一个可拖拽缩放的分割面板实战案例,详细讲解了鼠标键盘事件处理、自定义绘制、状态管理以及性能优化等核心技巧,帮助开发者封装复杂交互逻辑,打造专业级自定义控件。

weixin_29279153的博客 462

IM开发技术分享:浅谈IM系统中离线消息、历史消息的最佳实践

本文将基于IM消息系统的技术实践,分享关于离线消息和历史消息的正确理解,以及具体的技术配合和实践,希望能为你的离线消息和历史消息技术设计带来最佳实践灵感。

hellojackjiang2011的博客 938

快速玩转 Llama2!机器学习 PAI 最佳实践(一)—低代码 Lora 微调及部署

本实践将采用阿里云机器学习平台PAI-快速开始模块针对 Llama-2-7b-chat 进行开发。PAI-快速开始支持基于开源模型的低代码训练、布署和推理全流程,适合想要快速开箱体验预训练模型的开发者。

阿里云云栖号 1767

流媒体服务软件-LiveNVR channeltree 未授权访问

LiveNVR 能够通过简单的网络摄像机通道配置,将传统监控行业里面的高清网络摄像机 IPCamera、NVR 等具有 RTSP/Onvif 协议输出的设备接入到 LiveNVR,LiveNVR 能够将这些设备源的音/视频数据进行采集、转换、输出,进行全平台终端直播(PC、Android、iOS、微信、H5),并且LiveNVR能够将视频源的直播数据对接到第三方 CDN 网络,实现安防设备互联网级别的直播分发。对channeltree接口加上权限校验。直接访问接口即可获取数据。

iSee857的博客 1040

揭秘重度MMORPG手游后台性能优化方案

https://www.fgba.net/sitemap.xml

wubaohu1314的博客 1063

MIKE21 教程 3.2 随空间变化的网格文件制作(.dfsu文件制作) 曼宁值网格文件制作

上一节讲解了如何制作时间序列文件。本节讲解如何制作仅随空间变化的文件。 目录 1 数据准备 1.1 基于地形设置 1.2 基于地形水深设置: 2 数据导入 3 数据导出

Hello Word 3941

sns的服务器架构设计

今天写写网络负载的事。 之前的项目是MMORPG,mina做网络层的TCP服务器。服务器设计目标应该是5K人以下,其实一般的上线服务器设定3k的就会显示爆满了。当时除了偶尔会突然出现CPU峰值之外,可能是服务器富gc吧,一般情况下还是很轻松的。听说当时的服务器还不是太好的硬件。手机屏幕显示的玩家还是比较少的,通过用分线的策略,按块同步的方式,再加上手游玩家对网络的宽容:),同步的压力也不算太...

134564 358

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

实时在线游戏服务器客户端交互总结

1. 服务器是数据路由还是逻辑控制? l 两种服务器都有合理性,选型主要看游戏类型 l 典型的数据路由服务器:暴雪的BN/浩方/vs l 典型的逻辑控制服务器:各类mmorpg/slg l 两类服务器对比: 数据路由型 逻辑控制型 客户端开发难度 高 中 服务器开发难度 低 高 网络稳定性要求 高 低 游戏升级难度 高 低 可互...

zhangming04的博客 1678

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

网游的交互过程

<!--v/:* {behavior:url(#default#VML);}o/:* {behavior:url(#default#VML);}p/:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}v/:textbox {display:none;}--><div clas

David.Wang 做你喜欢的事情 2837

游戏服务器的常用架构

游戏服务器,是一个会长期运行程序,并且它还要服务于多个不定时,不定点的网络请求。所以这类服务的特点是要特别关注稳定性和性能。这类程序如果需要多个协作来提高承载能力,则还要关注部署和扩容的便利性;同时,还需要考虑如何实现某种程度容灾需求。由于多进程协同工作,也带来了开发的复杂度,这也是需要关注的问题。 游戏服务器架构要素对于游戏服务端架构,最重要的三个部分就是,如何使用CPU、内存、网卡的设计:

小莫的博客 3万+

搭建SNS游戏服务器

服务器前端采用flash 后端采用linux2.6(centos5.3)+ngix+django+pyamf+mysql 通信协议amf3.0 搭建SNS服务器的步骤(同样适用于web服务器): 1,安装centos5.3 64位 2,配置yum,apt-get 3,安装python 4,安装mysql 5,安装django,pyamf 6,安装配置apache,mod_py...

windytwang 270

我对SNS游戏的初步理解

国庆期间,我专门研究了一款SNS游戏,巴别小精灵,这是一款背单词的游戏。算是一款交互式英语学习的应用。一点初步理解和体会,与大家分享。  SNS游戏的特点(1)      异步性(2)      真实好友(3)      虚拟财产 SNS游戏成功的原因(1)      在信仰缺失的今天,开心成为一种信仰。(2)      游戏规模简单,防沉迷(3)     

pennyliang的专栏 2369

大型MMO-SNS类游戏服务器架构

SNS类型的游戏和RPG类的网游有一些不同的特点,而这些特点会导致这类游戏的后台架构和RPG网游的后台架构存在一些区别。 SNS类型的游戏一般有以下的特点: (1)所有的玩家角色可能存在交互         SNS类型的游戏一个玩家角色会找他的好友或者其他任何一个毫无关系的玩家角色进行某种逻辑上的互动。 (2)这类游戏玩家角色一般是看不见的 (3)玩家角色在线或离线状态比较模糊

daemonh 1万+

游戏服务器 数据同步方案

游戏数据同步方案      首先我们介绍实时对战手游中最难解决的技术问题——弱网络下的数据同步问题。   通过对玩家的游戏数据进行观察,发现玩家的游戏环境存在很大差异,不同玩家会使用不同的2G/3G/4G/Wifi网络,不同网络之间的延迟相差很大。另外移动网络质量不稳定,且都是按流量收费,这些都是需要考虑的问题。手机在网络间的切换,又会造成底层网络断线、地址变化等问题,都是常见

开心 1万+

proto数据类型

.proto类型 Java 类型 C++类型 备注 double double double float float ...

chuangshi4640的博客 1223

SNS游戏服务器架构随笔

在最近设计的SNS游戏服务器架构中有一些感悟: 第一, 首先对业务领域进行建模; 产生一些核心的, 不变的概念: 在设计中, 我抽象了几个概念, 1) 绝对ID: 在系统中需要唯一标识的实体或类型; 2) 类型: 实体的类型 3) 数据源: 实体的数据来源和持久化, 在其中实现数据源与程序数据的相互转化 4) 战斗元素: 可以被装备, 可以被在战斗中使用, 为战斗者提供战斗加成

songjiyuan的专栏 1335
上一篇: 以太网原理与最小帧长(傻瓜版)
下一篇: C++ new/operator new/placement new的区别
herm_lib
博客等级 码龄16年 173粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值