贴吧用户_0CU1WM3
按时阿斯顿9
关注数: 2
粉丝数: 25
发帖数: 4,782
关注贴吧数: 1
星际公民复制层初步上线,下季度将落实全局持续性
星际公民复制层初步上线,下季度将落实全局持续性
星际公民复制层初步上线,下季度将落实全局持续性
星际公民复制层初步上线,下季度将落实全局持续性
星际公民复制层初步上线,下季度将落实全局持续性
星际公民复制层初步上线,下季度将落实全局持续性。
星际公民Gen12的进展以及给3.17版本带来的性能提升
星际公民还差4个项目完成永久持续性 预计7月份完成永久持续性,8月份左右上线,届时这项技术将与打捞玩法完美契合,打捞玩法将能够打捞到真实战场中的永久性残骸。
星际公民还差4个项目完成永久持续性 预计7月份完成永久持续性,8月份左右上线,届时这项技术将与打捞玩法完美契合,打捞玩法将能够打捞到真实战场中的永久性残骸。
星际公民残骸打捞最新进展(单兵模式)
星际公民残骸打捞最新进展(单兵模式)
星际公民残骸打捞最新进展(单兵模式)
星际公民残骸打捞最新进展(单兵模式)
星际公民残骸打捞最新进展(单兵模式)
星际公民残骸打捞最新进展(单兵模式)
这项功能的上线将使星际公民爆了绝大部分开放世界
这项功能的上线将使星际公民爆了绝大部分开放世界
这项功能的上线将使星际公民爆了绝大部分开放世界
这项功能的上线将使星际公民爆了绝大部分开放世界
这项功能的上线将使星际公民爆了绝大部分开放世界
星际公民3.15版本的受伤与治疗 在3.15版本关于受伤与治疗的更新将朝萝卜愿景中的“太空人之死”更进一步。以前99%会死亡的情况将变成倒地状态(Down State)。在倒地状态中,你是无行为能力的,但可以等待别人来救你。而且即使救回来了,你身上也会有严重的损伤,比如头部、胸口的损伤、手臂骨折等,其中最最严重是腿骨折。不同损伤会带来不同的效果,比如头部受伤将有视野效果,并且受伤越严重,就越会受到受力反馈的影响(比如风会把你吹倒)。
星际公民的颠覆性技术——持续性串流与服务器网格化详解 持续性串流与服务器网格化 专有的服务器网格和持久性技术将允许星际公民扩展其跨游戏服务器的共享宇宙。 最终,这项技术将允许数千名玩家共存于诗句中。 一旦实施了第一个版本,服务器和玩家的数量将在后续版本中增加。
星际公民的颠覆性技术——持续性串流与服务器网格化详解 持续性串流与服务器网格化 专有的服务器网格和持久性技术将允许星际公民扩展其跨游戏服务器的共享宇宙。 最终,这项技术将允许数千名玩家共存于诗句中。 一旦实施了第一个版本,服务器和玩家的数量将在后续版本中增加。
星际公民的颠覆性技术——持续性串流与服务器网格化详解 持续性串流与服务器网格化 专有的服务器网格和持久性技术将允许星际公民扩展其跨游戏服务器的共享宇宙。 最终,这项技术将允许数千名玩家共存于诗句中。 一旦实施了第一个版本,服务器和玩家的数量将在后续版本中增加。
星际公民的颠覆性技术——持续性串流与服务器网格化详解 持续性串流与服务器网格化 专有的服务器网格和持久性技术将允许星际公民扩展其跨游戏服务器的共享宇宙。 最终,这项技术将允许数千名玩家共存于诗句中。 一旦实施了第一个版本,服务器和玩家的数量将在后续版本中增加。
星际公民路线图再次更新
星际公民-动态服务器网格化的非官方之路 在服务器OCS的第一个版本中,只要将某个级别的区域卸载到驱动器/数据库上,这些区域中的实体就不再在游戏循环中计算出来,因此不会发生任何变化。 本质上,该特定区域会及时冻结,直到玩家再次移回该区域。 在模拟,沉浸式和经济驱动的世界中,这并不理想。 为了解决这个问题,将来,另一台服务器/服务将占用这些卸载区域,并快速模拟已过去的时间。 这样,通过将模拟抽象到最低限度,同时使宇宙保持生命状态,可以大大减少所需的计算资源。 例如,如果没有玩家在现场见证正在维修的NPC,则不必模拟奔跑并完成工作的人,只需在后台数据库中增加船体值即可。 当玩家再次进入该区域时,与该玩家离开该区域时相比,船舶将处于修复程度更高的状态。 同时,NPC就像整个时间都在忙一样,再次被装回该地区,甚至认为他们实际上并不存在以进行维修。 这样,整个宇宙将始终充满生机,甚至认为大部分宇宙甚至都不会在游戏服务器本身上进行主动加载和计算。 由于必须在数据库中更新值,然后由游戏服务器访问并将其加载到内存中,因此此功能在很大程度上依赖于完成“全局持久性”。 在更高的抽象级别上模拟游戏世界也将成为“量子”经济模拟器的主要功能。 依赖全持久性的Server OCS的另一个未来的主要功能将是Server Recovery。 一旦所有实体的所有状态都持续保存在数据库中,便可以在崩溃后恢复服务器。 如果发生崩溃,则可以在其位置启动新服务器,数据库提供有关崩溃时服务器上存在的实体的信息,通过Server OCS将这些实体加载回内存并连接播放器客户端回到服务器。 因此,在服务器崩溃的情况下,玩家只需经历几秒钟的中断,游戏中几乎就不会有任何进度损失,然后才能够继续从他们停下来的地方继续玩游戏。 5/5 耐力风格 耐力风格 概述 问题: 物理上存在并存储在游戏世界中的所有物品,物理损坏和退化,成千上万的NPC生命,人工智能和玩家产生的成千上万个动态任务和事件,完全模拟的经济性都在一个单一的环境中-碎片服务器网格,所有游戏世界都需要保存到数据库中,然后由游戏服务器实时访问 解决方案:持久流,完全持久 要求:服务器网格划分 目标: 拥有一个持久的世界,一切都存储在数据库中,并在需要时由游戏服务器加载(流式传输) 方法: 引入微服务后端架构,以实现高数据吞吐量,低延迟,高响应性和高可扩展性 在主数据库和游戏服务器之间具有诸如项缓存之类的缓存服务,以分散负载并减少主数据库上的负载 在游戏世界的高层抽象中模拟经济,以建立一个现实的动作/反应系统,其效果将正确地反映在游戏世界中 游戏服务器上具有逻辑,这些逻辑可以访问数据库(例如长期持久性,项目缓存,信誉数据库,量子经济模拟器生成的概率和任务数据等),然后使用所有这些来创建自己的游戏世界部分 1/1 静态的 服务器网格化 静态服务器网格划分 概述 通过客户端和服务器的对象容器流传输,游戏现在仅能够加载玩家周围必要的关卡区域和实体,以减少系统内存和CPU负载的总体使用量。 有了这些系统,就可以开始进行服务器网格划分。 (免责声明:关于静态服务器网格划分的许多细节仍不清楚!) 问题: 现在,服务器负载主要由连接到其上的播放器数量决定 增加更多的玩家将导致加载更多的关卡区域,从而加载更多的实体,从而增加内存和CPU负载,最终将其限制在服务器上 这就是为什么尚无法执行诸如复杂的AI行为和游戏系统之类的计算密集型任务 解决方案:静态服务器网格划分,这是最终动态服务器网格划分实施之前的中间步骤 目标: 将当前由一台服务器计算的整个级别的负载分散到多台服务器上 减少服务器负载,以便能够增加内容量(和播放器数量,但只能缓慢!) 方法: 而不是仅在单个服务器上运行级别,而是拆分级别并将每个部分放在其自己的服务器上 区域可以是游戏区域,例如行星和卫星(区域可能用于划分游戏世界) 多个网状服务器,它们一起工作以模拟相同的游戏世界,形成一个“碎片” 从一个区域移动到另一区域时,需要像穿越层级的播放器这样的实体从一台服务器移动到另一台服务器(使用OCS技术进行卸载/网络连接)(播放器只能在相同分片的服务器之间移动,而不能在分片之间移动) 播放器客户端在从一台服务器移至另一台服务器时必须无缝更改其服务器连接 跟踪在哪个服务器(最有可能在全局数据库中)上计算哪些对象 跟踪在哪个服务器上计算玩家(也在全局数据库中) 1/9 静态服务器网格划分 简介-初始情况 客户端和服务器的第一个对象容器流(OCS)版本完成后,我们终于可以朝最初的目标迈进:服务器网格化。 即使使用OCS软件系统,也无法将玩家数量增加到成千上万,也无法在游戏世界中添加成千上万的对象,以使数十个太阳能系统成为现实。 由于作为服务器网格划分的软件技术非常复杂,因此预计将花费很长时间来开发。 为了尽快为播放器提供第一个版本,CIG决定首先发布一个简单版本:静态服务器网格划分。 从理论上讲,这应该允许AI改进,游戏机制和更多的太阳能系统和位置以及稍高的玩家人数添加到游戏中,甚至在最终的Dynamic Server Meshing实现工作完成之前。 2/9 静态服务器网格划分 服务器和客户端的更简单的视觉抽象 由于我们现在进入了服务器网格划分的主题,因此我们需要以更加简化和精确的方式表示服务器和客户端的网络连接。 图片的左半部分在顶部显示服务器,在底部显示连接的玩家及其游戏客户端。 这是一个单一的分片,并且可以同时独立存在数十个分片。 (由于它们是独立的,因此我们仅关注单个分片的内部工作。)分片中的客户端和服务器通过网络(在这种情况下为互联网)进行连接,以允许将信息作为数据包进行交换使服务器和客户端保持同步。 图片的右半部分显示了我们的新简化版本。 现在,我们用正方形表示服务器,用圆形表示客户端。 由于每个服务器和客户端都是唯一的,因此我们用数字(以及播放器客户端的颜色)来识别它们。 3/9 静态服务器网格划分 示例-解决方案1/6 由于“静态服务器网格划分”将关卡划分为多个部分,以在不同服务器上计算每个分区,因此我们将让播放器根据它们在关卡中的位置连接到分片中的不同服务器。 这些部分最有可能通过区域来确定。 他们已经将关卡分为空间部分。 因此,斯坦顿的太阳系可以分为两半,每个服务器可以计算出两个行星及其卫星(以及行星上所有其他物体)的区域。 在右侧的“对象容器”示例中,此拆分已用一条简单的红线显示。 目前,我们仅将关卡分为两个部分/服务器,但是静态服务器网格划分将允许一个碎片中的数十个部分/服务器(例如,Stanton系统中的每个主要行星和每个卫星都有自己的服务器) )。 但是由于这可能导致服务器使用效率低下,因为它可能导致大量的服务器空载或负载过低,因此最初可能会将其划分为尽可能少的部分,然后逐步增加补丁。 4/9 静态服务器网格划分 示例-解决方案2/6 在左图中,我们拥有三个角色,就像我们在前面的客户端和服务器OCS示例中所做的一样。 服务器S2上的绿色玩家(C2)和红色玩家(C3)忙。 同时,玩家Blue(C1)即将把货物从服务器S1上的一个星球运送到服务器S2上的另一个星球。 我们可以看到红线将关卡拆分了(请记住,该线只是一个抽象,以便于可视化。它将使用Zones划分游戏世界)。 5/9 静态服务器网格划分 示例-解决方案3/6 这位蓝色玩家完成了将货物装载到船上的工作,现在开始使用他的量子驱动器从一个星球旅行到另一个星球。 当他停留在指定给服务器S1的区域中时,一切照常工作。 但是一旦他即将离开其区域并跨入第二服务器的区域,S1服务器就准备将玩家转移到第二服务器S2。 服务器S1通过网络将有关相关实体(玩家,轮船,货物和物品等)的所有信息作为序列化数据包发送到服务器S2。 (仍然不确定服务器是直接交换数据还是通过iCache交换数据。我推测情况是这样)。 6/9 静态服务器网格划分 示例-解决方案4/6 S2使用该数据在其自己的内存中重新创建这些实体。 如果玩家周围的区域中没有其他玩家,则该区域中的所有其他对象容器也需要加载,因为服务器负责计算其关卡区域内的所有对象。 服务器OCS用于完成此加载过程。 一旦加载到内存中,S2便会通知S1它已准备好进行传输。 依次将消息发送到Blue Player客户端,该客户端与S2建立第二个网络连接。 为了实现无缝过渡,所有行进实体都必须同时存在于两台服务器上。 一旦播放器客户端将自己连接到S2,S1便不再负责Blue播放器的计算,而S2将无缝地接管工作。 现在,S2为蓝色播放器定义状态。 7/9 静态服务器网格划分 示例-解决方案5/6 成功将Blue播放器从S1传输到S2后,Blue客户端和服务器S1之间的网络连接将关闭。 S1使用服务器OCS卸载Blue Player的实体(如果附近没有其他玩家需要其保持加载,则将其周围的区域卸载)。 在我们的情况下,S1现在为空,直到另一个玩家开始再次移入其区域。 动态服务器网格化将允许关闭空服务器,但是静态服务器网格化很可能尚不支持该功能,因为它可能无法按需启动新服务器(这将由动态服务器网格化完成)。 8/9 静态服务器网格划分 示例-解决方案6/6 蓝色玩家正在继续他的旅行旅程,而没有意识到他在途中切换了服务器,乐意出售其货物以牟取暴利。 请注意,由于进行了传输,S2现在具有更高的CPU和内存使用量,因为它必须让Blue Player客户端的实体计算并加载到其计算机上而不是S1上。 平均而言,通过静态服务器网格划分可以提高服务器的性能,但仍然存在一种罕见的情况:一个区域中有超过50个玩家会合。 这将再次达到服务器OCS所具有的服务器限制,因为所有50多个播放器都必须在一台服务器上进行计算,这可能会超出其内存和CPU容量。 它的跳动速率将再次开始下降,这是我们玩家在玩游戏时遇到失步的主要原因之一。 因此,静态服务器网格划分可能不会将播放器容量增加到数千个。 但是它将为其他功能(如AI和游戏机制)提供足够的性能,使其融入游戏中。 因此,可以预料的是,我们仍将有数十个并行游戏实例/碎片,并缓慢添加更多服务器,并随之逐渐增加玩家数量。 但是,只有在下一步也是最后一步:动态服务器网格划分中,才有可能显着增加播放器数量。 9/9 动态服务器网格划分 动态服务器网格划分 概述 通过使用静态服务器网格划分游戏区域并将其分布到多台服务器上,下一步就是使系统动态化以提供更多功能。 (免责声明:关于动态服务器网格划分的许多细节仍不清楚!) 问题: 尽管单个服务器现在不太可能达到其内存和CPU负载容量,但同一级别服务器(同一服务器上)的50个以上播放器仍然存在问题 该特定情况仍然会导致服务器超载,并且性能会下降直到崩溃 因此,玩家人数仍不能显着增加 解决方案:动态服务器网格划分 目标: 允许实例/碎片中的玩家和实体数量不受限制 理想情况下,允许所有玩家使用一个单一的碎片(每个区域一个碎片或仅一个世界范围的碎片)进行游戏 方法: 而不是将关卡分为静态部分(例如,每个星球一个部分),我们根据关卡区域中玩家/实体的数量(或通常的CPU负载)动态地将关卡分为多个部分 如果一个部分/服务器太拥挤,则将该部分分成两部分,然后启动新服务器,然后将两个部分之一分配到该新服务器以进行处理/计算(所有相关实体都必须从一台服务器转移到另一个使用Sever Side OCS来卸载和加载它们,以及必须更改为新服务器的客户端连接) 内部没有播放器的部分/服务器可以卸载和关闭以节省服务器费用 播放器客户端需要能够查看其他部分/服务器,因此需要能够使用客户端OCS同时连接到多个服务器 1/17 动态服务器网格划分 解决方案1/3 由于我们将根据需要动态启动和停止分片中的服务器,因此我们需要一个集中式主服务器(MS),该数据库具有一个数据库,其中包含有关所有服务器,所有客户端,级别划分方式以及哪些播放器连接到哪个服务器的信息。 (这可能已经是全局数据库功能的一部分。) 主服务器实际上并不运行游戏,它仅管理网状游戏服务器。 主服务器将负责协调所有服务器并保持足够高的性能,以使连接到这些游戏服务器的玩家获得愉悦的体验。 在右边的示例中,我们有两台服务器运行一个级别,该级别分为两个部分。 服务器S2开始变得非常拥挤(50个播放器),性能即将下降。 请注意:此解决方案可能不是Dynamic Server Meshing的最终实现,甚至可能根本没有引入。 相反,最终版本可以直接实现。 “实际的”最终解决方案还将在后面的幻灯片中进行说明。 2/17 动态服务器网格划分 解决方案2/3 为了解决S2的性能问题,主服务器MS正在启动其上具有新服务器实例(S3)的新计算机(或虚拟服务器)。 一旦它完全启动并开始运行,主服务器MS(最有可能通过使用Zone系统)将服务器S2的部分划分为两个新部分。 S2将继续计算其中一个部分(在我们的示例中为左部分)。 另一部分很快将由S3计算。 为此,S2必须序列化当前位于为S3指定的新区域中的所有实体,并将其作为数据包通过网络发送到服务器S3。 S3使用服务器OCS将那些实体加载到其内存中。 3/17 动态服务器网格划分 解决方案3/3 一旦所有对象都加载到S3的内存中,新部分(图中右图)中的客户端将自己连接到S3,并关闭与S2的网络连接。 此过程类似于将播放器从一台服务器转移到另一台服务器,我们已经在“静态服务器网格划分”中进行了讨论。 S2从其内存中卸载该部分,并停止计算现在由S3处理的对象。 主服务器更新有关服务器,客户端,分区和播放器计数的知识。 玩家将在未注意到的情况下更换服务器。 由于S2中的实体较少,因此它的性能再次好得多。 每当服务器即将达到其性能极限(最大内存容量或CPU负载)时,分裂服务器的相同过程将不断发生。 此外,如果所有玩家都离开服务器,则主服务器可以将该部分与另一台服务器的另一部分再次合并。 然后可以关闭没有播放器的服务器。 为了达到理想的性能效率,也可以合并两台服务器,其中只有很少的服务器,以减少在任何给定时间点使用的服务器数量,从而节省了电力并因此节省了运行成本。 4/17 动态服务器网格划分 ACTUAL解决方案1/6 但是,这可能只是通往Dynamic Server Meshing最终实现的垫脚石。 最终,将不会有任何预定的服务器边界,并且主服务器将不会将该级别动态拆分为越来越小的空间块。 相反,每台服务器将管理一组玩家,并动态负责计算这些玩家周围的区域。 在左侧的示例中,我们的游戏世界中有五个玩家。 蓝色,绿色和红色在游戏世界的一侧,在服务器1上,而玩家橙色和紫色在游戏世界的另一侧,在服务器2上。 请记住,整个游戏世界都存储在全局数据库中,并且每个游戏服务器都可以通过iCache访问它们,以便它们在玩家看到对象时加载对象。 客户端和服务器之间的网络连接通过基于播放器颜色的彩色线突出显示。 5/17 动态服务器网格划分 ACTUAL解决方案2/6 当玩家在关卡中四处移动时,服务器会将游戏世界和实体加载到玩家的前面,然后将它们连续卸载到玩家的后面。 通过服务器OCS和客户端OCS的实现,我们已经具有此功能。 我们通过加载白色区域来实现可视化。 在下面的示例中,红色和橙色玩家在关卡中移动。 由于红色从绿色播放器移开,因此两个客户端都从内存中卸载彼此的实体,并停止对其进行计算以节省内存和CPU资源。 橙色和紫色玩家也一样,因为橙色玩家远离紫色玩家穿越关卡。 现在,如果两个位于不同服务器上的玩家在游戏世界中的同一区域聚会,会发生什么? 在这种情况下,有两种解决方案可用。 我们将同时研究两者,因此让我们从第一个开始。 6/17 动态服务器网格划分 ACTUAL解决方案3/6 在这个新示例中,玩家Red和Orange在游戏世界中的同一地点碰面。 我们可以看到,服务器仍然加载了与以前相同的对象,但是Red和Orange玩家可以在其屏幕上看到彼此。 这怎么可能? 借助客户端OCS,我们已经为客户端提供了一种部分访问服务器的方法。 此功能将得到扩展,以允许客户端将自己连接到多台服务器,并同时部分查看其中的每台服务器。 在我们的示例中,播放器Red和Orange的客户端将自己连接到服务器1和2。这已通过客户端和服务器之间的其他彩色线显示出来。 值得注意的是,两个玩家周围区域中的每个实体(例如,放置在地面上的物品)仅需要由两个服务器之一来计算。 这就要求某些信息(用于射弹和其他碰撞检查以及实体之间的相互作用)通过服务器到服务器的通信在服务器之间进行通信,并以两个服务器之间的黑线显示。 以后再说。 7/17 动态服务器网格划分 ACTUAL解决方案4/6 游戏世界中的所有实体都保存在全局数据库中,游戏服务器可以通过项目缓存访问全局数据库。 右图非常直观地显示了各个游戏服务器在Server OCS的帮助下如何部分地查看全局数据库,以及玩家客户端如何通过Client OCS在一个或多个游戏服务器中部分查看。 8/17 动态服务器网格划分 ACTUAL解决方案5/6 (注意:此幻灯片上的文字大部分是推测的,但对我来说最有意义的是这样一个系统如何工作!) 全局数据库中的每个实体都包含有关当前是否在以及在哪个服务器上加载和计算该实体的信息。 每当玩家在游戏世界中穿行并且实体被服务器OCS加载到玩家的面前时,服务器就会在数据库中检查该实体是否已经由另一台服务器计算。 如果不是,则服务器加载并开始计算实体,并将其自身注册为负责实体状态的当前服务器,并将其自身注册到数据库中。 如果该实体已经由另一台服务器处理,则该服务器不会加载该实体,因为仅需要由单个服务器来计算该实体。 因此,服务器改为在实体上查找服务器信息,并建立与其他服务器的连接。 然后,两个服务器都让其连接的播放器客户端知道它们应将自己连接到另一台服务器,以便播放器客户端能够看到两个服务器中的所有实体。 这种方法可以多次出现,从而允许越来越多的服务器处理游戏世界同一区域中越来越多的实体和玩家。 同时,玩家将自己连接到越来越多的服务器,以部分地查看每个服务器以查看其周围的所有实体和玩家。 如果服务器中的最后一个播放器再次离开了重叠的服务器区域,则服务器将从其内存(服务器OCS)中卸载播放器后面的实体,并将其自身作为数据库中负责该实体的服务器从服务器中删除。等级。 服务器关闭它们之间的连接,并告诉播放器客户端与另一台服务器断开连接。 9/17 动态服务器网格划分 ACTUAL解决方案6/6 由于两台服务器上的对象相互交互使事情变得更加复杂,因此最好将交互的播放器和对象放在自己的服务器上。 这是第二个可用的解决方案。 服务器可以决定启动新的第三台服务器(或使用尚未严重负载的已在运行的服务器)。 服务器准备就绪后,玩家,游戏世界以及玩家Red和Orange周围的实体将从这两个服务器移至新服务器。 再次,将使用序列化变量和服务器OCS。 将对象全部加载到服务器3上后,红色和橙色播放器将建立与新服务器的连接。 过渡完成后,服务器1和2将卸载玩家,游戏世界和实体,因为它们不再对它们负责。 (我猜还有第三种选择:在没有第三台服务器的情况下,将Red移到Orange的服务器上,反之亦然)。 这些服务器可以在这两种解决方案之间切换,也可以随时将播放器/实体移动到其他服务器,只要它们认为合适即可。 当然,在同一台服务器上计算实体永远是更理想的选择,因为这样一来,不需要服务器之间相互通信,从而节省了带宽。 如果游戏服务器位于同一数据中心,则服务器之间的等待时间将非常短,并且事件很可能仍将在两台服务器上的同一游戏滴答中执行,从而为两个玩家带来顺畅的体验。 10/17 动态服务器网格划分 服务和数据库 使用此系统,我们可以根据游戏世界中的当前活动动态缩放宇宙。 所有游戏服务器都可以访问其他服务和数据库,例如“量子”经济模拟,动态任务系统,项目缓存,帐户数据库等。 理想情况下,所有这些服务的设计方式都应使其能够水平缩放,这意味着可以将它们复制并分发到多个数据中心上。 或者它们都收到自己的缓存层。 为了获得良好的性能,必须将数据库复制到全球的多个数据中心,以使所有游戏服务器都能快速访问。 这也实现了冗余,基本上数据存在于多个相同的数据库中,如果发生数据库崩溃,则可以通过从另一个仍在运行的数据库中复制数据来快速建立一个新数据库。 这可能允许一个单一的世界范围的实例,其中来自世界各地的所有玩家都可以一起玩而不会造成重大的中断和滞后,因为在游戏服务器附近总会有一个数据库服务器。 从理论上讲,使用更高版本的Dynamic Server Meshing,可以将游戏服务器在地理位置上动态地重新定位到另一个数据中心,在该数据中心,当前连接的玩家的延迟时间最相似,从而通过减少所有玩家的活动来创造公平的竞争环境。偷窥之类的问题可能会从中受益。 通常,只要延迟稳定且没有很多抖动,滞后补偿之类的系统即使在服务器延迟较高的情况下也可以确保流畅的播放器体验。 (完全推测:也许星际公民可以与StarLink达成协议,并利用其卫星星座网络在全球范围内进行更快的路由,从而在全球范围内略微减少单个实例的延迟。) 11/17 动态服务器网格划分 服务器到服务器的通信1/4 现在,我们讨论了游戏服务器将能够部分查看Item Cache数据库,以及客户端将如何部分查看多台服务器。 到目前为止,已经没有进行解释的是服务器到服务器的通信以及服务器之间的相互关系。 提醒:请记住,以下内容(与大多数Dynamic Server Meshing解释一样)是高度推测的! 随着游戏世界的分裂以及对象在不同服务器上的计算,有时必须让一台服务器知道另一台服务器上正在发生的事情。 例如,当它们即将将对象从一台服务器转换到另一台服务器时,或者对象是否可能相互碰撞或影响(必须进行检查),例如。 12/17 推测:我们知道Star Citizen已切换到实体组件体系结构。 这意味着一个实体不必编码为一个大类,而是将各个行为编码为各自的组件/类。 然后可以将那些组件归因于任何实体并组成该实体的行为。 也许可以仅将这些组件的子集加载到另一台服务器上并减少负载。 动态服务器网格划分 服务器到服务器的通信2/4 因此,除了玩家,轮船或咖啡杯之类的实体之外, 我们现在有组成这些实体的组件。 在示例中,组件表示为框。 根据实体具有哪种行为以及多少行为,它具有不同的组件和不同的组件总数。 为简单起见,示例中的框看起来相同。 13/17 玩家实体非常复杂,并且包含许多组件。 船舶具有用于防护罩,卫生点,飞行控制器的门,具有用于打开和关闭的组件的门等。 咖啡杯的设计相当简单,因此只有很少的组件可以让玩家和NPC与之交互(例如拿起,放置,填充和喝水)。 因此,服务器不会加载和更新实体,而是组件! 动态服务器网格划分 服务器到服务器的通讯3/4 (注意:这可能是不正确的,或者可能是非常高级的优化!) 为什么这很重要? 好吧,它可能使我们能够在另一台服务器上计算实体组件的一小部分。 当前已经存在仅在游戏服务器而不是在客户端(如AI)上专门计算的组件。 可以将其扩展为服务器到服务器的通信。 例如,我们可以计算出负责网状网络中另一台服务器上玩家实体的位置和命中框的组件。 在下图中,我们可以看到玩家Red和Orange的那两个组成部分也在另一台服务器上进行了计算。 不必计算所有组件(在像玩家这样的复杂实体的情况下可能要计算数百个组件)的情况下,我们可以只用很少的几个相关组件(例如与其他实体或弹丸进行碰撞检查)就可以逃脱。 同样,其他实体(例如轮船)可能会部分 都以相同的方式处理 在多台服务器上。 注意:弹丸管理器 已经只把火连网了 弹丸的撞击事件。 这 应该减少之间的带宽 服务器。 发生火灾后,每个 服务器计算的轨迹 弹丸本身,通知 其他服务器(如果弹丸命中) 一个东西。 因此,在弹丸移动时,服务器之间不会发生持续的通信。 14/17 动态服务器网格划分 服务器到服务器的通信4/4 每个服务器仍具有关于驻留在其服务器上的播放器实体的完整权限(服务器1的播放器为红色,服务器2的播放器为橙色)。 两台服务器通过序列化变量网络系统发送组件的当前状态,从而使另一台服务器保持最新状态。 这也减少了服务器到服务器通信的带宽,这不仅是因为我们的组件更少,而且因为序列化变量系统仅在组件状态改变时才能够发送数据包。 因此,像往常一样,仅在这些组件的状态更改时才发送状态网络更新。 这允许多个服务器执行以下操作: 计算数千个实体 在游戏的同一区域 无需加载的世界 每个服务器上的所有实体 (这将是失败的 划分服务器的目的 首先)。 接收和 将数据保存到正确的位置 在内存中的位置应该是 少得多的计算强度 谢谢实际更新数据 组件的。 15/17 动态服务器网格划分 大型太空战 在大型太空战中,大型和大型船只的每个内部空间(数十名玩家和NPC在周围奔跑并完成工作)都可以在自己的服务器上进行计算,因为船舶的内部和外部是两个单独的对象容器(或区域) )。 船的内部可以一次又一次地拆分,并在越来越多的服务器的帮助下进行计算,这取决于船的大小和内部有多少实体。 玩家仍然可以查看这些大型/大型舰船的驾驶舱,并在客户端OCS的帮助下看到玩家。 同时,从外面看这些船只的其他玩家将无法看到这些玩家,因此不必将其加载到内存中,也不必通过网络发送更新,也不必由其CPU计算。 弹丸撞击船体的影响可以通过服务器到服务器的通信传达到内部,从而使船内玩家可以体验到这种影响。 所有这些系统都将使与数百名甚至数千名玩家进行大型战斗成为可能,而不会导致玩家客户端或服务器超负荷。 16/17 动态服务器网格划分 技术局限性 一个最后的技术障碍,如果没有最后的一些其他技巧和变通办法可能无法完全克服,这将是一种罕见的情况,成千上万的玩家彼此非常接近,因此玩家客户端可以直接看到它们(例如在大型公寓上)行星表面)。 即使所有对象数据都设法容纳到内存中,所有这些对象在游戏循环中的计算也可能超出了CPU限制(在客户端上)。 解决此问题的一种方法是跳过更多的网络更新以获取更远的对象,以减少游戏循环中的计算要求以实现合理的性能(这已经在游戏中作为实体组件更新调度程序的一部分)。 对所有遥远的玩家角色和载具使用相同的低级别LOD资产将有助于提高GPU上的渲染性能(这看起来很糟糕,但仍会产生大量活跃人群的感觉)。 但是根据人群的大小和物体的数量,体验可能仍然不是很好。 一个大而简单的解决方法是将对象的数量限制在播放器周围的较小半径内(导致对象在远处弹出或弹出),或者创建同一区域的并行实例(实质上是将对象分成两个部分)。大量的玩家,这将使它不再是一个真正的单一实例),但是这两种解决方案都将对游戏玩法产生严重影响,需要加以解决。 无论如何,在这种罕见的极端情况下,这很快就会进入具有大量可能解决方案的主要投机领域,因此,我想我们会把它留在这里,并且一旦我们真正了解到这一点,便会了解更多。 在游戏中绝大多数情况下,由于其他玩家和对象将被隐藏在建筑物和飞船中,因此动态服务器网格划分的系统有望表现良好,因此可以从玩家客户端中隐藏并减少内存,CPU和GPU加载到可行的水平,而无需解决方法。 17/17 动态服务器网格化之路 结论 至此,我们完成了Dynamic Server Meshing的旅程。 那么,我们今天学到了什么? 对象容器:将整个级别拆分为各个可重复使用的部分,也称为对象容器。 客户端OCS:通过向服务器提供部分视图,允许客户端仅加载附近的关卡。 服务器OCS:服务器可以通过将对象加载和卸载到驱动器上的数据库中,从而仅加载附近玩家所在区域的关卡区域。 本质上是整个层次的局部视图。 静态服务器网格划分:将级别划分为多个部分,并在其自己的服务器上计算每个部分。 在各部分之间移动时,播放器在服务器之间转移。 同一网格中的服务器访问同一数据库。 动态服务器网格划分:动态划分游戏世界,并将部分分配到游戏服务器上。 任何服务器都可以计算任何区域。 播放器和服务器将能够部分查看多个服务器。 如果您走了这么远,我希望本演讲能够对这些技术提供一个很好的概述和新的认识。 正如我们所看到的,许多工作已经完成,长达数年的计划已经全面生效,并且我们正越来越接近动态服务器网格划分,以使Star Citizen成为现实。 即使在发布Dynamic Server Meshing之后,我们谈论的所有这些软件系统也很可能会在未来几年中不断地进行维护,迭代和优化,以不断改善播放器的体验。 尽管这是主要技术解释的结尾,但仍有许多关于每个先决条件和相关技术的信息需要签出。 随时继续阅读! 另外,请不要忘记在演示文稿的末尾查看源代码,并亲自获取所有信息!
星际公民新版路线图公布 新团队已添加到进度跟踪器 星球技术团队 网络团队 持久技术团队 图形团队 物理小组 开发工具团队 引擎团队 游戏服务 现场工具 持久流和服务器网格划分 服务器网格划分是一项持续不断的计划,其中包括各种功能和技术,这些功能和技术有助于释放扩展星际公民宇宙中内容和播放器数量的功能。与该可交付成果相关的任务跨越多个团队和学科,您会发现在路线图上当前可见的所有四个季度都在完成工作。尽管此时您可能在发布视图中看不到Server Meshing或Pyro,但这并不一定排除任何问题。这仅表示我们仍在制定时间表,目前尚未达到指定特定季度的阈值(〜70%置信度)。 iCache 某些人可能已经注意到,iCache在路线图中没有作为独立的交付品提供。它仍然存在,但是已经更名。这是因为iCache和其他类似技术现已包含在上面提到的Persistent Streaming&Server Meshing交付产品中。此外,我们还从发行版视图中删除了将旧版数据管理转换为iCache的工作,因为此工作涉及未决的依赖项。这意味着这些努力的成果要到今年下半年才能看到。
星际公民新版路线图公布 新团队已添加到进度跟踪器 星球技术团队 网络团队 持久技术团队 图形团队 物理小组 开发工具团队 引擎团队 游戏服务 现场工具 持久流和服务器网格划分 服务器网格划分是一项持续不断的计划,其中包括各种功能和技术,这些功能和技术有助于释放扩展星际公民宇宙中内容和播放器数量的功能。与该可交付成果相关的任务跨越多个团队和学科,您会发现在路线图上当前可见的所有四个季度都在完成工作。尽管此时您可能在发布视图中看不到Server Meshing或Pyro,但这并不一定排除任何问题。这仅表示我们仍在制定时间表,目前尚未达到指定特定季度的阈值(〜70%置信度)。 iCache 某些人可能已经注意到,iCache在路线图中没有作为独立的交付品提供。它仍然存在,但是已经更名。这是因为iCache和其他类似技术现已包含在上面提到的Persistent Streaming&Server Meshing交付产品中。此外,我们还从发行版视图中删除了将旧版数据管理转换为iCache的工作,因为此工作涉及未决的依赖项。这意味着这些努力的成果要到今年下半年才能看到。
星际公民路线图更新报告 新团队已添加到进度跟踪器 星球技术团队 网络团队 持久技术团队 图形团队 物理小组 开发工具团队 引擎团队 游戏服务 现场工具 持久流和服务器网格划分 服务器网格划分是一项持续不断的计划,其中包括各种功能和技术,这些功能和技术有助于释放扩展星际公民宇宙中内容和播放器数量的能力。与该可交付成果相关的任务跨越多个团队和学科,您会发现在路线图上当前可见的所有四个季度都在完成工作。尽管此时您可能在发布视图中看不到Server Meshing或Pyro,但这并不一定排除任何问题。这仅表示我们仍在制定时间表,目前尚未达到指定特定季度的阈值(〜70%置信度)。 iCache 某些人可能已经注意到,iCache在路线图中没有作为独立的交付品提供。它仍然存在,但是已经更名。这是因为iCache和其他类似技术现已包含在上面提到的Persistent Streaming&Server Meshing交付产品中。此外,我们还从发行版视图中删除了将旧版数据管理转换为iCache的工作,因为此工作涉及未决的依赖项。这意味着这些努力的成果要到今年下半年才能看到。
高度分布式可容错缓存结构,颠覆性的网游技术
星际公民 3.12版本 星球图鉴 v1
星际公民突破3.4亿刀了,难以置信。
星际公民不是天空盒 http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fwww.bilibili.com%2Fvideo%2FBV1V54y1t7Zj&urlrefer=8b3943a443fdcde19e2c0aa7e2ed49f7
星际公民单杀伊德里斯 http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fwww.bilibili.com%2Fvideo%2FBV1MX4y1u7XS%3Ffrom%3Dsearch%26seid%3D4163775624016340285&urlrefer=f323d57eb0a8bb5aa8f975d779494beb
超神学院这个IP能不能出一部像赛博朋克2077那样的3A巨作? 现在国内把2077吹上天了都,我觉得也不过如此,如果用星际公民的引擎做一个超神学院,肯定在2077之上。
怎样看待原神一个月流水40亿,星际公民众筹8年才21亿?
怎样看待原神一个月流水40亿,星际公民众筹8年才21亿?
怎样看待原神一个月流水40亿,星际公民众筹8年才21亿?
星际公民有多可怕
星际公民的核心技术预览
《星际公民》交互系统 http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fwww.bilibili.com%2Fvideo%2FBV1fa411c7yd&urlrefer=1fd7b5046b8336261d94c12f5bed38b3
《星际公民》交互系统 http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fwww.bilibili.com%2Fvideo%2FBV1fa411c7yd&urlrefer=1fd7b5046b8336261d94c12f5bed38b3
《星际公民》交互系统 http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fwww.bilibili.com%2Fvideo%2FBV1fa411c7yd&urlrefer=1fd7b5046b8336261d94c12f5bed38b3
《星际公民》交互系统 http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fwww.bilibili.com%2Fvideo%2FBV1fa411c7yd&urlrefer=1fd7b5046b8336261d94c12f5bed38b3
深入《星际公民》交互系统 http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fwww.bilibili.com%2Fvideo%2FBV1fa411c7yd&urlrefer=1fd7b5046b8336261d94c12f5bed38b3
星际公民中太空人的死亡 (一)太空人的死亡是怎么样的主意呢? [萝卜] 其目的是为了给游戏中的死亡赋予意义。大多数现代游戏中死亡带来的后果并不大,比如一个故事模式的fps中,死多少次都没关系,我只需要突突突就好。但比如《恶魔之魂》中,你死亡后会失去经验值(魂),你需要战斗才能回归。这就让我想起了80年代、90年代的游戏,你得在死亡前通过一整关,死了的话就要重玩,但同时当你通关时你也会获得莫大的自豪和快乐。我认为这就是《恶魔之魂》与其之后的系列会如此吸引人的原因。 而我们要考虑玩家的死亡会对宇宙有什么后果,以及如何鼓励玩家努力活下去。我们不希望玩家就因为受了点小伤就自杀重生。我们希望玩家将角色视作自己在游戏中的化生,不要轻易让其死亡。如果一个角色死亡太多次就无法再次复苏,而玩家就需要创造其下一任“孩子”去继承上一个角色的财产和声誉(当然不会是全都能继承)。我们希望这样能让玩家与角色之间产生亲密的联系。 以上是目标,至于如何在游戏中实现,首先我们的游戏是在未来科幻的舞台上,现代一些无法治愈的伤害可能在未来是可以治愈的,只不过有次数限制。就像是老派游戏中的你有几条命,命花完了就Game Over了,所以在大火球中被烧烤要比中枪流血严重的多。在未来可能还会有基因治理等方式增加你的“命”。总之,你得防止自己把命用完。 这也是为什么我们的游戏要有磨损系统,你的角色、物品也会变老,这些系统都在计划中,有些已经在游戏中了但还不能完全正常工作。由于我们在制作一个复杂的相互关联的模拟系统,而且不是所有的部分都已经做完了。这正是一边让大家玩,一边开发的困难之处。太空人之死就是一个很好的例子,这个概念我很早以前就说了,但直到现在我们才可以开始加入相关的功能和游戏玩法。加入后,大家的游戏方式都会有改变,这是非常酷的地方。
星际公民一共经历过几次引擎大改? 目前来看一共有三次,第一次大改:双精度矢量数学运算与房间系统,第二次大改:item2.0,行星,对象容器流 第三次大改:icache巨型云端数据库,全局持久性,服务器网格化,而真正的第三次目前还处于进行过程中。
这年头质量越高的游戏越凉?
星际公民即将变成A黑游戏 从3.11版本开始,不支持avx指令集的CPU就已经无法运行了,AMD虽然也支持avx但是性能会明显下滑,随着avx,avx2以及avx512指令集的大规模使用,牙膏厂将会具备很大的优势。
星际公民即将变成A黑游戏 从3.11版本开始,不支持avx指令集的CPU就已经无法运行了,AMD虽然也支持avx但是性能会明显下滑,随着avx,avx2以及avx512指令集的大规模使用,牙膏厂将会具备很大的优势。
星际公民即将变成A黑游戏 从3.11版本开始,不支持avx指令集的CPU就已经无法运行了,AMD虽然也支持avx但是性能会明显下滑,随着avx,avx2以及avx512指令集的大规模使用,牙膏厂将会具备很大的优势。
星际公民即将变成A黑游戏 从3.11版本开始,不支持avx指令集的CPU就已经无法运行了,AMD虽然也支持avx但是性能会明显下滑,随着avx,avx2以及avx512指令集的大规模使用,牙膏厂将会具备很大的优势。
星际公民即将变成A黑游戏,下图为证。 从3.11版本开始,不支持avx指令集的CPU就已经无法运行了,AMD虽然也支持avx但是性能会明显下滑,随着avx,avx2以及avx512指令集的大规模使用,牙膏厂将会具备很大的优势。
星际公民中的虚空战士 http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fwww.bilibili.com%2Fvideo%2Fbv1ft4y1v7gG&urlrefer=5746d71e0a37370b157d41ac3d4f7f77
星际公民瞬移的情况下场景和物理引擎加载速度都跟不上
星际公民负责人的来信
星际公民升级要求AVX指令集:奔腾、赛扬团灭 太空模拟经营游戏《星际公民》最近更新了Alpha 3.11版补丁,正式要求处理器必须支持AVX指令集,才能启动游戏。 AVX指令集最早是在2011年的Intel Sandy Bridge二代酷睿、AMD Bulldoer推土机处理器上引入的,这意味着更早的一代酷睿、羿龙等处理器都无法再运行此游戏。 更要命的是,Intel时至今日的所有奔腾、赛扬处理器,依然完全不支持AVX指令集,因此在《星际公民》面前,它们就集体扑街了。
星际公民3.11汉化补丁直接覆盖版 3.11汉化补丁安装方法:将压缩包里的bin64和data文件夹覆盖到live文件夹内即可。 下载链接: http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fpan.baidu.com%2Fs%2F1OcptauEFl19sLzfDxCil_g+&urlrefer=7ced5b5b74960d40f0bbcc49bddabbcb提取码: vev6
星际公民3.11汉化补丁直接覆盖版 3.11汉化补丁安装方法:将压缩包里的bin64和data文件夹覆盖到live文件夹内即可。 下载链接: http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fpan.baidu.com%2Fs%2F1OcptauEFl19sLzfDxCil_g+&urlrefer=7ced5b5b74960d40f0bbcc49bddabbcb提取码: vev6
1
下一页