对于里德来说,这真是糟糕的一天:她的飞船坠毁了,她是三位幸存者当中的一个,而另两位则一直试图勾搭她。对她来说不幸的是,她长得很漂亮,所以那两位一下就被她迷住了;然而对他们两位不幸的是,里德是位同性恋,这意味着她永远不会对他们产生同样的感觉。她就在毫无新意的反复搭讪和在殖民地的工作中,过着一成不变的地狱生活。
《边缘世界》(RimWorld)是一款科幻殖民地模拟经营类的游戏。当针对玩家在艰苦外星球上的生存尝试时,游戏似乎能毫不费力地编织出有张力的精彩故事;但是当涉及到性、浪漫以及性别问题时,游戏所讲述的故事又往往是另一码事。于是我们深挖到游戏背后的代码,来一探究竟。回到里德身上,我们发现那些搭讪并没有令她感到沮丧,她的心情值并没有因为连续不断的挑逗而降低。但是对于两位男性罗伯和布茨来说,可就大不相同了。
因为里德,他们的心情值和关系值遭受了几乎是永久性的降低——他们不断地试图约里德出去,然后又不停地被里德拒绝。但这并不是他们的错——罗伯和布茨不停地挑逗里德,因为他们是男人,还有就是里德实在是太漂亮了。当然,更为确切的说法是,他们就是这么被编码的。布茨和罗伯因为里德的拒绝,心情值和关系值都会有所降低。诡异的是,把有关飞船坠毁的部分去掉,这一情景完美反映了关于性、浪漫以及男女关系的一种常见叙述。
无论在媒体还是在现实生活中,我们能频繁地听说这些故事,关于男人们是如何“不能自已”地围绕在美女身边,关于被迷人的女性拒绝对男人来说是多么毁灭性的打击。先不管这些故事的真实性,以及它们对男性和女性的同时贬低,为什么这是《边缘世界》中针对男女关系讲述的故事?为了能够深入了解到问题核心,我对《边缘世界》的最新公开版本进行了解包,从程序中来看看浪漫互动是如何被决定的。
为了便于非程序员读者阅读,所以较长的部分是以伪代码呈现的,来告诉你它们的作用是什么,所以你不需要掌握流利的C#语言。
先说清楚,我上面描述的轶事在《边缘世界》中并不是一个独特的场景。本文写作时在《边缘世界》reddit上讨论热度最高的一个帖子,就是一位玩家在求“如何对付好看的女同性恋的策略”。另外,之前一次对《边缘世界》的反编译总结了该游戏对浪漫行为的模拟,也明确指出了造成里德窘境的答案就藏在游戏源代码中。那么,为什么里德的两个幸存者同伴持续不断地调情呢?
部分答案在于,游戏对于男女角色如何开展浪漫尝试的计算是不同的。所有角色一开始都拥有一个基础概率,能按照这个概率把任意社交互动转化为开展浪漫尝试;而为了让求爱发生,对方外貌还要超过一定的下限,对方在角色心中的地位也要是正的数值。换句话说,你必须得真的喜欢上一个人并觉得对方有吸引力,才能去尝试开展与他们的浪漫关系。当发起浪漫关系尝试的随机概率参与进来时,事情就变得有趣了。
// 基于发起者性别的概率变化
if(me.gender == male) { //如果发起者是男性
// 不变
initiation-chance = initiation-chance * 100%;
}
if(me.gender == female) { //如果发起者是女性
// 初始概率仅为原本的八分之一
Initiation-chance = initiation-chance * 12.5%
}
换句话说,女性角色去尝试并开始浪漫关系的概率只有男性角色的八分之一。当然,这不是唯一因素——还有是否存在现任伴侣以及与对该伴侣的感觉等问题。然而,这种对性别的单一检查有一个深远影响,就是它使女性发起的浪漫尝试非常罕见。请注意,无论是之前的回拒史还是对方是否有“同性恋”属性,都对此没有影响;这可以解释为什么二人不会停止追求。但这种行为是纯单向的。
里德不会去挑逗罗伯和布茨,并不因为她是女性,而是因为她觉得这两个人没有吸引力。
那么吸引力又是如何计算的呢?对于男性和女性角色来讲,吸引力都取决于几个变量:发起者和接受者的性别、发起者的性取向、接受者的美貌程度、年龄和身体能力。在研究性别差异之前,我们先看几个通用变量:
// 在余下的函数中,将吸引力乘上以下各项因子
// 谈话、移动和操纵物体的效率(残疾角色会遭受惩罚
// 外貌属性的奖励和惩罚(丑陋=30%概率,美丽=230%概率)
// 15-18岁之间的人的额外年龄因素
// 规定女同性恋的取向
if(me.orientation == gay and them.gender == male) { //如果发起者是女同性恋,接受者是男性
// 无论如何都没有吸引力
return 0.0;
}
//并规定女性非同性恋的取向
if(me.orientation == straight and them.gender == female) { //如果发起者是直女,接受者是女性
// 只有原本的15%的吸引力
attractiveness = attractiveness * 15%;
}
在《边缘世界》里其实没有“直女”,也就是说,没有女性只被男性吸引。相反,游戏中的每位非同性恋单身女性,都有一定几率被其他的女性吸引,也就是说她们是双性恋。
对于男性来说程序又有些不同:
// 计算对方在我眼中的吸引力(0.0到1.0之间)
float calculate_attractiveness(Pawn me, Pawn them) {
float attractiveness = 0.0;
if(me.gender == male) {
// 规定男性角色的性取向
if(me.orientation == gay and them.gender == female) { //如果发起者是男同性恋,接受者是女性
// 无论如何都没有吸引力
return 0.0;
}
if(me.orientation == straight and them.gender == male) { //如果发起者是直男,接受者是男性
// 无论如何都没有吸引力
return 0.0;
}
注意,在游戏中男性的可能性取向只有异性恋和同性恋两种。
在《边缘世界》中,不存在双性恋男性,只有同性恋和异性恋男性;不存在异性恋女性,只有同性恋和双性恋女性。
最后,我们来讨论下最复杂的部分——基于年龄的吸引力。仅仅解读代码,很难把这件事形象地表现出来,所以这里采用了图表的方式来呈现。
对男性角色来说,基于年龄的吸引力计算。
对于女性来说,基于年龄的吸引力计算。在《边缘世界》中,男性角色总是被从20岁到自己年龄之间的人所吸引。如果男性角色小于20岁,也并无二致——因为程序会先检测“最低“边界,然后使得他们一定会被20岁的人所吸引。
这就解释了为什么32岁的罗伯和17岁的布茨会一直约23岁的里德出去。但是,由于相同的代码不会检测相对年龄差,17岁的布茨不会真的觉得他17岁的同龄人有多少吸引力。同样的也有一个吸引力的最低年龄——16岁,以及最大年龄——角色的年龄加15岁。所以在这种情况下,布茨不会被32岁以上、16岁以下的任何女性吸引。
另一方面,女性压倒性地偏好比她们年龄大的人。而且与男性不同的是,女性对于“太老”的角色没有明确的界限:即使是比自己大40岁的角色,也有一定的几率吸引到自己。这和男性的计算方法形成对比:只要角色比自己年长15岁,就完全不会吸引到自己。
总结
男性去尝试并开始浪漫关系的概率是女性的8倍;
残疾角色有较少吸引力;
美貌的角色总被认为有极高吸引力,不好看的人吸引力就大大减少;除了性取向外,长得美是主导吸引力的唯一特征;
异性恋男性永远不会被男性吸引,同性恋男性永远不会被女性吸引,男性角色不存在双性恋;
女性可能会被男性吸引,同性恋女性永远不会被男性吸引,只有双性恋女性和同性恋女性;
对于全体男性来说,从20岁到自己年龄的人最有吸引力;如果男性角色年龄小于20岁,他们会认为20岁或稍长人最有吸引力,而不会对同龄角色有所注意;
对于全体女性来讲,年龄相同或者比自己年龄大的人对自己最有吸引力;比自己稍微年轻的人极其没有吸引力,而比自己年轻10岁的人完全不会有吸引力;
全体男性不会被比自己年长15岁的人所吸引;
对于女性来讲,不会有吸引力的年龄上限,无论对方比自己大多少岁,女性都有一定概率被吸引。当然,《边缘世界》还没完结。它是一个仍在不断开发的游戏,所以这种关系系统很可能会继续发展和改变。此外,引入这些管理公式的各种数值可能是因为某一天设计人员工作得太晚,或者是作为占位符,又或是仅仅想让系统不出岔子而已。换句话说,在这一切背后可能根本不存在什么对性别角色的特定评价或解读。
任何试图表现或模拟复杂现实世界情景的游戏系统,都必须进行简化和牺牲,而人际关系可能是你能描述的最复杂的事情之一了。但我们并不是基于《边缘世界》的未来可能性而分析它的。我们要问的问题是:“《边缘世界》中已经在讲述的故事是什么?”是的,游戏制作是一件很费精力的工作,可能这些数值就只是被加了进去而已,而至于它们对游戏的影响,则没有过多思考。
但这设计的到底是一个怎样的系统,会为了“仅仅让它能够运作”,而造成系统中不存在双性恋男性?而且在整个游戏中,女性主动开始浪漫关系的概率比男性低八倍?
而且,《边缘世界》所没有模拟的和它已经模拟的一样重要。还记得不断被别人挑逗和拒绝别人不会导致心情变差,只会降低对追求者的印象吗?但在日常生活中,不得不持续拒绝他人可不是什么好感觉。但是这些负面感受仅仅机械地体现在那些被拒绝的人身上,而且由于对浪漫关系开始的处理,玩家最终不得不去照顾这些被拒绝的悲惨男人,而不是那些总是不得不拒绝这些讨厌遭遇的女人。
我们可以将这个行为标记成系统漏洞,但那些只是表面问题。它们是容易被注意到的、游戏内的结果,源于这一系统对男性和女性的行为模式做出了假设,并字面意义上地将其编码入系统的基础结构中。确实,角色表现是一个棘手的问题,而我们可能永远创建不出一个浪漫行为的完美模型。但这个模型的问题并不在于它有缺陷。问题在于,它的缺陷完美反映出了人们对浪漫关系的期待中现存的性别歧视,而且如此明确细致,很难认为这是无意为之。
而如果这是无意为之,我们就应该继续问这个系统试图展示些什么。它允许的可能性有哪些?什么是《边缘世界》设定可能性的边界?反编译源代码让我们非常清晰地看到了这些性别差异是如何被写入游戏的。然而,仅仅靠玩游戏并不能直观地掌握到这些问题。同时,这个系统对你的游玩方法有很大影响,因为《边缘世界》中最关键的一个挑战就是令你的殖民者高兴。代码永远都不会毫无立场。
所有这些代码结构推动一个特定场景胜于其他场景,这种情况大多数时候是无害良性的。然而,这并不意味着它应该逃避检验,因为我们可能最终会不加思索的在有害的假设下进行编码,这最终意味着我们制约着我们的游戏所可能的样子,同时也疏远了其他玩家。洛夫切尔德和罗伯称为情人
至于里德,事情慢慢变得好了一点。其他女性加入到了殖民地中,其中一位,19岁的洛夫切尔德,已经和罗伯订婚。里德与罗伯相处得更加融洽了,毕竟他花更多时间与他的未婚妻在一起,而不再是试图不停地勾搭她。当然,大家仍都喜欢里德,因为她太美了;每个人都在同她交谈,并且布茨也仍在向她暗送秋波。但是她永远不会对此做出回应。
编辑注:我们有联系《边缘世界》的开发人员进行采访,作为文章的一部分。但他们拒绝参与,除非我们放弃对采访出版的编辑控制权,转让给开发人员或采访对象。但我们没有,所以也就没有对开发人员进行采访。