一文搞懂帧同步服务端架构
lockstep 帧同步 / 步进锁定 经典架构方案 lockstep,译步进锁定。这是云风大佬给出的翻译。当然也可以简单翻译为帧同步。为什么译为步进锁定呢?这里谈下多人游戏中画面同步算法的思想,所谓画面同步,就是让同一局游戏中的所有电脑同时执行一样的操作,得到一样的结果,也就得到同样的画面。 我们都知道,网络传输是需要时间的,也就是存在延迟的。但是,我们要理解一点,懂动画的同学应该知道...
lockstep 帧同步 / 步进锁定 经典架构方案 lockstep,译步进锁定。这是云风大佬给出的翻译。当然也可以简单翻译为帧同步。为什么译为步进锁定呢?这里谈下多人游戏中画面同步算法的思想,所谓画面同步,就是让同一局游戏中的所有电脑同时执行一样的操作,得到一样的结果,也就得到同样的画面。 我们都知道,网络传输是需要时间的,也就是存在延迟的。但是,我们要理解一点,懂动画的同学应该知道...
最近由于工作上的需要,需要应用效果比较好的客户端玩家位置同步方案,在查看大量技术博客和云风大佬的博客,得到效果较好的玩家位置同步方案。 云风大佬的博客中说过,好的同步方案依赖于准确的对时系统。什么是对时系统呢,对时系统是指所有客户端和服务端采用同一套内部时间系统,而不是使用各自操作系统的时间系统。对时系统的设计不是本文的重点,详细可以去参考云风大佬的博客。 好的位置同步方案一定要考虑网络...
在网络游戏中客户端如何渲染出当前之间时间的场景呢?需要两个东西,第一个是地图生成时的时间戳,被称为地图种子。客户端得到地图种子,就可以根据当前时间推算出对于无状态的当前地图场景。无状态的地图场景从生成开始之后的所有场景变化都是可以通过人为计算出来的,所以被称为无状态的地图场景。既然有无状态,意味着场景中存在有状态的场景元素,他们需要被玩家人为触发生成,和地图种子没有关系。这种地图元素被称为有...
本文主要参考Everything you wanted to know about the Actor Model but might have been afraid to ask, 本义是讲解actor模型的基本方面,了解actor模型背后的关键思想及其主要前提 Actor模型是一种计算的数学理论,基于Actors的概念。Actor是计算的基本单元,体现为三件事: 信息处理 ...
搭建集群概况 2台2g2g、1台2g4G云服务器实例 集群内服务器角色如下: 节点 角色 IP k8s-m-1 master 192.168.1.1 k8s-m-2 worker 192.168.1.2 ...
redis缓存数据库数据,当数据库数据被更新时,需要通知redis对应缓存失效。最简单的通知方式就是在数据库完成更新后,更新redis的数据,但是这样会面临一个问题,这个操作不是原子的,因此客户会请求到失效的缓存。如果更新完数据库后更新缓存之前,线程被调度,这样就会产生时间gap。如何解决这个问题呢?大部分人可能想到加锁,锁住一个热点数据缓存可不是一个明智之举。 发布订阅设计模型是非常著名...
我们熟悉在多线程并发编程中,需要对共享资源加锁,使得混乱的并发访问降级为合理的串行访问。同理在分布式系统中,可能存在多个进程对一个共享资源进行并发的修改,比如某个进程的数据库数据;这个时候需要对这个数据库上分布式锁,以保证该数据能被串行访问。 分布式锁的性质 工程上对分布式锁规定需要如下几项核心性质: 独占性:在某一时刻,锁只能被一个取锁方持有 健壮性:不允许产生死锁,假设持有...
设计高并发实时排行榜所需redis基础 redis四大统计 基数统计 基数 / Cardinality 是指集合中不同的元素的数量,简单来说,就是去重后的个数。 二值统计 二值统计是指将数据分为两个类别或状态,成功失败这样的,并对这些数据进行计数和分析。 排序统计 排序统计涉及将数据按照一定的顺序(升序或降序)进行排序,以便分析比较。 聚合统计 将多个数据记录组合成一个集合,并对该集合进行数...
实际开发中,我们经常会遇到这样的需求,在日常开发中,经常会遇到这样的需求:查看某条记录是否存在,不存在的话创建一条新记录,存在的话更新某些字段。正常我们会这样处理,先查询有没有,然后在insert。针对这个需求,mysql提供了更加方便的指令 insert into ... on duplicate key update ... 在insert的时候,如果insert的数据会引起唯一索...
一个完整的go项目通常包括两个部分module 和 package。module表示第三方包;package表示项目源码,项目源码以package的形式组合,一个package包含多个代码源文件。module和package共同负责go项目的项目管理; module常用命令 module