pvp 游戏如何解决玩家匹配等待时间过长的问题

转载 2016年08月31日 15:39:46

按局打的纯 PVP 机制的游戏,面临最大的问题将是,在一个玩家想找人对战的时候,找不到对手匹配。

如果游戏的在线玩家达不到一定人数,那么这个问题会恶化:等不到人和你一起玩、放弃等待、新的玩家更找不到对手。

像皇室战争、王者荣耀、炉石传说这些火爆的 pvp 游戏都属于迈过了线的作品,玩家不太愁等不到人一起玩,提升了游戏体验,聚集了更多的玩家。而当玩家群有限时,同类产品就很难竞争,只要在线用户掉到一定限度以下,很可能导致(无非找到对手)体验下降,更多玩家流失。

那么,有没有办法解决初期玩家过少的问题呢?

直观的想法就是没人玩 AI 凑。可 AI 并不是真人,和 AI 在公平规则下对战乐趣会少很多,且高水品 AI 开发起来也非常困难。最关键的是,一旦玩家乐于和 AI 对战(无论是因为对战本身的乐趣,还是可以刷分刷掉落),你会进一步失去在线用户。

让我们来估算一下这个问题有多么严峻:

据说王者荣耀目前的日活跃用户有 3500 万,自然不愁找不到对手。

如果你玩过这个游戏,必然会有体会,每天为了玩这个游戏等待匹配的时间有多长呢?我没玩过,让我随便估算一下吧,如果一天打两盘,平均每盘等 10 秒钟。我的每天等待时间就是 20 秒。即一个用户每天有 20 秒在线时间可以供和同样的人一起匹配准备。

每天有 24 * 60 * 3 = 4320 个 20 秒,那么对于 3500 万日活跃用户来说,当你在等待其他玩家加入的时候,有大约 8102 个玩家是你的对手备选。

由于每天高峰和低估的在线人数差异比较大,按我的经验大约可以差到 4 倍左右。在低谷期,这个人数至少需要减半。

所以你看,即使这么大的用户规模(3500 万日活这个数字我有点怀疑,如果这个数字是真的,那么你随便找身边的游戏玩家,他们几乎都应该在最近玩过这个游戏了),全部玩家同服,不考虑天梯(尽量不让高水平玩家和低水平玩家对战),每时每刻,也只有几千用户备战。

所以,如果考虑运营这种纯 pvp 开房间按局比赛的游戏,必须考虑尽量简单而扩大目标用户群,且尽量减少单局游戏的时长。宏观上,每个玩家每天能分配在游戏上的总时间有限,单局时间越短,可以打的盘数就越多。每局游戏前的匹配时间以 10 到 20 秒为容忍上限的话,盘数越多,每天可以忍受在等待上的时间也就越长,这样就减少了匹配不到对手的尴尬。

如果玩家人数太少,也可以通过活动来把有限的玩家集中到每天的某个时间段,甚至让服务器不 24 小时开放。


出去运营策略,技术上我们可以做些什么呢?

我想了一个最容易实现的方案,就是增加运营人手陪玩,并在技术上做配合,提高陪玩的利用率。

假设我们一局 1 对 1 的游戏长度是 4 分钟,玩家可以容忍的等待时间上限是 20 秒,理论上,在工作时间内,只需要安排 12 个陪玩就可以解决问题。

规则如下:

系统对陪玩账号做上标记,匹配系统永远不撮合陪玩用户之间战斗。

玩家开始匹配时,如果没有其它玩家同时在等待匹配,那么他最长等待 20 秒,在此期间,一旦有新玩家加入,就尽量撮合他们;否则,在超过 20 秒后,从空闲的陪玩者中选出一个人和他游戏。

由于单局游戏长度是 240 秒,所以最坏情况下,我们需要安排 12 个人陪玩。


如果加入天梯系统,即尽量让积分/实力相近的玩家一起游戏。那么,就稍微修改一下规则,两个玩家都开始匹配时,并不立刻撮合他们,而是一定等待一定数量玩家进来(比如 5 个),然后为等待时间最长的玩家寻找一个和他积分最接近的玩家开始游戏。

只有等不到人数,才在等待上限(20 秒)时,匹配一个尽量积分接近的玩家或陪玩。


我现在正在设计的游戏正是一个 1 对 1 的 pvp 手机游戏(战斗过程完全不同于皇室战争)。记录一下想法,希望游戏做出来后可以熬过最初的用户积累期。

来自:http://blog.codingnow.com/2016/08/pvp_match.html#more

手游后台PVP系统网络同步方案总结

http://www.gameres.com/476063.html   概述   PVP系统俨然成为现在新手游的上线标配,手游Pvp系统体验是否优秀,很大程度上决定了游戏的品质。从最近半年上...
  • sgnyyy
  • sgnyyy
  • 2015年12月28日 10:01
  • 3975

亲测可用,解决ssh登录慢,等待时间长的问题

有时候在ssh远程登录到其他主机上时发现登录时间太长,经过亲自测试,发现主要有两个问题会导致ssh登录慢: 1.使用了dns反查,这样的话当ssh某个IP时,系统会试图通过DNS反查相对应的域名,如...

解决CreateProcess()的等待时间问题

解决CreateProcess()的等待时间问题 一、引言: Windows下的API接口函数CreateProcess()可以用来创建一个进程和主线程。新进程执行指定的可执行文件(一般为.exe文...

mysql空闲等待时间导致的问题的解决方案

一、问题出现原因     show global variables like '%wait_timeout'; 可以查看数据库空闲等待时间,默认8小时,最大2147483,接近24天,即某程序连接数...

android HttpUrlConnection 设置超时无效,等待时间很长的问题

转载于:http://stackoverflow.com/questions/18217335/can-i-set-the-getaddrinfo-timeout-in-android-for-def...
  • nnmmbb
  • nnmmbb
  • 2015年10月13日 18:05
  • 4401

性能问题: SQL*Net message from client 等待时间太长

数据库的性能问题, 有时是因为SQL 性能不好, 但有时候所有的SQL 都很快, 却浪费了很多时间在网络等待上面. 比如, 请求一个页面花了5 分钟. 这个问题可以在SQL trace 里面看出来. ...

关于Quartus II工程综合时间过长问题的解决

通过阻止寄存器融合缩短Quartus II工程综合时间

Android 解决首次启动程序白屏时间过长的问题

解决首次启动程序白屏时间过长的问题
  • merbn
  • merbn
  • 2016年09月22日 11:12
  • 4345

解决首次启动程序白屏时间过长的问题(针对Android Studio Instant Run)

转自郭霖大神: Android Studio中新加入的Instant Run功能,使得我们开发的效率可以大大地提升(详情见上一篇博客)。 问题重现 我初次发现这个问题是在升级了Android S...
  • lyankj
  • lyankj
  • 2016年07月07日 09:42
  • 3693
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:pvp 游戏如何解决玩家匹配等待时间过长的问题
举报原因:
原因补充:

(最多只允许输入30个字)