再谈网络游戏同步

多人在线网络游戏的同步算法一 基础篇 0 基本问题 1 在一款单机游戏中,玩家只需和本地游戏里面的元素(如AI,NPC等)进行实时交互即可; 2 而在多人在线网络游戏中,玩家还需要同同样联网的其他玩家进行互动,玩家在本地看到的其他玩家,本质上,都是其他玩家的镜像。我们知道,其他玩家的行为,通过网络传输过来,是有延时的。这个真实世界不一样,你在真实世界里看到一个人作出某个动作,从一个人做出动作到被你看到,这个时间是可以忽略不计的(光速)... 阅读详情

呵呵,一年前的这个时候发过一系列讨论网络游戏同步的帖子。
一年后的今天,再重新讨论讨论这个问题。。。

不知道大家是否碰到过这种情况,当某个玩家发出一个火球,这个火球有自己的运动
轨迹,那么如何来判断火球是否打中了人呢?大部分情况,当策划提出这个要求的时
候,一般会被程序否认,原因是:太麻烦了,呵呵。复杂点的还有包括两个火球相撞
之类的事情发生。

那么网络游戏中,是否真的无法模拟实现这种模拟呢?

首先我们来看看模拟此种操作会带来什么样的麻烦:
1,服务器必须trace火球的运行轨迹,乍一想,挺慢的。
2,网络延迟,传过来有延迟,传过去有延迟,延迟还不稳定,麻烦。
3,都有两点解决不了了,接下来不愿意再想了。

呵呵,实际上呢,对火球的模拟比对人物运动的模拟要轻松很多,原因很简单,火球
的方向不会变。下面来看看具体用什么样的结构来实现:

不知道大家是否还记得我去年这个时候提到过的Dead Reckoning算法,我们要模拟火
球运动的关键就在于一个叫Moving Objects Tracing Server的服务器程序,这个服务
器是干什么的呢。这个服务器接收主游戏服务器发过来的注册事件的信息,比如有个
玩家,开始移动了,那么主游戏服务器就把该玩家的运动PDU,包括方向,速度,加速
度,起点发给MOTS (Moving Objects Tracing Server),然后MOTS自己开始对其运行
进行模拟,当游戏服务器发来第二个PDU包的时候,则对各个物件的位置进行修正,并
重新开始模拟。那么,我们模拟的目的是什么呢?当然是发生某些事件,比如说碰撞,
或者掉入地图的某个陷阱的时候,会将该事件回发给主逻辑服务器。然后逻辑服务器来
处理该事件。

那么,对于火球的处理,也和处理其他玩家的同步一样,当接收到玩家的发火球的指令
以后,产生一个火球,并指定其PDU信息,在MOTS上注册该个运动物体。当MOTS自行模
拟到这个物体和其他玩家或者NPC物体产生碰撞,则通知主逻辑服务器,然后主逻辑服
务器产生相应的动作。

那么关于延迟呢?有些人也许会说,比如说前面有个火球,我本地操纵的小人其实躲过
去了,但是因为网络延迟,在服务器上我并没有躲过去,那么怎么算?呵呵,不知道大
家玩过星际没有,有没有发现在星际中玩多人连线模式的时候,有一点最特别的地方,
就是控制一个小兵的时候,点了地图上的某个位置,但是小兵并不会马上开始移动,而
是有一定的延迟,但是这一小点延迟并不能掩盖星际的经典,同样的理论用到这里也成
立。对于客户端的控制,当玩家操纵的主角改变PDU信息的时候,确保信息发送到服务
器之后,再开始处理本地的操作指令,这样就能保证本地的预测和服务器的预测几乎是
没有什么误差的,即使有很小的误差产生,以服务器为主,这样玩家也不会有太大的抱
怨。

网络游戏中的移动同步问题资料 带宽限制下的视觉实体属性传播 这篇文章主要提到2种方法来进行同步: 第一是每个客户端模拟别的客户端的移动,收到服务器消息以后,通过 当前运动+服务器指令 = 当前运动方式,这里重要的是混合算法的选择; 第二是根据玩家离自己的远近调整发包频率,离得越近频率越大,减小视觉误差; 第三是时间系统,假定客户端定期收到服务器消息 还包括一些其它内容,比如游戏中其它信息的同步 网络 阅读详情

相关推荐

网络游戏同步:状态同步核心原理剖析

状态同步的核心就是:处理每种状态和事件之前,先同步,然后再服务端计算服务端的,客户端做客户端的。只要是网络游戏,涉及到服务器与客户端同步的游戏,都可以使用状态同步,举几个状态同步的例子,如《魔兽世界》,腾讯《吃鸡》,《自走棋》等大部分的多人在线的网络游戏都是用状态同步来做的,换句话说网络游戏中除了少数人对战(5v5, 10v10)的Moba类,FPS类等会用帧同步以外,其它的都是状态同步。由上面得到的结论就是,行走过程中位置的变化,没有必要同步到客户端,服务端跑服务端的,客户端跑客户端的,只是。

voidinit的专栏 949

服务端构架干货:快节奏多人游戏的技术实现

stanleyluo编译一、简介序本文是探索如何制作快节奏多人游戏相关技术和算法的系列文章中的第一章。如果你熟悉多人游戏背后的概念,可以放心跳过本章 - 接下来是一些介绍性的讨论。作弊问题一切都始于作弊。做为游戏开发者,通常不会关心是否有人在你的单人游戏中作弊,因为他的行为只会影响他自个儿。作弊的玩家可能不会按照你设计的过程来体验游戏,但这已经是他自己的游戏,他们有权利想怎么玩就怎么玩。多人游戏则不同。在所有竞技游戏中,作弊玩家不仅只提升自己的体验,同时也破坏了其它玩家的体验。做为开发者你得避免这种行为,因

wubaohu1314的博客 847

博通PEX89000 PCIe 5.0交换芯片:如何为AI集群构建高效GPU互联架构

本文深入解析了博通PEX89000 PCIe 5.0交换芯片如何为AI集群构建高效的GPU互联架构。该芯片通过提供高带宽、低延迟的PCIe 5.0交换能力,打破传统GPU通信的带宽瓶颈,并支持多主机共享、资源池化及软件定义拓扑,从而显著提升大规模AI训练与推理任务的效率与资源利用率。

weixin_29214559的博客 411

再谈网游同步技术:实时动作游戏同步方式和传输协议选择

http://www.gameres.com/478430.html 6 天前 上传 下载附件 (88.33 KB)   GameRes游资网授权发布 文 / 韦易笑   实时动作游戏在近年来得到迅猛的发展。而游戏同步问题,成为大家继续解决的核心问题之一。早在 2004年,国内游戏开发还处于慢节奏 RPG满天飞的情况下,我就开始实时动作游

茶向 8291

SAP SD跨公司销售IDOC自动记账配置实战指南

本文详细介绍了SAP SD模块中跨公司销售IDOC自动记账的配置实战指南。通过IDOC技术实现集团企业间交易的自动化处理,显著提升财务效率和准确性。文章涵盖前置配置、RFC连接、合作伙伴参数设置及财务科目分配等关键步骤,并提供了常见错误排查和性能优化建议,帮助用户快速掌握这一高效业务流程。

weixin_29284885的博客 769

Axure RP9 利用中继器实现列表数据的切换,分页器数据的动态交互加载

Axure RP9 利用中继器制作分页组件 在原型制作中,如何实现分页数据的动态加载、分页与数据的交互,每页显示条数的设定。下面通过制作五年级一班成绩单分页列表,分享给大家,适合有一定axure使用基础的人员,如有更好的方案,请多多指教。 最终效果图: 步骤1:首先利用中继器画出成绩单列表,并绑定成绩单数据。 步骤2:画出每页显示条数控制下拉框,利用中继器画出分页组件 步骤3:新增全局标量maxpage(显示的最多页码),minpage(显示的最小页码),i(循环计数),j(最循环数),selectpa

shandongmike的博客 6819

帧同步相关

http://gad.qq.com/wenda/activity/10016?sessionUserType=BFT.PARAMS.236740.TASKID&ADUIN=1397601311&ADSESSION=1505959700&ADTAG=CLIENT.QQ.5533_.0&ADPUBNO=26719 请教帧同步问题 您好!跟您请教几个问题:1.帧同步预判玩家输

N的专栏 2880

避开这些坑,你的Python爬虫才能稳定爬取IEEE Xplore(含反爬策略与MongoDB存储实战)

本文详细介绍了如何构建稳定的Python爬虫系统以爬取IEEE Xplore学术论文,包括反爬策略、MongoDB存储优化和断点续传机制。通过动态等待时间算法、请求头指纹管理和会话保持策略,有效应对IEEE的反爬机制。同时,优化MongoDB数据结构和索引,提升存储效率。最后,强调法律合规与伦理考量,确保爬虫合法合规运行。

weixin_29031057的博客 1095

2015再谈游戏同步

实时动作游戏在近年来得到迅猛的发展。而游戏同步问题,成为大家继续解决的核心问题之一。早在 2004年,国内游戏开发还处于慢节奏 RPG满天飞的情况下,我就开始实时动作游戏研究,分别在 2005-2006期间写了一系列相关文章,被好多网站转载:如今十年过去,网上越来越多的人开始讨论游戏同步技术了,然而很多文章往往只针对某种特定的游戏情况,而观点又经常以偏概全。很多人并没有真正开发过实时动作游戏,更别

Sunface撩技术 3685

从零构建C++ Gerber解析器:以PCB缺陷检测为目标的实战指南

本文是一份面向PCB缺陷检测项目的实战指南,详细介绍了如何从零开始使用C++构建高性能的Gerber文件解析器。文章深入剖析了Gerber RS-274X格式,并提供了完整的开发环境搭建、核心数据结构设计、解析步骤实现以及为缺陷检测优化的具体方案,旨在帮助开发者获得对PCB制造数据的深度控制与极致性能。

weixin_29291185的博客 184

EB TRESOS 29.0.0安装教程用于MCAL配置开发

本文介绍的搭建基于NXP官网提供EB软件,进行基于标准AUTOSAR软件底层驱动配置的开发

qq_53260940的博客 1877

(转) 小谈网络游戏同步

本文转自:http://dev.gameres.com/Program/Abstract/DeadReckoning.htm 同步在网络 游戏中是非常重要的,它保证了每个玩家在屏幕上看到的东西大体是一样的。其实呢,解决同步问题的最简单的方法就是把每个玩家的动作都向其他玩家广播一遍, 这里其实就存在两个问题:1,向哪些玩家广播,广播哪些消息。2,如果网络延迟怎么办。事实上呢,第一个问题是个非常简单...

wwj256的专栏 119

【反蒸馏实战 00】AI抢不走的工作:一份针对30个“高危”职位的“反取代”实战手册(反蒸馏计划启动)

AI时代职场生存指南:30个技术岗位的“反蒸馏”实战策略 随着AI技术快速发展,职场正面临前所未有的结构性重构。本系列专栏聚焦30个技术岗位,深入分析AI对各职位的影响路径,并提供系统性的"反蒸馏"策略。通过5层分析框架(AI冲击现状、核心价值解构、AI天花板、能力升级路径、人机协作模式),帮助从业者识别可替代任务与核心价值,建立不可替代的专业优势。内容涵盖IT开发、数据分析、产品管理等技术领域,为职场人提供从“被AI替代”到“与AI协同”的转型路线图,守护职业价值。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1651

断线卡顿怎么办?腾讯游戏学院专家谈网络游戏同步技术

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

woliuqiangdong的博客 366

YOLO由浅入深,最简单地说明白YOLO基本实现原理

YOLO(You Only Look Once)是一种高效的实时目标检测技术,广泛应用于自动驾驶、监控和无人机等领域。其核心优势在于速度快,能够在视频流中实时识别目标并标出其位置、大小、类别及置信度。YOLO基于卷积神经网络(CNN),通过卷积层提取图像特征,池化层和扁平化层优化特征处理,全连接层进行分类。与传统方法不同,YOLO将图像分割成多个网格,每个网格预测多个边界框及其置信度,仅对高置信度的框进行详细计算,从而快速确定目标的位置和类别。这种机制使得YOLO在保持高准确率的同时,实现了高效的实时处理能

qq_30279827的博客 566

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

帧同步分离逻辑层和渲染层_断线卡顿怎么办?腾讯游戏学院专家谈网络游戏同步技术...

编者按网络游戏同步技术影响着玩家的体验,如果没有做好,可能会使玩家大量流失。腾讯游戏学院专家Donald,在本文对网络游戏同步技术进行了系统性的介绍,希望对大家有所帮助。本文会就网络游戏同步技术进行概述,包括如下内容:著名游戏网络同步方案汇总、网络传输协议(Network Transport Protocol)、网络同步模型(Network Model)、网络拓扑结构(Network ...

weixin_39986741的博客 1015

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Unity3D帧同步模式的网络游戏详解

帧同步(Frame Synchronization)是指在网络游戏中,多个客户端在同一时刻执行相同的游戏逻辑,确保各个客户端的游戏状态保持一致。这种同步方式对于实现公平的多人游戏和减少网络延迟对游戏体验的影响至关重要。Unity3D作为一款强大的跨平台游戏引擎,提供了丰富的工具和接口来实现帧同步。对惹,这里有一个游戏开发交流小组,大家可以点击进来一起交流一下开发经验呀!Unity3D帧同步模式的网络游戏实现涉及多个关键技术点,包括确定帧率、采集输入、模拟游戏逻辑、状态同步和渲染画面。通过合理设计帧同步机制。

voidinit的专栏 1563

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

网络游戏同步

<br />原文地址:http://dev.gameres.com/Program/Abstract/DeadReckoning.htm<br /> 同步在网络游戏中是非常重要的,它保证了每个玩家在屏幕上看到的东西大体是一样的。其实呢,解决同步问题的最简单的方法就是把每个玩家的动作都向其他玩家广播一遍,这里其实就存在两个问题:1,向哪些玩家广播,广播哪些消息。2,如果网络延迟怎么办。事实上呢,第一个问题是个非常简单的问题,不过之所以我提出这个问题来,是提醒大家在设计自己的消息结构的时候,需要把这个因素考虑进

doudouHuY的专栏 1211

网络游戏的同步问题

最近是看到知乎上的关于网络游戏位置同步问题的讨论?整理了下资料,总结如下:   在实时网络游戏中,如何尽可能的做到玩家位置的同步? 可以参考一下文章: http://www.zhihu.com/question/29076648 http://blog.codingnow.com/2006/04/sync.html http://www.skywind.me/blog/archives

baidu20008的专栏 2953

网络游戏知识——【同步算法】

同步是网络游戏的一大难题,不同类型的游戏对同步有着不同程度的要求,如何解决好同步产生的问题?同步方案(帧同步,状态同步,状态帧同步)的区别和联系?网络传输协议(TCP,UDP,可靠UDP)的区别和联系?下面就让我们一起来学习下吧。

qq_53045580的博客 1941

网络游戏开发之同步模式

网络游戏开发之同步模式 网络游戏如何实现所有客户端玩家信息同步?(如吃鸡中所有玩家的位置同步) 同步模式一般分两种:状态同步和帧同步。 状态同步:状态发生变化后,客户端上传操作到服务器,服务器收到后处理行为的结果,然后以广播的方式把状态发送给客户端,客户端收到状态后再根据状态显示内容。 如:吃鸡等大地图游戏、MMO游戏、因为MMO游戏的客户端承载有限,并不能把整张地图的实体全部展现出来。 帧同步:每一帧都要同步,每个客户端通过拿到相同的状态和指令,按帧顺序执行,达到同步效果。 如:LOL、王者荣耀等 二者

小程小程,永不消沉 5472

网络游戏同步的算法

2009-07-20 17:44   不知道大家是否碰到过这种情况,当某个玩家发出一个火球,这个火球有自己的运动轨迹,那么如何来判断火球是否打中了人呢?大部分情况,当策划提出这个要求的时候,一般会被程序否认,原因是:太麻烦了,呵呵。复杂点的还有包括两个火球相撞之类的事情发生。     那么网络游戏中,是否真的无法模拟实现这种模拟呢?     首先我们来看看模拟此种操

wangchuanjin的专栏 6785
上一篇: 网络游戏同步
下一篇: 防外挂系列
tarkey
博客等级 码龄25年 30粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值