Archive

Archive for the ‘网络编程’ Category

[业余土制] Python P2P模块

December 10th, 2010 No comments

影子跟随算法(2007年老文一篇)

December 12th, 2007 13 comments

算法简述

 

动作类游戏如何在高延迟下实现同步?不同的客户端网络情况,如何实现延迟补偿?十年前开始关注该问题,转眼十年已过,看到大家还在问这类问题,旧文一篇,略作补充(关于游戏同步相关问题还可以见我写于2005年的另外两篇文章,帧锁定算法网游同步法则):

影子跟随算法由普通DR(dead reckoning)算法发展而来,我将其称为“影子跟随”意再表示算法同步策略的主要思想:

1. 屏幕上现实的实体(entity)只是不停的追逐它的“影子”(shadow)。

2. 服务器向各客户端发送各个影子的状态改变(坐标,方向,速度,时间)。

3. 各个客户端收到以后按照当前重新插值修正影子状态。

4. 影子状态是跳变的,但实体追赶影子是连续的,故整个过程是平滑的。

clip_image002

1 算法演示

前面的1号终端控制红色飞船P1向左飞,并把自己的状态时时告诉服务器

后面的2号终端上接收到飞船P1的影子S1的状态(向左移动),并让P1的实体追赶S1

网络性能指标一:带宽,限制了实时游戏的人数容量

网络性能指标二:延时,决定了实时游戏的最低反应时间

 

使用该算法可以容易的开发出一款马里奥赛车,或者Counter Strike,详细说明见后:

Read more…

帧锁定同步算法

February 10th, 2007 28 comments

帧锁定算法解决游戏同步

早期 RTS,XBOX360 LIVE游戏常用同步策略是什么?格斗游戏多人联机如何保证流畅性和一致性?如何才能像单机游戏一样编写网游?敬请观看《帧锁定同步算法》

《帧锁定同步算法》转载请注明出处:https://www.skywind.me/blog/archives/131

Read more…

网络游戏南北互通问题分析

June 11th, 2005 No comments

网络游戏南北互通问题方案

网络游戏用户按接入分,有多数的电信用户,次多数的网通用户,又有处于教育网的学生用户,造成了互联互通上极大的障碍。又由于当今游戏用户数据的越来越强的集中性和游戏服务器的分散性之间无可避免的矛盾,无法将游戏平台划分成为一个个独立的世界。

在上次的文档“QQ游戏服务器分布说明”后又补充了一篇“QQ游戏服务器响应速度”,可以发现QQ游戏服务器除去黑龙江,吉林,辽宁三省的大量网通用户外,在各地相对于电信和网通的访问速度都还是比较迅速的。下面是一些分析:

Read more…

网络游戏同步法则

June 11th, 2005 23 comments

网路的硬件也有限,而人的创造也无限,在公网平均130ms的Latency下,是不存在“完全的”的同步情况。如何通过消除/隐藏延时,将用户带入快速的交互式实时游戏中,体验完美的互动娱乐呢?

以下六点,将助你分清楚哪些我们可以努力,哪些我们不值得努力,弄明白实时游戏中同步问题关键之所在,巧妙的化解与规避游戏,最终在适合普遍用户网络环境中(200ms),实现实时快速互动游戏:

Read more…

Wordpress Social Share Plugin powered by Ultimatelysocial