游戏中的“上头”行为

原文:https://www.itero.gg/articles/lol-tilt 什么是"上头" “一种心理或情绪上的混乱或挫败状态,在这种状态下,玩家会采取次优策略,通常导致玩家变得过于激进”——这是维基百科对"上头"的定义。 “上头”(Tilted)这个词最初在扑克玩家中流行,如今已被更广泛的游戏社区采用。据说,这个词源于机械弹球机:当玩家试图倾斜机器时,机器会冻结挡板,有时还会显示警告:“TILT”。 如今,这个词用来描述因极端情绪(通常是愤怒)而做出非理性行为的状态。在扑克中,可能表现为连败后用弱牌全押;在游戏中,可能是被对手嘲讽后直接冲向敌人。当然,它也适用于现实生活——谁没有在糟糕的一天后对爱的人发过脾气?这就是上头。情绪高涨时,我们往往在非理性地行动。 任何玩过竞技团队游戏的人都可能成为"上头"的受害者,这在《英雄联盟》中尤其明显。这款游戏的5v5对战和阶梯式排名系统,使其成为情感上的巨大挑战。最近我也经历了这种情况(遭遇了13连败),于是决定从游戏数据中寻找识别"上头"的方法。 输家会继续输吗? 第一个问题很简单:输掉之后,你是否更有可能继续输?答案不出所料,如下图所示: 注:我稍微调整了基线,因为我采样的玩家胜率高于平均水平。 数据显示,最近连输2场的玩家(图表中的-2连败)在下一场比赛的胜率为48.8%。但这并不能证明"上头"现象——连输2场的玩家,在统计上更可能是水平较差的玩家,而非"上头"。他们可能只是实力不如平均水平。 那么,如何在不陷入"差玩家vs好玩家"比较陷阱的情况下理解"上头"?关键在于"上头"是一种临时情绪状态,会随时间迅速衰减。你有没有对某人大发脾气,但很快就后悔了?“上头"也是如此。 耐心是一种美德吗? 基于这一点,我们分析了同样连败的玩家,但这次按他们在下一场比赛前的等待时间进行区分。我们查看了"黄金"段位(前24%的玩家)中连输2场的玩家,统计了他们上一场比赛结束到下一场比赛开始之间的时间差。结果如下: 连续输掉两场后不休息的玩家,胜率远低于其他人!这很可能是因为他们带着失败积累的情绪包袱进入下一场比赛,导致表现不佳,严重影响团队获胜机会。 有趣的是,短暂休息的玩家不仅胜率提高,甚至比平均水平(同样连输2场的黄金段位玩家)高出3%以上。我倾向于认为,休息既能让玩家"热身”,又能摆脱情绪负担。长时间休息的玩家(平均3-4小时,甚至几天)的胜率则恢复到接近其他2连败玩家的平均水平。 高段位 = 高心理韧性? 最后一个问题:这种关系是否适用于所有技能水平?我为"钻石I"玩家(前1%)重新进行了实验,结果出人意料: 尽管长时间休息的玩家同样恢复到平均水平,但"立即游戏"和"短暂休息"的关系完全翻转了!顶尖玩家如果在失败后短暂休息,胜率反而大幅下降;而立即游戏的玩家,胜率略有提升。 我对此有两个理论:首先,在这个高度竞争的环境中(许多玩家每天投入超过8小时),他们已经习惯了处理"上头"情绪,否则无法达到这个水平。其次,在这个水平上,这变成了一场数字游戏——竞争如此激烈,真正起决定性作用的是投入的时间。一场《英雄联盟》平均需要27分钟,不休息的玩家每天可以比休息20分钟的玩家多打不少比赛。 当然,这些都只是理论。我相信游戏相关的心理行为科学还有更广阔的领域尚未被充分探索。希望这篇文章能让你思考这些可能性——至少在你准备好面对下一场比赛之前。 读后感想 结论:作为黄金玩家,两连败以后就要去休息20分钟再开始游戏 hh

十二月 28, 2025 · 1 分钟

基于英雄特征的推荐系统

原文:https://www.itero.gg/articles/champ-recommend 从电商到游戏的推荐系统 作者之前写过一篇文章,介绍如何使用图网络为《英雄联盟》(LoL)提供英雄推荐。那种技术叫做"用户-用户协同过滤",即利用已知的用户信息找到相似用户,然后基于他们的偏好进行推荐。 为了便于理解,我们用经典的亚马逊例子来说明。假设你把PS4和最新的FIFA游戏加入购物车,算法会查看所有同时购买过PS4和FIFA的用户,找出他们购物车中还有哪些其他商品,比如最新的NFL游戏《Madden》,然后推荐给你。 今天,我们要看的是另一种推荐算法——“基于内容的模型”。这种技术不是基于用户相似性,而是基于物品本身的相似性。比如,如果你在购买EA出品的PS4体育游戏,系统会推荐其他EA出品的PS4体育游戏。当你没有用户偏好信息时(比如产品刚上线),这种方法特别有用。 然而,《英雄联盟》有近150个英雄,我们不想花大量时间手动标注所有需要的属性。因此,我们改用游戏内的统计数据来"描述"英雄,比如平均每局击杀数或对目标的伤害量。 为此,我分析了15万场钻石段位的对局。注意,我只统计了上单、中单和ADC玩家,因为辅助和打野的统计数据存在本质差异(比如补兵获得的金币较少)。 对所有英雄的数据进行平均后,首先注意到的是许多统计指标之间存在明显的相关性。这并不意外——比如"连杀次数"和"总击杀数"几乎完全相关(前者表示玩家完成连杀的次数,后者是那局游戏的总击杀数)。在统计学中,这被称为"多重共线性":多个数据点之间存在线性相关。 处理这种多重共线性的常见方法有两种:排除法(选择击杀数,删除连杀次数)或聚合(击杀数 × 连杀次数)。但更好的解决方案是主成分分析(PCA),它能够自动提取这些属性之间的核心关系,无需手动干预或删除潜在的关键驱动因素。 PCA是一个相当复杂的主题,需要理解特征向量/特征值,网上有很多优秀的文章介绍,这里就不赘述了。简单来说,PCA的目标是在尽可能减少变量数量的同时,捕获数据中尽可能多的方差。这些压缩后的变量被称为主成分。 将PCA应用到数据集后,我们发现超过30%的方差可以用第一个成分解释,第二个成分解释了约16%,第三个约11%,以此类推。 但这些成分代表什么?为了理解它们的构成,请看下面的图表,展示了哪些变量构成了第一个成分。很明显,获得的金币是这个成分的最大贡献者,其次是目标伤害、最大连杀、连杀次数、造成的伤害和总击杀数。可以说,这个成分捕获了与获得金币相关的变量。如果再加上"物理"伤害这个特征,你可能会想到像菲奥娜或泰达米尔这样的英雄在这个成分上得分较高。 第二个成分主要由两个属性构成:推塔数和自我减伤(格挡/招架/免疫/减免等)。不过,你可能在想:这跟基于内容的推荐模型有什么关系?我们现在有了两个包含超过50%英雄间方差的主成分。这些可以看作是描述性代理——不是"体育游戏",而是"能击杀所有人的英雄";不是"EA出品",而是"高推塔伤害"!我们可以将这些描述性成分绘制在二维空间中,看看它们如何组合在一起(抱歉,从旧博客转移到iTero时格式不太理想!右键保存图片可以更仔细地查看): 注:虽然图中用黄色标注了"辅助"英雄,但数据实际上只来自有补兵的路线。也就是说,你看到的基兰数据来自他打上单、中单或APC时的情况。 细心的读者会注意到,成分1是反向的,高伤害/高击杀在X轴上得分较低。成分2没有反向,所以Y轴上的高数值表示大量推塔和伤害减免。为了验证是否按预期工作,看看左上角的英雄(即造成大量物理伤害、推塔并减免伤害的英雄):菲奥娜和泰达米尔(泰达米尔的大招算作伤害减免)。再看看中下方的卡特琳娜和卡尔萨斯,他们在伤害和击杀方面得分较高,但不擅长推塔和减免伤害。听起来很合理。 下一步很简单:推荐基于欧几里得距离(直线距离)最短的英雄。你经常玩塔里克?试试茂凯。阿卡丽?试试菲兹。打不死的蒙多医生?你会喜欢我们的赛恩。 如果想进一步扩展,我们可以使用更高维度。回到展示每个成分捕获多少方差的图表,我认为有理由基于3个,甚至5个维度来构建模型。原理相同,但由于可视化变得困难,我们暂时就到这里。 希望这篇文章能为你提供另一种值得探索的推荐类型,以及PCA的优势。虽然我以《英雄联盟》为例,但这些方法可以轻松应用到任何其他领域。我建议你回到那个大图表,找到你的主玩英雄,看看你是否同意周围那些英雄的玩法风格相似。 读后感想 作为老玩家,感觉这个推荐系统不太实用,因为我已经对每个英雄的风格都有了大致了解,或许对于刚接触这个游戏的新手更有吸引力。但文章中将英雄归类为某些指标特征集合的思想对我有一些启发:比如将每个英雄的控制、位移、施法距离、坦度这些特征收集起来,当BP只剩下最后一个位置时,根据团队缺少的属性,反向推测找到对应的英雄。这个或许在BP中能帮大忙

十二月 28, 2025 · 1 分钟