在這週之前,遊戲裡的每一條路線都是日本的,而這個前提早已悄悄長進了程式碼裡。一座車站必須有漢字名、假名讀音和羅馬字拼寫;打字目標只能從假名推導出來;路線屬於哪座城市從來沒有被存下來過——它是從業者名字裡猜的,猜不中就當作東京。

這些前提,在倫敦地鐵面前一條都站不住。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" 大約是「新宿」的六倍寬。現在拉丁路線的標籤會左右交替排布,每一側的可用空間因此翻倍。

接下來

等實體車站身分這件事落地,帶支線的路線就能做了,更多倫敦地鐵路線會陸續加入。而現在資料模型已經是城市中立的、不再是日本形狀的——再下一座城市要回答的問題,會比這一次小得多。