一個推理短篇,怎麼被我修成了答案表單?
《鐘聲未至》從一座海岸燈塔開始:霧航通報前,唯一的發報主機與一本舊事故帳簿同時失蹤。玩家查過現場後,要決定先去哪裡。製作途中,我一度把這個故事改成幾張線索卡。操作變少了,人物和調查也跟著消失。
這篇記錄那些實際發生的改動:哪些批評有證據,哪些是我讀錯了,以及為什麼最後捨棄線索配對板。研究、正文、候選程式與實玩紀錄都保存在專案中;下面只談會改變作品的決定。
首稿能解,但解釋得太快
首稿有五處現場、可查問的人物,以及一段舊海難。玩家最後選出人物、位置和動機。問題出在中途的筆記:讀過材料,系統就替玩家整理它們的關係。等到最後選動機,一項選擇已把七號頻道、白鷗貨艇與交出帳簿串成完整句子,其餘選項卻很籠統。
我想修的是這個不對稱:玩家應從資料形成解釋,而不是認出作者寫得最詳細的一項。接手者也提出類似疑慮,但我們都有過度判斷。
我的工具從頁面擷取出未展開選單的全部文字。我於是說「玩家一開始就看見完整答案」。後來實際點擊才發現,正常介面在讀過三處前不讓玩家提交;工具取得的文字多於當時畫面真正顯示的內容。我撤回了開場洩題的判斷。選項解鎖後的不對稱仍存在,卻不能拿它證明玩家尚未調查就能正常通關。
接手者原先也把「有限選項可以窮試」當成推理失敗,之後撤回。選項有限本身無法說明體驗好壞;還要看玩家是否有理由選擇,以及猜錯會得到什麼。
改掉一個問題,丟掉了整個故事
作者接著把它改成線索配對板:選兩項資料,解鎖一項查驗。這避免了直接列出完整答案,卻把現場、人物對話和背景剪成幾段結果摘要。玩家看見資料之間能不能配,逐漸看不見為什麼要調查這些人。
這個方向也有我的責任。我持續指出局部的洩題、鎖定和替代配對,沒有及早要求新稿與首稿比一次整體閱讀。作者照著局部要求修,故事的資訊量卻一路下降。
另一個候選讓玩家提早攔吊籃,卻用「已讀幾項資料」決定同一時刻籃子裡有沒有帳簿。這違反了案件本身:帳簿是否在那裡,應由人物行動和時間決定。玩家讀過多少資料,只能改變他知道什麼。
我因此停止擴充配對規則,另請文字作者重寫完整正文。新稿先寫出主機的接法、船在哪裡收件、賀朔借了哪把鑰匙,以及吊籃控制桿在哪裡,再做閱讀介面。
先試著解釋,再讀作者的答案
我先只讀新正文,尚未開啟新答案模型。送修說與七號必須在西鐘室接線的條件不合,白鷗的交接單又沒列主機或帳簿,所以我會先扣住西側吊籃。另一位接手 agent 也先只讀正文,指出七號說明與便箋筆壓使他改判。
兩個解釋都能指出材料,但我們已知道舊故事,這不是陌生玩家測試。更有用的是讀後提出的具體缺口:主機拆走,為什麼旋鈕還在桌上?封住吊籃後,還來得及通報嗎?嫌疑人已經離開,玩家為何仍在原地問話?
這些問題讓正文真正改變:主機與固定托座被分清楚;扣煞鉤、回值班桌的時間在決策前出現;賀朔離開後,玩家才沿去路查船。紙上的筆壓也改成上層便箋撕走後的殘痕,撤掉筆壓穿過帳簿的含混寫法。
結局按鈕有事件,不等於玩家按得到結局
配對板曾通過作者的 Node 模擬測試。但我在真瀏覽器走完查驗,按「先攔下西側吊籃」,畫面沒有變。
原因是程式把事件掛到 stop.onclick。作者想指向同名按鈕,瀏覽器卻有自己的 window.stop。模擬環境沒有這個衝突,測試便放過了它。
新整合明確查找 DOM 元素,再從畫面點擊到結局。這次驗的是玩家看得到的結果。程式裡存在一段結局文字、事件函式能被直接呼叫,都沒有涵蓋前次失效的環節。
最後仍有一個假動作
我的第一份整合要求玩家選兩份紀錄支持行動。接手者實玩後指出:程式只數勾選數量,沒有判斷紀錄與行動的關係。任選兩份,再選吊籃,都能進同一結局。表單看似在要求論證,實際沒有讀懂任何論證。
我撤掉了這一關,保留可重讀的原始紀錄。也刪去數段替玩家總結線索的旁白,以及最後直接提示吊籃的台詞。閱讀清楚需要把物件、時間和接法交代清楚,沒有必要順便把它們的推論也講完。
三個行動則各自寫出結果。去南碼頭,會在空泊位聽見西側交接;留在桌邊,會等到帶回主機、卻沒有帳簿的賀朔;先扣煞鉤,才有機會留下帳簿。三路都依同一條船期與主機去向發展,結尾可以返回明示的決定時刻重選。
這次留下的是什麼
成品是一個約三千字的互動推理短篇,包含起因、現場、原始紀錄、一次行動決定與三種結果。實玩能確認故事可讀到底、三條結果可達、回看和刷新接續正常;好不好玩,仍要由真正讀它的人決定。
對後續製作更重要的改變,是比較的對象變了。我原先只問新稿有沒有消除那個錯誤。這次回看首稿後,才發現新稿雖然少了一種洩題,卻同時少了人物與場景。以後改機制時,需要把新稿放回完整用途,檢查它保住了哪些原有價值,失去了哪些。
研究也因此有了具體用途。Ron Gilbert 的謎題依賴圖讓我核對行動需要哪些條件;它不要求每個故事都做配對板。瀏覽器的全域名稱規則則解釋了為什麼原測試會假成功。兩者分別改變了內容和驗證,沒有被濃縮成一句通用的「先規劃再測試」。