為冒險解密遊戲設計一個好謎題

遊資網發表於2019-08-07
為冒險解密遊戲設計一個好謎題

我是親手設計過一些謎題的,不過可能跟大家常接觸到的冒險解密中的通過場景互動等方法制造的謎題、一些推理小說、推理遊戲中類似“預告函”之類的謎題不大一樣。它應該屬於類似跳舞的小人一樣的密碼cipher,其特點是符合邏輯、對應明確、加密解謎一般情況下可逆,部分可以通過統計等暴力手段得出結果。但是整體上來說,和設計一款“冒險解密類”遊戲中的謎題的區別應該不是很大,希望能夠帶來一些新的思路。

綜述:什麼樣的謎題才應該算是好謎題?

一般來說,一個好的、有趣的題目應該符合“合理”、“友善”、“簡潔”、“明確”、“創新”的特點。

合理:首先明確一個觀點,無論是什麼謎題,都有其基本的正規化。比如古典密碼的加密方法一般就可以分為替代、亂序、提取等等,那麼“冒險解謎”的謎題設計手段其實也是一樣,可能包含著去某地找某物、開某機關、某物與某物組合等等基本的正規化。在此基礎上可以有所創新,或者運用多種正規化的組合,但是應該保證符合謎題的基本特徵。

而在此基礎上,一個謎題還應該符合基本的邏輯思想,是能夠通過足夠的證據進行分析的,是能夠被正常的思想解讀的,並不應該為了“創意”而單純求新求怪、從而難以理解,這樣的謎題並不能稱為一個好題目,更不能稱為一個有趣的題目了。

友善:友善指的是出題人所應該保證的心態,和其出題的最主要目的。一般來說出題人的態度可以大致分為兩種:一種是單純為了彰顯自己智商上的優越性,為了難倒解題人從而獲得“碾壓”式的精神愉悅。可以說這種出題人是不友善且便太的,不能作為一個正常的出題人加以討論,如果你自認為自己是這種出題人,那麼接下來的內容你可以不用看了。

另一種是我所喜歡並希望成為的“友善的”出題人。這一類出題人享受的是自己的題目能夠被解題人正確解答時的一種“被理解”的感覺,題目是他們與解題人交流的一種手段,他們通過引導解題人解決自己的謎題而傳遞出自己所要表達出來的想法和目的,而解題的過程則是他們反饋給解題人的享受。也就是說,出題人在設計題目的時候首先要保證自己的題目並不是為了難為人或者單純消耗解題人的時間,而是題目本身一定要能夠被解且有意義。

簡潔:一道好的題目可能不止包含基礎正規化中的一種,而是包含多種正規化的組合。但是要注意題目不能成為一個多種方式的無序、無意義堆疊,應該儘量地避免冗長的解題流程。也就是說,在出題的時候應該秉行減法原則,除了必要的解題過程之外的一切不必要元素都應該酌情拋棄。如果必須要使用長流程的題目,那麼至少應該保證題目的各個步驟都應該儘量簡潔,且有所“停頓”。一定要盡力避免過於繁雜的規則和過於冗長的過程,確保有最優解或唯一最簡最優解。

明確:製作題目的時候要保證題目的每一個步驟都應非常清晰,而且解題所得到的結果應該非常明白,不需要在驗證上花費過多的時間。這一點無論是在結果還是過程上都應該保證。或者換一種方法來說,如果解題人已經確認了自己所想要執行的解題方法,那麼在解題的過程中它應該能夠得到一個關於這樣做能否得到答案的明確反饋,儘量避免解題人浪費自己的時間從而保證一個良好的解題感受。

創新:創新不應該是單純地去創造更多的規則、改造原有的正規化的玩法、或者單純地換一層“新皮”而怪瓶裝舊酒,這樣的方法並不能稱為創新。比如在製作一個密碼的時候,經常會有人“創造”出一門屬於自己的“祕密”語言,其實不過就是規則複雜一些且用了一些新的“替代元素”的單表替代密碼。這樣的創新非常無趣。

一個好的創新可能更接近於“舊瓶裝新酒”,把舊有的元素通過新的組合方式製造出更加新奇的解謎流程,這樣的創新才更能夠讓雙方都有一個非常好的感受。而更好的創新則應該是“新瓶裝新酒”,但是我還沒有達到這種境界所以不予討論。

出謎題的一般步驟

簡單說一下大致的出謎題的步驟吧,挑著比較重要的詳細說說,不重要的就暫且略過了。

1.確定出題的目的

對於我常玩兒的密碼來說這一點並不重要,但是對於其他的一些解謎遊戲這一點就比較重要了。作為一個出題人,首先應該考慮清楚自己是否要在此處設計謎題,設計的謎題究竟要起什麼作用:究竟是通過謎題拖慢玩家的攻略速度,還是通過謎題完成劇情的過度,還是用於給予玩家重要的暗示或者下一場景/戰鬥所需要的重要道具等等。根據需求的不同,所要設立的謎題的型別也不一樣。比如說你需要玩家在此處放慢速度並沉浸感受劇情,那麼你需要的謎題可能就需要稍微長一些,然後要能夠明確地串聯起這段遊戲中的幾個重要劇情點。比如《戰神2》中解放四匹馬拉動小島的謎題,雖然比較長但是能讓玩家更加感受到場景的巨集大壯麗,也可以算是一個不錯的謎題。

2.確定自己要加密的內容/傳遞的資訊

3.確定自己想要應用的加密手法及相關步驟

對於一個密碼或者謎題來說,有的時候為了避免自己所想採用的手法被一眼看穿,有的時候還需要引入一些迷惑性或有限地誤導性的元素來增加題目的難度。這一點我根據具體的題目來說吧。

4.根據加密的步驟與加密內容之間的相性對題目進行微調

有的時候你所想要加密的謎底和你所要採用的表達方式可能會有所衝突,在這種情況之下你就要根據實際情況要麼在不改變原意的情況下改動你的謎底,要麼有限度地改動你所想要採用的手法。如果還是不行,少俠請重新來過。

5.第一遍複查掃除bug

6.在完全沒有提示的情況下自己試解

我認為這一點以及下邊幾點是將一個謎題昇華成好謎題的關鍵步驟。如上文所說,一個好的出題人是應該藉由“謎題”這種方式與解題人完成溝通的。那麼在這個前提下,出題人能夠站在解題者的角度和思路上去觀察、解讀自己的題目就顯得尤為重要了。如果你自己都討厭自己創造出來的東西那它也不應該出來噁心別人對吧。在這種試解的情況下要盡力避免主觀因素,覺得“我就是這麼設計的所以玩家肯定會這麼想”,這樣是大忌。應該嘗試走一遍根據題目所給出的資訊所能達到的各種歧路,並將它們記錄下來。然後嘗試是否有其他的解法能夠走通,最後統計解出最終解所需要的關鍵步驟,以便給出提示。

7.根據試解情況掃除歧義項,並給出合適的提示

我認為如何給提示和怎樣給出一個好提示是出題的時候最精髓,也最能體現、完成出題人和玩家的交流的部分,也是最能夠體現一個出題人功力的一部分了。在這個環節中,你需要斃掉自己在試解過程中所發現的在有限少的步驟內不能確認走不通的歧路,避免產生不必要的時間浪費;斃掉可以在明顯發現的、並且在有限少的步驟內就能得到其他合理解的歧路,避免產生不必要的誤讀;如果需要保證有且僅有唯一最優解的話,還要確保不會有其他的能夠通向正解的方向。在完成了剔除不必要項之後,就要根據自己在試解中所嘗試的一些歧路、所採用的一些關鍵步驟和自己設計題目時所採用的步驟進行對比,並給出一個明確且不容易引起歧義的提示了。需要注意的一點是:不要把你的提示做成另外的一個謎題,而應該讓它儘可能的簡潔明確,起到它應有的指引、除雜的作用。

8.找一個無辜路人不知情者進行試解

9.修改提示

10.最終完成

•結合題目討論自己的出題思想

如果你有興趣的話可以自己做一做這個題目,先不要看我下面的分析。

•題目:

(2416+5342)(362+37)=?

(5621+3425)(1346+2467)=?

(4325+126)(436+714)=?

(4631+3521)(6475+23514)=?

(1456+32145)(167+43)=?

(13564+231)(274+312)=?

(6153+4215)(6431+257)=?

(152+42157)(23+3)=?

原本的提示:兩層題目蒙人流,專坑紙筆黨。

針對牛關吃瓜群眾的提示:1.最終答案形式為英文單詞;2.仔細觀察計算器;3在黑暗如何閱讀?4.如果你得到了明確思路那麼你一定能夠確定這個思路是否正確。

用於校驗的16位MD5碼後四位:4a5b

•我出題的思路:

首先確定我想要加密的單詞原本是joyrider,而我想要採用的加密方式則是盲文。這一點上並沒有什麼過多可思考的,直接將單詞轉化為盲文的表達形式為:(245,135,13456,1235,24,145,15,1235)

然後則要確定自己想要掩蓋盲文特徵所用的手法了,我所想到的是通過電晶體的表現形式進行掩蓋。如何掩蓋呢,嘗試在一組電晶體中找出重合的部分?看起來行得通啊。

但是單純地這樣並不夠有趣,而且也很容易被看出。那麼就嘗試一下加一層誤導吧,然後通過這一層誤導給出正確解法的思路,不就既能達到有趣的目的,又加強了自己的加密方式,而且還能夠剔除無法確認的其他思路了麼?行得通。那麼既然想要以電晶體的形式來表現這道題目,就再通過以電晶體表達數字的手法來加密出自己所想給出的提示吧,並且將原本的加密方式混入其中,形成最終的題目。

我原本想給出的提示是“重合的(chonghed)”,但是實際操作的時候發現並不能完成我所要的加密。然後我又嘗試了其他的一些同義詞,但是都不能被完美的表達出來。這時候我認為應該是我所選取的用來加密的謎底的特性可能不適合這樣加密,但是我又不捨得這個好思路,於是我就查詢了一下同義詞,並最終選擇了“swindler”來作為最終的答案。然後根據答案的變化我又將提示詞轉化成了“疊合處(diehechu)”,這樣一來兩套加密實現了完美的自洽,實現了我的需求。

於是原本的題目是這樣的:

(1246+2345)(236+37)=?

(1256+2345)(1346+2467)=?

(2345+126)(346+147)=?

(1346+1235)(4567+12345)=?

(1456+12345)(167+34)=?

(13564+231)(247+123)=?

(1356+1245)(1346+257)=?

(125+12457)(23+3)=?

然後就是根據我所做出的題目進行試解了。在試解的過程中發現非常地順利而且沒有任何歧義,並不需要過多的提示,可以說已經比較優秀地完成了。但是問題還是太過於明顯了,那麼對於數字順序進行一些無傷大雅的亂序吧,這樣相對減小了特徵但是又不影響解題。於是最後題目就變成了上面那樣。

接下來所要面對的問題就是該如何給出提示了,這裡原本的提示是針對一群有一定的解謎經驗和能力的老鳥,所以我的提示比較簡潔且不算太厚道。但是轉發到牛關之後考慮到牛關裡玩兒過類似遊戲的人可能不會很多,於是就做了一些更詳細的提示。

•我所腦補的你們看到題目後的解題思路:

首先看到這些數字最大不超過7,最小為1,按照題目原文進行計算之後發現並沒有有用的線索,那麼這條路大概是走不通的,於是放棄。那麼回過頭來看提示,“專坑紙筆黨/仔細觀察計算器”,這裡提示的肯定不是進行運算,而應該是計算其中某些更有特徵的東西。再返回來觀察數字,發現數字實際上非常有規律,有幾個陣列重複出現過,而且括號中元素最少為兩個。那麼在計算器中最符合這一特徵的應該是電晶體數字顯示器了,嘗試帶入,行得通,可以得出“diehechu”這一答案。

但是這個答案似乎並不具有實際意義,而且與提示不符,那麼猜測這是通向真正解法和答案的提示。那麼根據這一資訊繼續觀察原本的題目,發現其中每一等式的重複元素非常多,將這些重複元素逐行提取出來進行觀察,發現符合盲文規律,於是按照盲文解出答案swindler,雖然看起來還是被騙了但是符合題目和提示……

於是這就應該是最終答案了吧。

哦豁,還真是……

總結:如何才能設計一個有趣又有難度的謎題

設計一個有趣又有難度的謎題,首先要保證這是一個好謎題。在此基礎上,有趣體現在其表現形式、整體思路上的新穎而清晰。想要讓題目有趣通常需要利用場景、解題方式的別出心裁、與劇情元素的契合程度等方面下下苦工。難度則通過謎題中各個步驟的解決難度和線索獲得的難易度進行調節,一般來說是要通過縝密的邏輯鏈來鑽人們的思維定式中的空子,造成一種出乎意料又合情合理的感覺。想要讓“有趣”和“難度”有機結合起來,我覺得最恰當的可能就是利用人們的思維慣性進行表層的誤導,當解題者發現自己被誤導之後又能很快地找到正確的思路,發出類似於“原來如此,我怎麼就忽略了/沒想到”的讚歎,這樣就基本算是成功了。“最是那一低頭的溫柔”。

還有一種思路,就是通過合理的提示“勾引”解題者去解決一個龐大謎題中的每一個細碎環節。這些細碎環節之間應該井井有條、環環相扣,之間的邏輯聯絡應該清晰明朗,逐步加深。這樣誘使解題人逐步深入,從而欲罷不能。

當然了,我認為在整個設計環節中,最重要的就是如何在恰當的時機給出最恰當的提示了。提示大概是一個謎題的點睛之筆,是誘使人們繼續玩兒下去的一種動力。一個好的提示完全有可能把原本的整個冗長龐大的謎題給盤活,一個不恰當的提示也完全有可能毀了你精心設計的謎題——它既有可能太過簡單直白而讓你的題目完全沒有難度,又有可能太過晦澀而使你的簡單題目無法被理解。提示不能成為題目之外的題目,應該儘量保證清晰明朗,但又不簡單直白。

作者:說書人
來源:奶牛關
原地址:https://cowlevel.net/question/1854185

相關文章