玩《旅行青蛙(旅かえる)》是种怎样的体验?

[图片]
关注者
17,775
被浏览
15,170,071

1,784 个回答

呱呱走火入魔-逆向游戏代码-终结玄学迷信

看到高票回答里面对物品的使用上的很多猜测,很多都不准确。

为了理解你们的呱究竟在干什么,花了五个晚上逆向游戏程序逻辑,提取各种数据。

这里相当于动用了 上帝视角 来解答这些问题。

答案将会陆续更新,欢迎在评论区提问


2018/3/27 更新9

  • 更新 所有数据表格至 1.1.1 版本
    • 刚更完 1.1.0 的数据就出了 1.1.1...emmmm
    • 1.1.1 和 1.1.0 数据上唯一的区别就是官方修复了 物品叠加目的地优先级 里缺失的 21 (Nagano) 。

2018/3/25 更新8

我没有弃坑

  • 更新 所有数据表格至 1.1.0 版本
    • 我对比了下数据,大致的变化如下:
      • 新增了 ずんだもち、六方焼、おぜんざい 三种食物
      • 新增了 こけし、米食いねずみ、緋色の勾玉 三件收藏品
        • (感谢 @关若遗 指出缺失 こけし@demongel 指出 中国地方 是日本西部的一个地区)
      • 新增了 东部地区 Ishikawa、西部地区 Shimane、北部地区 Miyagi 三个目的地以及对应的新明信片
      • 新增了 蜗牛、壁虎 主题稀有明信片
      • 修正了 拿不到 マンゴー (芒果) 的 bug!!!!!!
        • 之前芒果只限 2018 节点上可以获得,但是该节点位置偏僻,从未见过有蛙去过那里。新增了交通要倒 2014 节点也可获得芒果,效果拔群
      • 修正了 明信片上出现错误的朋友的 bug
      • 调整了 很多途径和绕路点的位置

2018/2/4 更新7

  • 更正 道路属性收藏品部分数据缺失

2018/2/3 更新6

我其实是美食博主

这篇知乎首答获得了这么多关注,也让我这个知乎小透明受宠若惊。在这里感谢《旅かえる》的游戏开发者制作出了这么受欢迎的游戏、感谢他、感谢大家的关注,让我蹭了这波热度。

不少知友私信问我是不是游戏行业的从业人员………………………呃…其实……我是美食博主啦:

2018/1/31 更新5

  • 更正 物品收集阻力的描述

2018/1/31 更新4

  • 更正 区域、目的地选择的逻辑

2018/1/30 更新3

  • 更正 收藏品收集概率为 15%,并非 100%

2018/1/30 更新2

  • 增加 4. 呱在每条路上的耗时是怎么计算的?

2018/1/30 更新

  • 增加 5. 呱离家出走了怎么办?
  • 增加 8. 如何科学使用物品?
  • 增加 17. 有没有免费获得三叶草的方法?

2018/1/29 更新

  • 增加 15. 抽奖球的概率是?

  1. 呱真的在旅行么?
  2. 呱是如何选择旅行路径的?
  3. 呱是如何旅行的?
  4. 呱在每条路上的耗时是怎么计算的?
  5. 呱离家出走了怎么办?
  6. 道路有哪些属性?
  7. 每件物品都有什么效果?
  8. 如何科学使用物品?
  9. 旅途中会带回哪些明信片?
  10. 旅途中会带回哪些特产?
  11. 朋友什么时候会来访?
  12. 朋友来访应该投喂什么?
  13. 三叶草多久会长好?
  14. 四叶草获得的概率是?
  15. 抽奖球的概率是?
  16. 如何获得成就?
  17. 有没有免费获得三叶草的方法?

呱真的在旅行么?

不得不佩服游戏的设计者,为了追求真实,实现了一套非常完整的旅行模拟系统,有严谨的旅游路线设计。

因为旅行的过程并不展示给用户,我原本以为逻辑会十分简单。发现这套旅行模拟系统的时候,我也有些惊讶,也促使我深入研究这款游戏的逻辑。

下面的解释中间会用到少量计算机图论 (graph theory) 的术语,但应该还是很直观。

呱是如何选择旅行路径的?

程序内建东、西、南、北四个区域,呱会选择一个地区旅行

每个区域的设计都是一个连通的无向图 (connected undirected graph),而呱的旅行路线就是在图上某两个点之间走出一条路径 (path)

通过逆向手段,我提取出了程序中的信息,花了一些时间用 Graphviz 生成了每个地图的样子。

南部地区
东部地区
西部地区

图上的每个节点 (vertex) 都代表了一个地点。每个地点都有可能被蛙经过,并触发一些事件。

除了普通的地点外,还有四种特殊的地点会影响呱旅行的路线:

  • START 起始点(帽绿色)
  • GOAL 目的地(桃红色)
  • PATH 途径地(橘黄色)
  • DETOUR 绕路地(浅黄色)

连接节点之间的是边 (edge),代表连接地点的路,这些路上也会触发 遇上伙伴、拍摄照片 等事件。

每次开始旅行的时候,根据老母亲(?)打包的物品,呱都会:

  1. 选择目的地
    携带特点食物或道具可以影响到地区的选择,有些物品可以增加特定地区的被选概率,甚至可以直接确定选择的地区。在一个区域内的目的地的选择同样取决于所携带的道具。具体每件物体效果会在后面提到
  2. 选择途径地
    途径地由目的地决定,每个地点都有对应的途径地,代码中对此的描述是当地的县府/交通枢纽。
  3. 选择绕路地
    这个很有意思,我猜测作者的目的是为了让旅途更有多样性,每次路途会额外添加几个地区内绕路地点,携带物品对决定绕路地似乎没有影响。
  4. 生成经过所有地点的旅行路径
    运用了图论很经典的连通图找最短路径 Dijkstra 算法,配合途径地和绕路地的逻辑,最终计算出旅行路径。

目的地是怎么选择的?

这里的数值不是绝对概率而是相对的优先级

具体目的地的选择就和携带的道具相关,每个物品对应目的地的优先级与 区域加成 叠加就能获得每个地点被选择的概率。

每个目的地的 区域加成 初始值都为 30,道具的 决定地区 属性值可以提升对应地区内目的地的 区域加成,从而增加区域内所有的目的地被选择的概率。

部分道具可以直接限制选择到规定的地区 (D)。


呱是如何旅行的?

确定了地点之后,呱会开始旅行:

  1. 携带物品会决定蛙最长能旅行多久,6 ~ 72 小时不等。
  2. 初始体力由携带物品决定,以 100 为基数提升。
    *物品的具体属性参考下面的图鉴
  3. 经过图上的一条路(边)的时候,道路的地形属性和所携带的物品属性互相作用,会决定呱实际消耗的时间和体力。
  4. 路上可能会遇见小伙伴,会在之后的旅行中结伴而行,从而出现在明信片中。
  5. 根据路途属性,有一定概率会寄相关的明信片。
  6. 当体力不支的时候,蛙必须停下来休息 3 小时,休息完之后体力会恢复到 100。休息时间也算作旅行时间。
  7. 当到达目的或者旅行时间耗尽的时候,蛙就会回家。
    1. 回家时会携带三叶草和抽奖券。
    2. 如果在时间耗尽前到达了目的地,蛙会在此基础上带回当地特产和收藏品。

所以如果你的蛙很久都没回家,回家了也没有带土特产,可能是路途上多次体力不支,晕倒在路边。

呱在每条路上的耗时是怎么计算的?

设:
t_{\text{way}} 为当前道路 耗时
t_{\text{plus}} 为当前道路的 地形增加耗时
w 为当前道路的 地形,w\in \left\{ \text{Normal}, \text{Mountain}, \text{Sea}, \text{Cave} \right\}n 为携带物品数量
E_{\text{Normal}}(x),E_{\text{Mountain}}(x),E_{\text{Sea}}(x),E_{\text{Cave}}(x),E_{\text{All}}(x) 依次为携带的第 x 件物品中所有具有 普通、山地、大海、洞穴、任意地形 移动速度 的效果值。

如果当前道路是 普通 地形,则耗时因叠加 移动速度 效果而减少:

t_w= t_{\text{way}}\times\prod_{x=1}^{n}{(0.01\times(100-E_{\text{Normal}}{(x)}))}\\
或者 如果当前道路是 山地、大海、洞穴 地形,基础耗时不变,地形增加耗时因叠加 移动速度 效果而减少:
t_w=t_{\text{way}}+t_{\text{plus}}\times\prod_{x=1}^{n}{(0.01\times(100-E_{w}{(x)}))}\\
如果携带了 乳蛋饼 (のびるのキッシュ)这种 全地形 移动速度 提升的物品,则会在此基础上再次叠加 移动速度 效果:
t_{\text{final}}=t_w \times\prod_{x=1}^{n}{(0.01\times(100-E_{\text{All}}{(x)}))}\\
最终获得的 t_{\text{final}} 就是该条道路上的实际耗时。

呱离家出走了怎么办?

如果长时间没有准备便当,包里和桌上都没有食物,呱会愤然离家出走(どこかへ出かけています)。

这个时候在桌子上放上吃的,呱就会在 5~30 分钟内回家。

有趣的是,离家出走也算作成就计算中的旅行次数...emmmm。

道路有哪些属性?

连接不同地点之间的每条路 (edge) 都有以下几个属性

  • 地形
    四种地形分别是 普通、大海、山地、洞穴
  • 耗时
    途径这条路的体力和时间损耗,分为基础耗时和地形增加耗时
    呱需要跋山涉水自然会耗时久一点
  • 明信片概率
    明信片上不同元素出现的概率
    据说所有的地图元素都有真实原型
  • 遇见伙伴
    遇见特定伙伴的概率

具体如下,不能再详细了

每件物品都有什么效果?

奉上这张吐血整理的物品效果图鉴:

有五类不同的物品

  • 便当
    商店购买或者抽奖获得的食物
  • 幸运符
    除了四叶草和可以购买的幸 (tǔ) 运 (háo) 铃之外,都要抽奖获得
  • 道具
    商店购买
  • 特产
    呱旅游时获得
  • 收藏品
    特别的特产,通常在县府获得,无法使用

属性分类

  • HP
    • 最大时间(小时
      决定蛙的旅行时间
    • 初始体力提升(%)
      增加一开始一鼓作气能旅行的距离
    • 随机体力提升(%)
      随机额外增加体力提升的最高百分点
  • 物品几率
    • 三叶草
      获得三叶草数量
    • 额外随机三叶草
      随机额外获得的最大三叶草数量
    • 抽奖券
      奖券数量
    • 物品收集阻力
      减少收集阻力,增加获得目的地收藏品的概率
  • 决定地区
    对应地区被选中的概率,如果值为 D 则可以直接决定目的地所在区域
  • 移动速度
    根据地形不同,提升移动速度,减少途径所耗费的时间,在相同旅行时间内可以走更远
  • 朋友
    遇到特定旅行伙伴的概率
  • 遭遇地形
    途径特定地形时候获得相应明信片的概率
  • FLAG 属性
    立一些特定的 Flag,主要影响成就系统,下面会写到

如何科学使用物品?

这里用几个例子来展示物品和路线结合的效果

  1. 决定想去的地区
    携带的便当和抽奖获得的护身符(お守り)可以提升选择特定地区的概率。 抽奖获得的车票(きっぷ)可以直接决定所去到的地区。
    例:想去北方,使用北国きっぷ。
  2. 影响路途的距离和时间
    最大时间 值高的食物吃走得远,带 体力提升 值高的食物吃走得快耗时少。
  3. 快速通过沿途路线的地形
    带有地区速度加成的食物或者道具,可以增加特定地形的移动速度。
    不同物品的 移动速度 效果可以叠加,详情查看上面的解释。
  4. 匹配在道路上遇到的伙伴
    如果在途径会遭遇伙伴的道路,特定物品可以增加实际遭遇概率
    例:
    抽奖抽到的黄色ぼうろ(饼干)可以增加路途中遇到螃蟹的几率。

综合运用(敲黑板!!!)

呱想去秋田県男鹿市看灯塔

  1. 在地图上找到 秋田県(3022) 在北方。
  2. 便当选择 あさつきのピロシキ (葱饼?)可以提升去北方的概率。
  3. 携带 青色のお守り (蓝色护身符)可以提升去北方的概率。
  4. 如果有 北国きっぷ(北方车票?)可以直接决定去北方,上面的便当和护身符可以换别的。
  5. 通过目的地概率表发现携带各类帐篷前往 3022 目的地的概率更高。
  6. 查看可能的路线发现从起始点 3000 到 3022 之间会途径很多山路。
  7. 携带 ハイテクテント (高级帐篷?)增加山地移动速度更显著。
  8. 如果还有空余,可以带上 よつ葉(四叶草)或者 幸運の鈴,提升带回物品的概率。

旅途中会带回哪些明信片?

途径每条道路上会遇到的明信片元素都有很明确的概率。

普通的明信片是自动合成的。根据道路元素、所携带道具、遇到的同行小伙伴,程序会选择合适的背景、前景和呱和小伙伴的 pose,合成完整的明信片。粗略计算,有 120 种左右的组合。

几种不同的 pose

有一些带有特定的故事情节明信片是单张绘制的,这里也可以看出游戏制作者的用心:迷路和小伙伴看地图通常出现在地图的边缘,冷清下水道一般出现在四通八达的城市交通枢纽。

迷路的呱呱
路边的排水渠

旅途中会带回哪些特产?

上面提到了,成功到达目的地(GOAL)的时候才会获得特产,收藏品的获得的基础概率是 15%,使用 四叶草 或者 幸运铃铛 可以减少收集收藏品的阻力,增加获得概率。其他物品的概率如下:

游戏代码中有收藏品收集三次必定成功的设定,但是实际上并未启用,可能在之后的版本中会引入

朋友什么时候会来访?

蜗牛、蜜蜂和乌龟会时不时来访。来访停留的时间 180~270 分钟。

蜜蜂需要有至少 3 件收藏品才会出现,乌龟需要有至少 6 件收藏品。

朋友来访应该投喂什么?

给来访的朋友投喂会获得三叶草和抽奖券的回礼:


在此基础上,投喂带有稀有 FLAG 属性的物品会多获得 20 根三叶草,多获得 1~4 张抽奖券。

朋友会记住最近三次的食品。连续投喂同一种物品,获得回礼的数量会降低。

为了达到最好效果,最好换四种不同的礼物轮流投喂,具体可以参照下面的喜好表格:

??? 代表还未收录的物品,可能在将来版本会更新

三叶草多久会长好?

花坛中总共有 20 根三叶草。

三叶草割完之后重生的时间是遵循 \mu=7200,\sigma=1800 的正态分布在 [300, 14400] 的区间:

每一根都是独立重生的。最短 5 分钟 (300 秒),最长 4 小时 (14400 秒) 重生。

四叶草获得的概率是?

完成教程后会自动诞生第一颗四叶草,除此之外,每一根三叶草重生的时候都有 1% 的概率成为四叶草。

抽奖球的概率是?

  • 白:60%
  • 蓝:27%
  • 绿:9%
  • 红:3%
  • 金:1%

如何获得成就?

蛙旅行的时候会立一些 Flag,我从代码中整理了一下触发的条件:

这也是玄学错误迷信的一个地方。使用称呼对游戏其他部分没有任何影响,不会改变获得物品和明信片获得概率,也不会影响出门时长。

有没有免费获得三叶草的方法?

你猜?


持续更新,欢迎在评论区提问。

变成了一个集卡狂人。还是成套的。

这张和小螃蟹的合影是网上找的,因为想凑成套2333。后面2张是我和基友互相交换拿到的。

这一套真的超可爱的!蛙酱孤单在树枝上的戏很多。有这种帽子背对我的,还有其他几个角度的。不过因为只能保存10页,所以有几张删除了。只留了这个帽子的角度的,觉得特别可爱!

这套在草丛的明信片超级多,还有很多小动物的不同动态。以及蛙酱的不同动态。还有被一片树叶子隐藏了小伙伴,只露出一只尾巴或者一个身体部位的。

这套头顶叶子的还有另外一个场景。这个是咖啡馆。可惜的是小蝴蝶的没收齐。

这两张好像是在某个温泉县吧,小蝴蝶的没有收集到,看样子小仓鼠已经HIGH到不行,脑补了小伙伴各种开心的画面,露出了老母亲般欣慰的笑容。单张的比较容易得到我就不放啦。

另外还刷到3张比较少见的图。第一张在仓鼠的(杂货店?)里我记得就用的是摇奖拿到的一颗红色的金平糖+幸运草得到的。第二张是用了3000的幸运铃+80(或100)的食物得到的。当然带的也是最顶级的装备(忘记是什么了)。第三张是用3000幸运铃+紫色帐篷+摇出来的牛蒡口味(最后一个)的饼干得到的!(网上看的攻略没想到真的拿到了)。

最后一张和小蚂蚁的非常非常非常少见。是我一个基友拿到的。鬼知道她用了什么道具,简直萌到不行。我今天也刷到这张了,更新一下刷到这张明信片的道具:100食物(第一个)+粉色御守+紫色帐篷+漆碗

最后三张是好基友珍藏的小螃蟹版,那微微张开的嘴唇和略带天真的眼神,以及用小树枝挑起的小包裹,简直堪称最萌版旅行小伙伴!感谢 @暴暴圈 同学提供的小螃蟹哎!

这套#偷溜进咖啡馆#迷彩头套系列终于齐了!用的是100食物(第一个)+迷彩巾+幸运铃+紫色帐篷得到的!

还刷到了新的动物!蜻蜓+螳螂+小螃蟹!!!敲重点,这张图是用50食物+铃铛+紫色帐篷+1200的碗刷到的!所以其实食物不在贵,关键是装备嘤嘤嘤!


私信有朋友给我了好几张珍惜卡片,谢谢大家!一起发来鉴赏下!






这几张仓鼠的我也很想要嘤嘤嘤!全是基友们刷到的!可谓珍贵明信片可遇不可求!








这套要仔细看才能看到小伙伴。



这两张看日出和点灯的是不带灯笼出的!据说带灯笼可以遇见仓鼠但是我木有刷到!

今天在微博看到有人PO了这张图,询问之下是说用摇出来的金平糖+粉色御守刷到的。嘤嘤嘤太可爱了,我要去试试。