一個不碰洞穴的能力道具
TUNL 的雷射能燒穿水晶、地雷和整座巨石島。要在不改動任何人每日洞穴中任何一塊石頭的情況下加入它,就代表它根本不能是一枚新金幣。它必須是一枚舊金幣,貼上新標籤。
在雷射出現之前,巨石是唯一打不掉的障礙。子彈打上去只會迸出火花彈開,只有炸彈能擊碎巨石,這是刻意的:巨石是一座保證有兩條通道的岩石島,飛過通道就是技巧所在。需求是做出比子彈更強、仍然能擊碎巨石的東西。武器本身是簡單的部分。
武器
撿起雷射後,兩秒內會有一道光束從機鼻一路延伸到第一面牆。光束線上的水晶、地雷和砲彈會立刻消失,得分和子彈擊中一樣。巨石會擋住光束,開始發光,然後碎成瓦礫。我先在紙上試過另外兩種形式:一串穿透彈和一發蓄力射擊,兩者看起來都太像現有的彈藥金幣。光束一看就知道是不同的武器。
限制:所有人共用一個洞穴
同一天裡每位玩家都飛同一個洞穴。洞穴沒有儲存在任何地方;它是由日期透過帶種子的亂數產生器計算出來的,每種物件一條數列,就像我在每日洞穴那篇文章裡寫的。問題在於這些數列是有順序的。如果金幣生成器多抽了一個亂數,之後的每枚金幣結果都會不同,兩位用不同版本 app 的玩家就會在同一天飛兩個不同的洞穴。
這排除了最直覺的設計。在金幣抽選中給雷射自己的權重,會改變其他每種金幣的比例,並讓第四區段之後的每枚金幣重新抽選。我也否決了升級彈藥金幣的做法,因為彈藥不到兩秒就打完,根本看不出來;還否決了機庫裡的飛船能力,因為那會讓能力道具變成要花錢買的東西。
換標籤,而不是重抽
最後上線的是換標籤。遊戲維護一個游標,也就是洞穴更前方的一個位置。洞穴經過它之後,下一枚原本會以橘色彈藥金幣出現的金幣,會改以雷射出現,而且是在每條放置規則都已經判斷過之後。接著游標往前移大約二十秒的飛行距離。
這一步的隨機偏移也不是來自亂數產生器,而是來自位置的雜湊值,所以同樣可重現,卻不會消耗任何數列。結果是:洞穴的幾何形狀和沒有雷射的版本完全相同。洞穴測試會用兩種方式重播每一天,並要求兩者逐位元組相符,唯一的差別是某些橘色金幣現在寫著雷射。
要測量出現頻率,不要從常數讀出來。因為雷射要等一枚橘色金幣,它真正的間隔是游標步距加上這段等待。步距設為 35 秒時,二十天的重播顯示雷射每 40 到 95 秒才出現一次,第一道大約在 400 分。改成 20 秒後:第四區段大約每 17 秒一次,更深處每 28 到 40 秒一次,第一道的分數中位數約為 340。
雷射從第 4 區段開始出現,和它要擊碎的巨石一起登場。分數低於 233 的每一局都和以前完全一樣。代價是:雷射會佔掉一枚橘色金幣的位置,所以在一局的深處,你會看到稍微少一點的彈藥。換來更強的武器,這是公平的交換。
「雷射打不碎巨石」
這是實際遊玩後的第一個回報,而且說得沒錯。第一版需要光束在岩石上停留大約三分之一秒才能燒穿。但光束是直的,位在飛船的高度,而玩家不會撞向巨石,而是飛過它的通道。所以光束只在邊緣擦過十分之一到四分之一秒。開著雷射飛過的 12 顆真實巨石中,只碎了一顆。
解法是第一次接觸就算數:光束只要碰到巨石,就會點燃、發光、嘶嘶作響片刻,然後爆開。同樣的 12 顆中有 8 顆碎了,其餘 4 顆從未被碰到。另一個選項是讓光束自動瞄準最近的岩石,我沒有採用,因為雷射已經夠強了。我得到的教訓是:測試障礙物時,要沿著玩家實際飛的路線,而不是沿著測試裡飛船的路線。
那些重要的小事
- 金幣。第一枚雷射金幣是一根套在環上的紅寶石棒,在第一張截圖裡看起來像一支針筒。現在它是一顆切割過的紅寶石,射出一道短光束。
- 結尾。以前光束在最後幾刻會以柔和的脈動淡出,很容易錯過。現在它會像電池快沒電的手電筒那樣閃爍:短暫且不規則的中斷,越接近結尾越頻繁,嗡嗡聲也跟著斷斷續續。閃爍只是視覺效果。光束在每次中斷時仍持續命中,而閃爍模式是由時鐘的雜湊值產生,不是從亂數產生器抽出來的。
- 長度。一開始是 2.5 秒,實際玩起來覺得太長,所以現在是 2 秒。
- 效果。在八天的自動駕駛重播中,雷射開啟的時間佔 0 到 7% 的幀數,護盾被擊中的次數減少約 3%。它是一個展現力量的時刻,而不是調整難度的槓桿,這正是我想要的。
我一再重複使用的模式
雷射不是第一個被這條規則塑造的功能。修理包,也就是你擊落地雷或砲彈時掉下來的扳手,基於同樣的理由放在自己的清單裡,而不是和金幣放在一起:放進金幣裡,每日洞穴就會分岔。在一款承諾每天共享一個洞穴的遊戲裡,每個新功能要問的問題都一樣:它會抽亂數嗎?如果會,是從誰的數列抽?
在今天的洞穴裡,當天第一道雷射通常會在 300 分之後的某處出現。