不妨先拿文章开头所说的游戏实验来说明SpatialOS是什么。
《Scavengers》的“Winter Sports”测试包含了数个特性,千人以上的真实玩家,即时游戏,3D模型,物理碰撞。
网络游戏发展至今,支持千人同屏、实时互动的3D网络游戏并不多见,除了硬件渲染上的压力,服务器技术也是难点之一。
玩家在本地输入的指令需要上传至服务器,处理后发送给指令发出者以及相关的玩家,最终客户端根据返回的数据将结果显示在屏幕上。在这一过程中,交由服务器处理的数据种类,发送的频率等,都会增加服务器的运行压力,而同屏的玩家数量将会使这一问题更加复杂。
为了实现《Scavengers》“千人同屏”的效果,必须对网络层进行革新,在此情况下SpatialOS呼之欲出。
SpatialOS采用的可扩展性架构突破了传统单服务器的限制,它相当于将不同的DS(Dedicated Server,专用服务器)串联起来,在所有DS上还有一个网络层来负责所有游戏状态的管理。在玩家眼中,它看起来就是一个无缝的单一游戏世界。除此之外,SpatialOS还自带网络层同步实现方案,便于跨服活动以及物理碰撞处理的实现。
这绝对是多人网络游戏史上的一项壮举,一些MMORPG虽然也能达到千人对战的效果,但前提是将游戏效果拉到最低,而且它并不能保证玩家不卡、服务器不崩;《EVE Online》虽然保持着6557名并发玩家的记录,但却是基于“时间膨胀”机制实现的,玩家与玩家之间的互动频率、数量并没有实际上显示的那么多。
而容纳更多的玩家,解决大规模、高密度的交互性问题,只是《Scavengers》运用SpatialOS的一方面,在另一方面,它让Midwinter Entertainment得以打造一个庞大、复杂的动态世界。
Josh Holmes带领343 Industries团队在开发《光环5》战区模式时,就受限于服务器承载量上限的阻碍,他们不得不限制玩家、AI数量,简化AI逻辑来保证游戏体验。而在《Scavengers》中,场内存在的AI生物多达上百个。
SpatialOS采用“AI负载拆分”的方法实现了这一游戏需求。据官方介绍,AI逻辑属于CPU计算密集型、但对延迟不太敏感的业务,像这些与核心系统耦合度不高的模块都能拆分出来放在另一台服务器上。
此次《Scavengers》所进行的“Winter Sports”实验中,测试服务器能够同时承载AI数量上限也是实验指标之一,就结果而言,Midwinter Entertainment最终实现了“1700名玩家+8000个AI”的庞大规模。