在这周之前,游戏里的每一条线路都是日本的,而这个前提早已悄悄长进了代码里。一座车站必须有汉字名、假名读音和罗马字拼写;打字目标只能从假名推导出来;线路属于哪座城市从来没有被存下来过——它是从运营商名字里猜的,猜不中就当作东京。
这些前提,在伦敦地铁面前一条都站不住。Paddington 就是 Paddington,没有读音要转换,没有东西要转写,而且离东京九千公里。
所以伦敦上线其实是两件事:先把数据模型变得与城市无关,再把线路加进去。
怎么打伦敦
新增的英文输入模式做的是最直白的事:站名是什么,你就一个字母一个字母地打。真正需要斟酌的是标点。
看几个真实站名——King's Cross St. Pancras、Hammersmith & City、Shepherd's Bush、Heathrow Terminals 2 & 3。每一个里面都有那么一个字符:要么不好按,要么不同键盘打出来的形态不一样,要么在原始数据里本身就有歧义。到底是 "St." 还是 "St"?你手机上打出来的撇号是直的还是弯的?
这些都不是游戏想考的东西。所以规则是:
- **撇号、连字符、缩写句点都可打可不打。**打了算对,不打也算对;弯撇号
'会折算成直撇号'。 &打成 "and",因为它就是这么念的;而如果直接跳过,本该是节奏的位置会空出两个连续的空格。- 站名里的连字符处,敲空格也接受。
- **不区分大小写。**每个专名都按 Shift 会让击键数翻倍,CPM 也就没法和日本线路横向比较了。
反过来,空格和数字是要打的。它们是多词站名节奏的一部分——任何一个拉丁文打字测试都是这么算的。
为什么是这三条线
伦敦地铁有十一条线,这次上了三条,而且不是随便挑的。
数据模型里没有「支线」这个概念——一条线就是一串有序的车站——这一刀下去,中央线、北线、皮卡迪利线、区域线、大都会线全部出局。剩下维多利亚、银禧、贝克卢、汉默史密斯与城市线、滑铁卢与城市线。
而在这几条里,维多利亚、银禧、贝克卢三条彼此换乘:牛津广场接贝克卢与维多利亚,贝克街和滑铁卢接贝克卢与银禧,格林公园接维多利亚与银禧。68 座车站中有 4 座是共用的,这意味着路线规划器从第一天起就有真正的多段行程可算。只上两条,或者上三条互不相交的线,规划器就无事可规划了。
汉默史密斯与城市线的走向几乎和环线、区域线重合,而那两条都还没进游戏,所以它单独上线就是一条无处可换乘的孤线。滑铁卢与城市线只有两站——那不叫一局。
那环线呢?
环线是最容易被想到的一条——一个环,就像山手线。它也恰恰是现在还加不进来的那一条。
自 2009 年 12 月起,环线就不再是个环了。它按螺旋线运行:从汉默史密斯到帕丁顿,绕环一圈,再开到埃奇韦尔路。也就是说,埃奇韦尔路在同一条路线里出现了两次。站点 ID 要弄成唯一并不难,但路线规划器是靠站名来识别物理车站的——它正是这样知道贝克卢线和银禧线在贝克街交会。两个都叫埃奇韦尔路的停靠点会被塌缩成同一个图节点,凭空开出一条横穿环心、代价为零的捷径。
要解决这件事,得给车站一个独立于名字的物理身份标识。这个改动是收敛的,而且区域线和大都会线将来也需要同一样东西。只是它不属于这次发布。
当地气质
伦敦线路的呈现方式和东京不一样。站牌上是画出来的圆牌(roundel),而不是伦敦地铁从未使用过的字母加数字方块;站牌上还有票价分区,这在日本没有对应物。
站牌底部那条带子,过去写死了「つぎは」三个字,无论界面是什么语言都一样。现在它由城市决定,所以伦敦的站牌写的是 "Next station"。这一刀是双向的,也是故意的:即便你用英文界面玩东京线路,站牌上也依然是「つぎは」——因为它是真实站牌的复刻,而真实的站牌,说的是它所在那个地方的语言。
路线图也得改。日文站名宽度只有两到四个字,所有标签挤在线路同一侧也不会打架。而 "King's Cross St. Pancras" 大约是「新宿」的六倍宽。现在拉丁线路的标签会左右交替排布,每一侧的可用空间因此翻倍。
接下来
等物理车站身份这件事落地,带支线的线路就能做了,更多伦敦地铁线路会陆续加入。而现在数据模型已经是城市中立的、不再是日本形状的——再下一座城市要回答的问题,会比这一次小得多。
