广州鸿名健康科技有限公司


魔兽争霸:利用Redis集群助力优胜(魔兽争霸redis)

网络编程 魔兽争霸:利用Redis集群助力优胜(魔兽争霸redis) 09-24

随着游戏技术的不断发展,用户对于游戏响应速度、稳定性要求也越来越高。在千万级甚至亿级别的在线玩家场景中,运行游戏逻辑所需要的时间严重影响了玩家使用体验,尤其是当多个玩家同时参与对战时,如何快速并发地处理大量业务数据和计算结果,就成为游戏运行的关键环节。

以《魔兽争霸III》为例,当玩家参与到19V19的场景中,游戏服务器需要每秒处理超过50个事件,将一次游戏动作归纳到指令或日志、状态变更等,便可以得到每次游戏结果,但是这种数据量和处理能力若放在一台服务器上,将严重阻塞游戏服务器的吞吐量,从而影响游戏的可玩性。

为了解决实时性的挑战,运营商选择Redis来缓存玩家的游戏状态,比如每个玩家当前的游戏状态,战斗记录,分数等。因其高容错性,低耗能,易用性及其出色的并发特性,Redis服务集群化部署后可将数据实时分布在多台Redis服务器上,并由Redis客户端在多台实例之间实现数据分布一致性,这样就可以避免玩家发生瞬时的掉线和游戏拥堵现象。

例如Obsidian可以利用Redis的Lua脚本能力,更加灵活的控制Redis服务的SQL语句,从而将对象数据序列化为字符串并存储在Redis服务器上,便可以极快的从存储空间读取在线用户和状态数据,加快实时状态数据处理能力。

因此,Redis集群为游戏服务器提供了更大的存储和计算能力,使得游戏服务器在快速并发的场景中能够快速响应并处理玩家的请求,从而大大提升游戏的稳定性和可玩性,为用户提供优质的游戏体验。


编辑:广州鸿名健康科技有限公司

标签:游戏,玩家,数据,状态,在线