'為什麼大多遊戲的“隨機性”設計都是有問題的'

設計 三子棋 保齡球 圍棋 電子遊戲 井字棋 體育 千猴馬的遊戲設計之道 2019-08-20
"

我們玩過很多遊戲中都有隨機數,但是一些遊戲的隨機數總是讓人有不爽的感覺,很奇怪的是明明有問題,但又很難說清問題在哪兒。所以今天我們就從遊戲設計的方法出發,來看看一個遊戲在設計過程中的一些細節與隨機性之間的矛盾,從而挖掘出這些讓人不爽的隨機性背後的“難言之隱”。


01遊戲設計是在設計多叉樹

其實我們可以把遊戲的過程設計,或者玩家體驗遊戲的過程,看作是一顆多叉樹:

"

我們玩過很多遊戲中都有隨機數,但是一些遊戲的隨機數總是讓人有不爽的感覺,很奇怪的是明明有問題,但又很難說清問題在哪兒。所以今天我們就從遊戲設計的方法出發,來看看一個遊戲在設計過程中的一些細節與隨機性之間的矛盾,從而挖掘出這些讓人不爽的隨機性背後的“難言之隱”。


01遊戲設計是在設計多叉樹

其實我們可以把遊戲的過程設計,或者玩家體驗遊戲的過程,看作是一顆多叉樹:

為什麼大多遊戲的“隨機性”設計都是有問題的

在這顆多叉樹上有這樣幾種節點:

  • 根節點:即玩家第一次與遊戲交互(產生操作)的節點。在根節點之前,由於玩家和遊戲沒有交互,所以遊戲中一切的“發展”都是一種“演示”,無法形成“玩”的概念,只有當玩家做出了操作以後,並且操作“推動”了遊戲的進程,這才能算是真的開始玩遊戲了。這也是為什麼很多遊戲要有一個“Push Start Button”界面的原因。
"

我們玩過很多遊戲中都有隨機數,但是一些遊戲的隨機數總是讓人有不爽的感覺,很奇怪的是明明有問題,但又很難說清問題在哪兒。所以今天我們就從遊戲設計的方法出發,來看看一個遊戲在設計過程中的一些細節與隨機性之間的矛盾,從而挖掘出這些讓人不爽的隨機性背後的“難言之隱”。


01遊戲設計是在設計多叉樹

其實我們可以把遊戲的過程設計,或者玩家體驗遊戲的過程,看作是一顆多叉樹:

為什麼大多遊戲的“隨機性”設計都是有問題的

在這顆多叉樹上有這樣幾種節點:

  • 根節點:即玩家第一次與遊戲交互(產生操作)的節點。在根節點之前,由於玩家和遊戲沒有交互,所以遊戲中一切的“發展”都是一種“演示”,無法形成“玩”的概念,只有當玩家做出了操作以後,並且操作“推動”了遊戲的進程,這才能算是真的開始玩遊戲了。這也是為什麼很多遊戲要有一個“Push Start Button”界面的原因。
為什麼大多遊戲的“隨機性”設計都是有問題的

大多遊戲都有一個“歡迎畫面”需要玩家點一下才繼續

  • 節點:即影響遊戲局面的事件的發生點,一個節點會引申出多個子節點,每局遊戲運行過程中會根據這個節點的發生的具體事件的具體內容來決定這局遊戲具體通向其中哪一個子節點。通常來說,可以影響遊戲局面的因素包括且不限於玩家的操作、關卡中預設的元素、突發事件、隨機事件等元素。即在遊戲運行過程中動態產生了一些情況,這些情況導致遊戲局面發生變化,比如下象棋時每次落子都是一個節點,它會導致棋局進入不同的節點(產生不同的局面)。我們可以把節點理解為一個函數y=f(x),因變量y是要通向的下一個節點,而參數x是一個集合,是當前狀況下所有影響局面變化的元素產生的一個集合。比如“模擬高爾夫球”遊戲,我們打一杆球就是一個函數(節點),參數x有我們擊球的角度、力度、用的杆,這些來自玩家操作;還有球場的風力、風向等來自遊戲運行時的環境,然後根據這些參數,運行了y=f(x),得出了y,即“球落在了哪兒,遊戲是否結束(進入結束節點)?如果沒有結束就要打下一杆(進入新的節點)。
"

我們玩過很多遊戲中都有隨機數,但是一些遊戲的隨機數總是讓人有不爽的感覺,很奇怪的是明明有問題,但又很難說清問題在哪兒。所以今天我們就從遊戲設計的方法出發,來看看一個遊戲在設計過程中的一些細節與隨機性之間的矛盾,從而挖掘出這些讓人不爽的隨機性背後的“難言之隱”。


01遊戲設計是在設計多叉樹

其實我們可以把遊戲的過程設計,或者玩家體驗遊戲的過程,看作是一顆多叉樹:

為什麼大多遊戲的“隨機性”設計都是有問題的

在這顆多叉樹上有這樣幾種節點:

  • 根節點:即玩家第一次與遊戲交互(產生操作)的節點。在根節點之前,由於玩家和遊戲沒有交互,所以遊戲中一切的“發展”都是一種“演示”,無法形成“玩”的概念,只有當玩家做出了操作以後,並且操作“推動”了遊戲的進程,這才能算是真的開始玩遊戲了。這也是為什麼很多遊戲要有一個“Push Start Button”界面的原因。
為什麼大多遊戲的“隨機性”設計都是有問題的

大多遊戲都有一個“歡迎畫面”需要玩家點一下才繼續

  • 節點:即影響遊戲局面的事件的發生點,一個節點會引申出多個子節點,每局遊戲運行過程中會根據這個節點的發生的具體事件的具體內容來決定這局遊戲具體通向其中哪一個子節點。通常來說,可以影響遊戲局面的因素包括且不限於玩家的操作、關卡中預設的元素、突發事件、隨機事件等元素。即在遊戲運行過程中動態產生了一些情況,這些情況導致遊戲局面發生變化,比如下象棋時每次落子都是一個節點,它會導致棋局進入不同的節點(產生不同的局面)。我們可以把節點理解為一個函數y=f(x),因變量y是要通向的下一個節點,而參數x是一個集合,是當前狀況下所有影響局面變化的元素產生的一個集合。比如“模擬高爾夫球”遊戲,我們打一杆球就是一個函數(節點),參數x有我們擊球的角度、力度、用的杆,這些來自玩家操作;還有球場的風力、風向等來自遊戲運行時的環境,然後根據這些參數,運行了y=f(x),得出了y,即“球落在了哪兒,遊戲是否結束(進入結束節點)?如果沒有結束就要打下一杆(進入新的節點)。
為什麼大多遊戲的“隨機性”設計都是有問題的

圍棋每落一個子都是一個節點

  • 結束節點:當進入這個節點的時候,一局遊戲就結束了。對於某一個玩家而言,這個節點存在好壞關係,即這個節點代表了該玩家“獲勝”,就會是個“好結局”。

玩家玩一局遊戲,就是在一棵多叉樹上走了一枝:

"

我們玩過很多遊戲中都有隨機數,但是一些遊戲的隨機數總是讓人有不爽的感覺,很奇怪的是明明有問題,但又很難說清問題在哪兒。所以今天我們就從遊戲設計的方法出發,來看看一個遊戲在設計過程中的一些細節與隨機性之間的矛盾,從而挖掘出這些讓人不爽的隨機性背後的“難言之隱”。


01遊戲設計是在設計多叉樹

其實我們可以把遊戲的過程設計,或者玩家體驗遊戲的過程,看作是一顆多叉樹:

為什麼大多遊戲的“隨機性”設計都是有問題的

在這顆多叉樹上有這樣幾種節點:

  • 根節點:即玩家第一次與遊戲交互(產生操作)的節點。在根節點之前,由於玩家和遊戲沒有交互,所以遊戲中一切的“發展”都是一種“演示”,無法形成“玩”的概念,只有當玩家做出了操作以後,並且操作“推動”了遊戲的進程,這才能算是真的開始玩遊戲了。這也是為什麼很多遊戲要有一個“Push Start Button”界面的原因。
為什麼大多遊戲的“隨機性”設計都是有問題的

大多遊戲都有一個“歡迎畫面”需要玩家點一下才繼續

  • 節點:即影響遊戲局面的事件的發生點,一個節點會引申出多個子節點,每局遊戲運行過程中會根據這個節點的發生的具體事件的具體內容來決定這局遊戲具體通向其中哪一個子節點。通常來說,可以影響遊戲局面的因素包括且不限於玩家的操作、關卡中預設的元素、突發事件、隨機事件等元素。即在遊戲運行過程中動態產生了一些情況,這些情況導致遊戲局面發生變化,比如下象棋時每次落子都是一個節點,它會導致棋局進入不同的節點(產生不同的局面)。我們可以把節點理解為一個函數y=f(x),因變量y是要通向的下一個節點,而參數x是一個集合,是當前狀況下所有影響局面變化的元素產生的一個集合。比如“模擬高爾夫球”遊戲,我們打一杆球就是一個函數(節點),參數x有我們擊球的角度、力度、用的杆,這些來自玩家操作;還有球場的風力、風向等來自遊戲運行時的環境,然後根據這些參數,運行了y=f(x),得出了y,即“球落在了哪兒,遊戲是否結束(進入結束節點)?如果沒有結束就要打下一杆(進入新的節點)。
為什麼大多遊戲的“隨機性”設計都是有問題的

圍棋每落一個子都是一個節點

  • 結束節點:當進入這個節點的時候,一局遊戲就結束了。對於某一個玩家而言,這個節點存在好壞關係,即這個節點代表了該玩家“獲勝”,就會是個“好結局”。

玩家玩一局遊戲,就是在一棵多叉樹上走了一枝:

為什麼大多遊戲的“隨機性”設計都是有問題的

這一次玩家走了這一枝,下一次也許就未必了。根據上面的介紹我們不難理解——在一局遊戲中玩家在這顆多叉樹上具體能走過哪些節點,取決於每一個節點函數的運行結果。而玩家努力找尋或者操作是為了能走上一條通向“好結局”的路線,一個遊戲可以有多個“好結局”的結束節點,通向同一個“好結局”的路徑也最好能是多條的。“好結局”或者“通向好結局的路徑”越少(佔多叉樹的比例),玩家越會覺得遊戲困難;“通向好結局的路徑”越是單一,遊戲越是顯得有“最優解”。

多叉樹是一種設計的思想,你沒法在每次設計時候都畫出多叉樹,因為那窮舉量太大了,但是你必須在腦海中構建出多叉樹來,至少每一個節點的下一個節點會是哪些你應該能清晰的抽象出來。

02用多叉樹看一些遊戲

九宮棋(Tic Tac Toe)

"

我們玩過很多遊戲中都有隨機數,但是一些遊戲的隨機數總是讓人有不爽的感覺,很奇怪的是明明有問題,但又很難說清問題在哪兒。所以今天我們就從遊戲設計的方法出發,來看看一個遊戲在設計過程中的一些細節與隨機性之間的矛盾,從而挖掘出這些讓人不爽的隨機性背後的“難言之隱”。


01遊戲設計是在設計多叉樹

其實我們可以把遊戲的過程設計,或者玩家體驗遊戲的過程,看作是一顆多叉樹:

為什麼大多遊戲的“隨機性”設計都是有問題的

在這顆多叉樹上有這樣幾種節點:

  • 根節點:即玩家第一次與遊戲交互(產生操作)的節點。在根節點之前,由於玩家和遊戲沒有交互,所以遊戲中一切的“發展”都是一種“演示”,無法形成“玩”的概念,只有當玩家做出了操作以後,並且操作“推動”了遊戲的進程,這才能算是真的開始玩遊戲了。這也是為什麼很多遊戲要有一個“Push Start Button”界面的原因。
為什麼大多遊戲的“隨機性”設計都是有問題的

大多遊戲都有一個“歡迎畫面”需要玩家點一下才繼續

  • 節點:即影響遊戲局面的事件的發生點,一個節點會引申出多個子節點,每局遊戲運行過程中會根據這個節點的發生的具體事件的具體內容來決定這局遊戲具體通向其中哪一個子節點。通常來說,可以影響遊戲局面的因素包括且不限於玩家的操作、關卡中預設的元素、突發事件、隨機事件等元素。即在遊戲運行過程中動態產生了一些情況,這些情況導致遊戲局面發生變化,比如下象棋時每次落子都是一個節點,它會導致棋局進入不同的節點(產生不同的局面)。我們可以把節點理解為一個函數y=f(x),因變量y是要通向的下一個節點,而參數x是一個集合,是當前狀況下所有影響局面變化的元素產生的一個集合。比如“模擬高爾夫球”遊戲,我們打一杆球就是一個函數(節點),參數x有我們擊球的角度、力度、用的杆,這些來自玩家操作;還有球場的風力、風向等來自遊戲運行時的環境,然後根據這些參數,運行了y=f(x),得出了y,即“球落在了哪兒,遊戲是否結束(進入結束節點)?如果沒有結束就要打下一杆(進入新的節點)。
為什麼大多遊戲的“隨機性”設計都是有問題的

圍棋每落一個子都是一個節點

  • 結束節點:當進入這個節點的時候,一局遊戲就結束了。對於某一個玩家而言,這個節點存在好壞關係,即這個節點代表了該玩家“獲勝”,就會是個“好結局”。

玩家玩一局遊戲,就是在一棵多叉樹上走了一枝:

為什麼大多遊戲的“隨機性”設計都是有問題的

這一次玩家走了這一枝,下一次也許就未必了。根據上面的介紹我們不難理解——在一局遊戲中玩家在這顆多叉樹上具體能走過哪些節點,取決於每一個節點函數的運行結果。而玩家努力找尋或者操作是為了能走上一條通向“好結局”的路線,一個遊戲可以有多個“好結局”的結束節點,通向同一個“好結局”的路徑也最好能是多條的。“好結局”或者“通向好結局的路徑”越少(佔多叉樹的比例),玩家越會覺得遊戲困難;“通向好結局的路徑”越是單一,遊戲越是顯得有“最優解”。

多叉樹是一種設計的思想,你沒法在每次設計時候都畫出多叉樹,因為那窮舉量太大了,但是你必須在腦海中構建出多叉樹來,至少每一個節點的下一個節點會是哪些你應該能清晰的抽象出來。

02用多叉樹看一些遊戲

九宮棋(Tic Tac Toe)

為什麼大多遊戲的“隨機性”設計都是有問題的

九宮棋是A和B兩名玩家進行的遊戲,規則也非常簡單——輪流行動,直到一方連起一條直線上3個棋子。因此九宮棋的兩種節點分別是:A玩家行動節點和B玩家行動節點,在這些節點裡的參數只有:當前玩家決定落子在哪兒,最後函數返回出新的棋局——通向了新的節點或是達到了結束節點。

"

我們玩過很多遊戲中都有隨機數,但是一些遊戲的隨機數總是讓人有不爽的感覺,很奇怪的是明明有問題,但又很難說清問題在哪兒。所以今天我們就從遊戲設計的方法出發,來看看一個遊戲在設計過程中的一些細節與隨機性之間的矛盾,從而挖掘出這些讓人不爽的隨機性背後的“難言之隱”。


01遊戲設計是在設計多叉樹

其實我們可以把遊戲的過程設計,或者玩家體驗遊戲的過程,看作是一顆多叉樹:

為什麼大多遊戲的“隨機性”設計都是有問題的

在這顆多叉樹上有這樣幾種節點:

  • 根節點:即玩家第一次與遊戲交互(產生操作)的節點。在根節點之前,由於玩家和遊戲沒有交互,所以遊戲中一切的“發展”都是一種“演示”,無法形成“玩”的概念,只有當玩家做出了操作以後,並且操作“推動”了遊戲的進程,這才能算是真的開始玩遊戲了。這也是為什麼很多遊戲要有一個“Push Start Button”界面的原因。
為什麼大多遊戲的“隨機性”設計都是有問題的

大多遊戲都有一個“歡迎畫面”需要玩家點一下才繼續

  • 節點:即影響遊戲局面的事件的發生點,一個節點會引申出多個子節點,每局遊戲運行過程中會根據這個節點的發生的具體事件的具體內容來決定這局遊戲具體通向其中哪一個子節點。通常來說,可以影響遊戲局面的因素包括且不限於玩家的操作、關卡中預設的元素、突發事件、隨機事件等元素。即在遊戲運行過程中動態產生了一些情況,這些情況導致遊戲局面發生變化,比如下象棋時每次落子都是一個節點,它會導致棋局進入不同的節點(產生不同的局面)。我們可以把節點理解為一個函數y=f(x),因變量y是要通向的下一個節點,而參數x是一個集合,是當前狀況下所有影響局面變化的元素產生的一個集合。比如“模擬高爾夫球”遊戲,我們打一杆球就是一個函數(節點),參數x有我們擊球的角度、力度、用的杆,這些來自玩家操作;還有球場的風力、風向等來自遊戲運行時的環境,然後根據這些參數,運行了y=f(x),得出了y,即“球落在了哪兒,遊戲是否結束(進入結束節點)?如果沒有結束就要打下一杆(進入新的節點)。
為什麼大多遊戲的“隨機性”設計都是有問題的

圍棋每落一個子都是一個節點

  • 結束節點:當進入這個節點的時候,一局遊戲就結束了。對於某一個玩家而言,這個節點存在好壞關係,即這個節點代表了該玩家“獲勝”,就會是個“好結局”。

玩家玩一局遊戲,就是在一棵多叉樹上走了一枝:

為什麼大多遊戲的“隨機性”設計都是有問題的

這一次玩家走了這一枝,下一次也許就未必了。根據上面的介紹我們不難理解——在一局遊戲中玩家在這顆多叉樹上具體能走過哪些節點,取決於每一個節點函數的運行結果。而玩家努力找尋或者操作是為了能走上一條通向“好結局”的路線,一個遊戲可以有多個“好結局”的結束節點,通向同一個“好結局”的路徑也最好能是多條的。“好結局”或者“通向好結局的路徑”越少(佔多叉樹的比例),玩家越會覺得遊戲困難;“通向好結局的路徑”越是單一,遊戲越是顯得有“最優解”。

多叉樹是一種設計的思想,你沒法在每次設計時候都畫出多叉樹,因為那窮舉量太大了,但是你必須在腦海中構建出多叉樹來,至少每一個節點的下一個節點會是哪些你應該能清晰的抽象出來。

02用多叉樹看一些遊戲

九宮棋(Tic Tac Toe)

為什麼大多遊戲的“隨機性”設計都是有問題的

九宮棋是A和B兩名玩家進行的遊戲,規則也非常簡單——輪流行動,直到一方連起一條直線上3個棋子。因此九宮棋的兩種節點分別是:A玩家行動節點和B玩家行動節點,在這些節點裡的參數只有:當前玩家決定落子在哪兒,最後函數返回出新的棋局——通向了新的節點或是達到了結束節點。

為什麼大多遊戲的“隨機性”設計都是有問題的

我們先把九宮棋的格子做一個編號,然後我們來看九宮棋的玩家在這個遊戲裡經歷的多叉樹(為了更好地說明問題,我們附加一個條件,即先行的A玩家第一個棋子必須落在B2,當然事實也是B2也是絕大多數A玩家會選擇的第一步落點):

"

我們玩過很多遊戲中都有隨機數,但是一些遊戲的隨機數總是讓人有不爽的感覺,很奇怪的是明明有問題,但又很難說清問題在哪兒。所以今天我們就從遊戲設計的方法出發,來看看一個遊戲在設計過程中的一些細節與隨機性之間的矛盾,從而挖掘出這些讓人不爽的隨機性背後的“難言之隱”。


01遊戲設計是在設計多叉樹

其實我們可以把遊戲的過程設計,或者玩家體驗遊戲的過程,看作是一顆多叉樹:

為什麼大多遊戲的“隨機性”設計都是有問題的

在這顆多叉樹上有這樣幾種節點:

  • 根節點:即玩家第一次與遊戲交互(產生操作)的節點。在根節點之前,由於玩家和遊戲沒有交互,所以遊戲中一切的“發展”都是一種“演示”,無法形成“玩”的概念,只有當玩家做出了操作以後,並且操作“推動”了遊戲的進程,這才能算是真的開始玩遊戲了。這也是為什麼很多遊戲要有一個“Push Start Button”界面的原因。
為什麼大多遊戲的“隨機性”設計都是有問題的

大多遊戲都有一個“歡迎畫面”需要玩家點一下才繼續

  • 節點:即影響遊戲局面的事件的發生點,一個節點會引申出多個子節點,每局遊戲運行過程中會根據這個節點的發生的具體事件的具體內容來決定這局遊戲具體通向其中哪一個子節點。通常來說,可以影響遊戲局面的因素包括且不限於玩家的操作、關卡中預設的元素、突發事件、隨機事件等元素。即在遊戲運行過程中動態產生了一些情況,這些情況導致遊戲局面發生變化,比如下象棋時每次落子都是一個節點,它會導致棋局進入不同的節點(產生不同的局面)。我們可以把節點理解為一個函數y=f(x),因變量y是要通向的下一個節點,而參數x是一個集合,是當前狀況下所有影響局面變化的元素產生的一個集合。比如“模擬高爾夫球”遊戲,我們打一杆球就是一個函數(節點),參數x有我們擊球的角度、力度、用的杆,這些來自玩家操作;還有球場的風力、風向等來自遊戲運行時的環境,然後根據這些參數,運行了y=f(x),得出了y,即“球落在了哪兒,遊戲是否結束(進入結束節點)?如果沒有結束就要打下一杆(進入新的節點)。
為什麼大多遊戲的“隨機性”設計都是有問題的

圍棋每落一個子都是一個節點

  • 結束節點:當進入這個節點的時候,一局遊戲就結束了。對於某一個玩家而言,這個節點存在好壞關係,即這個節點代表了該玩家“獲勝”,就會是個“好結局”。

玩家玩一局遊戲,就是在一棵多叉樹上走了一枝:

為什麼大多遊戲的“隨機性”設計都是有問題的

這一次玩家走了這一枝,下一次也許就未必了。根據上面的介紹我們不難理解——在一局遊戲中玩家在這顆多叉樹上具體能走過哪些節點,取決於每一個節點函數的運行結果。而玩家努力找尋或者操作是為了能走上一條通向“好結局”的路線,一個遊戲可以有多個“好結局”的結束節點,通向同一個“好結局”的路徑也最好能是多條的。“好結局”或者“通向好結局的路徑”越少(佔多叉樹的比例),玩家越會覺得遊戲困難;“通向好結局的路徑”越是單一,遊戲越是顯得有“最優解”。

多叉樹是一種設計的思想,你沒法在每次設計時候都畫出多叉樹,因為那窮舉量太大了,但是你必須在腦海中構建出多叉樹來,至少每一個節點的下一個節點會是哪些你應該能清晰的抽象出來。

02用多叉樹看一些遊戲

九宮棋(Tic Tac Toe)

為什麼大多遊戲的“隨機性”設計都是有問題的

九宮棋是A和B兩名玩家進行的遊戲,規則也非常簡單——輪流行動,直到一方連起一條直線上3個棋子。因此九宮棋的兩種節點分別是:A玩家行動節點和B玩家行動節點,在這些節點裡的參數只有:當前玩家決定落子在哪兒,最後函數返回出新的棋局——通向了新的節點或是達到了結束節點。

為什麼大多遊戲的“隨機性”設計都是有問題的

我們先把九宮棋的格子做一個編號,然後我們來看九宮棋的玩家在這個遊戲裡經歷的多叉樹(為了更好地說明問題,我們附加一個條件,即先行的A玩家第一個棋子必須落在B2,當然事實也是B2也是絕大多數A玩家會選擇的第一步落點):

為什麼大多遊戲的“隨機性”設計都是有問題的

從這個圖中我們可以看出:

  • 每個玩家落子都是一個節點(紅色代表A玩家,藍色代表B玩家)。
  • 紅色粗線的路線代表A玩家“通向好結局的路徑”。
  • 一局遊戲經過的節點深度,取決於雙方玩家一起連出的路徑。

保齡球(Bowling)

"

我們玩過很多遊戲中都有隨機數,但是一些遊戲的隨機數總是讓人有不爽的感覺,很奇怪的是明明有問題,但又很難說清問題在哪兒。所以今天我們就從遊戲設計的方法出發,來看看一個遊戲在設計過程中的一些細節與隨機性之間的矛盾,從而挖掘出這些讓人不爽的隨機性背後的“難言之隱”。


01遊戲設計是在設計多叉樹

其實我們可以把遊戲的過程設計,或者玩家體驗遊戲的過程,看作是一顆多叉樹:

為什麼大多遊戲的“隨機性”設計都是有問題的

在這顆多叉樹上有這樣幾種節點:

  • 根節點:即玩家第一次與遊戲交互(產生操作)的節點。在根節點之前,由於玩家和遊戲沒有交互,所以遊戲中一切的“發展”都是一種“演示”,無法形成“玩”的概念,只有當玩家做出了操作以後,並且操作“推動”了遊戲的進程,這才能算是真的開始玩遊戲了。這也是為什麼很多遊戲要有一個“Push Start Button”界面的原因。
為什麼大多遊戲的“隨機性”設計都是有問題的

大多遊戲都有一個“歡迎畫面”需要玩家點一下才繼續

  • 節點:即影響遊戲局面的事件的發生點,一個節點會引申出多個子節點,每局遊戲運行過程中會根據這個節點的發生的具體事件的具體內容來決定這局遊戲具體通向其中哪一個子節點。通常來說,可以影響遊戲局面的因素包括且不限於玩家的操作、關卡中預設的元素、突發事件、隨機事件等元素。即在遊戲運行過程中動態產生了一些情況,這些情況導致遊戲局面發生變化,比如下象棋時每次落子都是一個節點,它會導致棋局進入不同的節點(產生不同的局面)。我們可以把節點理解為一個函數y=f(x),因變量y是要通向的下一個節點,而參數x是一個集合,是當前狀況下所有影響局面變化的元素產生的一個集合。比如“模擬高爾夫球”遊戲,我們打一杆球就是一個函數(節點),參數x有我們擊球的角度、力度、用的杆,這些來自玩家操作;還有球場的風力、風向等來自遊戲運行時的環境,然後根據這些參數,運行了y=f(x),得出了y,即“球落在了哪兒,遊戲是否結束(進入結束節點)?如果沒有結束就要打下一杆(進入新的節點)。
為什麼大多遊戲的“隨機性”設計都是有問題的

圍棋每落一個子都是一個節點

  • 結束節點:當進入這個節點的時候,一局遊戲就結束了。對於某一個玩家而言,這個節點存在好壞關係,即這個節點代表了該玩家“獲勝”,就會是個“好結局”。

玩家玩一局遊戲,就是在一棵多叉樹上走了一枝:

為什麼大多遊戲的“隨機性”設計都是有問題的

這一次玩家走了這一枝,下一次也許就未必了。根據上面的介紹我們不難理解——在一局遊戲中玩家在這顆多叉樹上具體能走過哪些節點,取決於每一個節點函數的運行結果。而玩家努力找尋或者操作是為了能走上一條通向“好結局”的路線,一個遊戲可以有多個“好結局”的結束節點,通向同一個“好結局”的路徑也最好能是多條的。“好結局”或者“通向好結局的路徑”越少(佔多叉樹的比例),玩家越會覺得遊戲困難;“通向好結局的路徑”越是單一,遊戲越是顯得有“最優解”。

多叉樹是一種設計的思想,你沒法在每次設計時候都畫出多叉樹,因為那窮舉量太大了,但是你必須在腦海中構建出多叉樹來,至少每一個節點的下一個節點會是哪些你應該能清晰的抽象出來。

02用多叉樹看一些遊戲

九宮棋(Tic Tac Toe)

為什麼大多遊戲的“隨機性”設計都是有問題的

九宮棋是A和B兩名玩家進行的遊戲,規則也非常簡單——輪流行動,直到一方連起一條直線上3個棋子。因此九宮棋的兩種節點分別是:A玩家行動節點和B玩家行動節點,在這些節點裡的參數只有:當前玩家決定落子在哪兒,最後函數返回出新的棋局——通向了新的節點或是達到了結束節點。

為什麼大多遊戲的“隨機性”設計都是有問題的

我們先把九宮棋的格子做一個編號,然後我們來看九宮棋的玩家在這個遊戲裡經歷的多叉樹(為了更好地說明問題,我們附加一個條件,即先行的A玩家第一個棋子必須落在B2,當然事實也是B2也是絕大多數A玩家會選擇的第一步落點):

為什麼大多遊戲的“隨機性”設計都是有問題的

從這個圖中我們可以看出:

  • 每個玩家落子都是一個節點(紅色代表A玩家,藍色代表B玩家)。
  • 紅色粗線的路線代表A玩家“通向好結局的路徑”。
  • 一局遊戲經過的節點深度,取決於雙方玩家一起連出的路徑。

保齡球(Bowling)

為什麼大多遊戲的“隨機性”設計都是有問題的

一種室內運動,把一個球滾過一段木板軌道,將另一端的瓶子擊倒

我們說九宮棋是一個回合制遊戲,可以清晰地看到他的多叉樹,保齡球是一種運動類遊戲,但也有多叉樹,只是相比九宮棋“深度”(即層數)更低,但“廣度”(同一個節點延伸出的節點數)高非常非常多。

"

我們玩過很多遊戲中都有隨機數,但是一些遊戲的隨機數總是讓人有不爽的感覺,很奇怪的是明明有問題,但又很難說清問題在哪兒。所以今天我們就從遊戲設計的方法出發,來看看一個遊戲在設計過程中的一些細節與隨機性之間的矛盾,從而挖掘出這些讓人不爽的隨機性背後的“難言之隱”。


01遊戲設計是在設計多叉樹

其實我們可以把遊戲的過程設計,或者玩家體驗遊戲的過程,看作是一顆多叉樹:

為什麼大多遊戲的“隨機性”設計都是有問題的

在這顆多叉樹上有這樣幾種節點:

  • 根節點:即玩家第一次與遊戲交互(產生操作)的節點。在根節點之前,由於玩家和遊戲沒有交互,所以遊戲中一切的“發展”都是一種“演示”,無法形成“玩”的概念,只有當玩家做出了操作以後,並且操作“推動”了遊戲的進程,這才能算是真的開始玩遊戲了。這也是為什麼很多遊戲要有一個“Push Start Button”界面的原因。
為什麼大多遊戲的“隨機性”設計都是有問題的

大多遊戲都有一個“歡迎畫面”需要玩家點一下才繼續

  • 節點:即影響遊戲局面的事件的發生點,一個節點會引申出多個子節點,每局遊戲運行過程中會根據這個節點的發生的具體事件的具體內容來決定這局遊戲具體通向其中哪一個子節點。通常來說,可以影響遊戲局面的因素包括且不限於玩家的操作、關卡中預設的元素、突發事件、隨機事件等元素。即在遊戲運行過程中動態產生了一些情況,這些情況導致遊戲局面發生變化,比如下象棋時每次落子都是一個節點,它會導致棋局進入不同的節點(產生不同的局面)。我們可以把節點理解為一個函數y=f(x),因變量y是要通向的下一個節點,而參數x是一個集合,是當前狀況下所有影響局面變化的元素產生的一個集合。比如“模擬高爾夫球”遊戲,我們打一杆球就是一個函數(節點),參數x有我們擊球的角度、力度、用的杆,這些來自玩家操作;還有球場的風力、風向等來自遊戲運行時的環境,然後根據這些參數,運行了y=f(x),得出了y,即“球落在了哪兒,遊戲是否結束(進入結束節點)?如果沒有結束就要打下一杆(進入新的節點)。
為什麼大多遊戲的“隨機性”設計都是有問題的

圍棋每落一個子都是一個節點

  • 結束節點:當進入這個節點的時候,一局遊戲就結束了。對於某一個玩家而言,這個節點存在好壞關係,即這個節點代表了該玩家“獲勝”,就會是個“好結局”。

玩家玩一局遊戲,就是在一棵多叉樹上走了一枝:

為什麼大多遊戲的“隨機性”設計都是有問題的

這一次玩家走了這一枝,下一次也許就未必了。根據上面的介紹我們不難理解——在一局遊戲中玩家在這顆多叉樹上具體能走過哪些節點,取決於每一個節點函數的運行結果。而玩家努力找尋或者操作是為了能走上一條通向“好結局”的路線,一個遊戲可以有多個“好結局”的結束節點,通向同一個“好結局”的路徑也最好能是多條的。“好結局”或者“通向好結局的路徑”越少(佔多叉樹的比例),玩家越會覺得遊戲困難;“通向好結局的路徑”越是單一,遊戲越是顯得有“最優解”。

多叉樹是一種設計的思想,你沒法在每次設計時候都畫出多叉樹,因為那窮舉量太大了,但是你必須在腦海中構建出多叉樹來,至少每一個節點的下一個節點會是哪些你應該能清晰的抽象出來。

02用多叉樹看一些遊戲

九宮棋(Tic Tac Toe)

為什麼大多遊戲的“隨機性”設計都是有問題的

九宮棋是A和B兩名玩家進行的遊戲,規則也非常簡單——輪流行動,直到一方連起一條直線上3個棋子。因此九宮棋的兩種節點分別是:A玩家行動節點和B玩家行動節點,在這些節點裡的參數只有:當前玩家決定落子在哪兒,最後函數返回出新的棋局——通向了新的節點或是達到了結束節點。

為什麼大多遊戲的“隨機性”設計都是有問題的

我們先把九宮棋的格子做一個編號,然後我們來看九宮棋的玩家在這個遊戲裡經歷的多叉樹(為了更好地說明問題,我們附加一個條件,即先行的A玩家第一個棋子必須落在B2,當然事實也是B2也是絕大多數A玩家會選擇的第一步落點):

為什麼大多遊戲的“隨機性”設計都是有問題的

從這個圖中我們可以看出:

  • 每個玩家落子都是一個節點(紅色代表A玩家,藍色代表B玩家)。
  • 紅色粗線的路線代表A玩家“通向好結局的路徑”。
  • 一局遊戲經過的節點深度,取決於雙方玩家一起連出的路徑。

保齡球(Bowling)

為什麼大多遊戲的“隨機性”設計都是有問題的

一種室內運動,把一個球滾過一段木板軌道,將另一端的瓶子擊倒

我們說九宮棋是一個回合制遊戲,可以清晰地看到他的多叉樹,保齡球是一種運動類遊戲,但也有多叉樹,只是相比九宮棋“深度”(即層數)更低,但“廣度”(同一個節點延伸出的節點數)高非常非常多。

為什麼大多遊戲的“隨機性”設計都是有問題的

從上圖紅色箭頭我們可以看出,因為保齡球可以丟的角度接近於無限多個,而保齡球(圖中綠色的球)的起始位置也是在圖中藍色線段上的任意一點,所以在“投球”這個節點上,而因為是“電子遊戲”,所以我們可以忽略掉拋球的力量手法等因素(確保每次都能是一樣的固定值),光是位置和角度就可以延伸出接近無窮多個子節點,每一個節點都通向一個結束節點,其中很多個結束節點是“好節點”(所有的瓶子倒了,不管倒成什麼形狀,只要倒下)

"

我們玩過很多遊戲中都有隨機數,但是一些遊戲的隨機數總是讓人有不爽的感覺,很奇怪的是明明有問題,但又很難說清問題在哪兒。所以今天我們就從遊戲設計的方法出發,來看看一個遊戲在設計過程中的一些細節與隨機性之間的矛盾,從而挖掘出這些讓人不爽的隨機性背後的“難言之隱”。


01遊戲設計是在設計多叉樹

其實我們可以把遊戲的過程設計,或者玩家體驗遊戲的過程,看作是一顆多叉樹:

為什麼大多遊戲的“隨機性”設計都是有問題的

在這顆多叉樹上有這樣幾種節點:

  • 根節點:即玩家第一次與遊戲交互(產生操作)的節點。在根節點之前,由於玩家和遊戲沒有交互,所以遊戲中一切的“發展”都是一種“演示”,無法形成“玩”的概念,只有當玩家做出了操作以後,並且操作“推動”了遊戲的進程,這才能算是真的開始玩遊戲了。這也是為什麼很多遊戲要有一個“Push Start Button”界面的原因。
為什麼大多遊戲的“隨機性”設計都是有問題的

大多遊戲都有一個“歡迎畫面”需要玩家點一下才繼續

  • 節點:即影響遊戲局面的事件的發生點,一個節點會引申出多個子節點,每局遊戲運行過程中會根據這個節點的發生的具體事件的具體內容來決定這局遊戲具體通向其中哪一個子節點。通常來說,可以影響遊戲局面的因素包括且不限於玩家的操作、關卡中預設的元素、突發事件、隨機事件等元素。即在遊戲運行過程中動態產生了一些情況,這些情況導致遊戲局面發生變化,比如下象棋時每次落子都是一個節點,它會導致棋局進入不同的節點(產生不同的局面)。我們可以把節點理解為一個函數y=f(x),因變量y是要通向的下一個節點,而參數x是一個集合,是當前狀況下所有影響局面變化的元素產生的一個集合。比如“模擬高爾夫球”遊戲,我們打一杆球就是一個函數(節點),參數x有我們擊球的角度、力度、用的杆,這些來自玩家操作;還有球場的風力、風向等來自遊戲運行時的環境,然後根據這些參數,運行了y=f(x),得出了y,即“球落在了哪兒,遊戲是否結束(進入結束節點)?如果沒有結束就要打下一杆(進入新的節點)。
為什麼大多遊戲的“隨機性”設計都是有問題的

圍棋每落一個子都是一個節點

  • 結束節點:當進入這個節點的時候,一局遊戲就結束了。對於某一個玩家而言,這個節點存在好壞關係,即這個節點代表了該玩家“獲勝”,就會是個“好結局”。

玩家玩一局遊戲,就是在一棵多叉樹上走了一枝:

為什麼大多遊戲的“隨機性”設計都是有問題的

這一次玩家走了這一枝,下一次也許就未必了。根據上面的介紹我們不難理解——在一局遊戲中玩家在這顆多叉樹上具體能走過哪些節點,取決於每一個節點函數的運行結果。而玩家努力找尋或者操作是為了能走上一條通向“好結局”的路線,一個遊戲可以有多個“好結局”的結束節點,通向同一個“好結局”的路徑也最好能是多條的。“好結局”或者“通向好結局的路徑”越少(佔多叉樹的比例),玩家越會覺得遊戲困難;“通向好結局的路徑”越是單一,遊戲越是顯得有“最優解”。

多叉樹是一種設計的思想,你沒法在每次設計時候都畫出多叉樹,因為那窮舉量太大了,但是你必須在腦海中構建出多叉樹來,至少每一個節點的下一個節點會是哪些你應該能清晰的抽象出來。

02用多叉樹看一些遊戲

九宮棋(Tic Tac Toe)

為什麼大多遊戲的“隨機性”設計都是有問題的

九宮棋是A和B兩名玩家進行的遊戲,規則也非常簡單——輪流行動,直到一方連起一條直線上3個棋子。因此九宮棋的兩種節點分別是:A玩家行動節點和B玩家行動節點,在這些節點裡的參數只有:當前玩家決定落子在哪兒,最後函數返回出新的棋局——通向了新的節點或是達到了結束節點。

為什麼大多遊戲的“隨機性”設計都是有問題的

我們先把九宮棋的格子做一個編號,然後我們來看九宮棋的玩家在這個遊戲裡經歷的多叉樹(為了更好地說明問題,我們附加一個條件,即先行的A玩家第一個棋子必須落在B2,當然事實也是B2也是絕大多數A玩家會選擇的第一步落點):

為什麼大多遊戲的“隨機性”設計都是有問題的

從這個圖中我們可以看出:

  • 每個玩家落子都是一個節點(紅色代表A玩家,藍色代表B玩家)。
  • 紅色粗線的路線代表A玩家“通向好結局的路徑”。
  • 一局遊戲經過的節點深度,取決於雙方玩家一起連出的路徑。

保齡球(Bowling)

為什麼大多遊戲的“隨機性”設計都是有問題的

一種室內運動,把一個球滾過一段木板軌道,將另一端的瓶子擊倒

我們說九宮棋是一個回合制遊戲,可以清晰地看到他的多叉樹,保齡球是一種運動類遊戲,但也有多叉樹,只是相比九宮棋“深度”(即層數)更低,但“廣度”(同一個節點延伸出的節點數)高非常非常多。

為什麼大多遊戲的“隨機性”設計都是有問題的

從上圖紅色箭頭我們可以看出,因為保齡球可以丟的角度接近於無限多個,而保齡球(圖中綠色的球)的起始位置也是在圖中藍色線段上的任意一點,所以在“投球”這個節點上,而因為是“電子遊戲”,所以我們可以忽略掉拋球的力量手法等因素(確保每次都能是一樣的固定值),光是位置和角度就可以延伸出接近無窮多個子節點,每一個節點都通向一個結束節點,其中很多個結束節點是“好節點”(所有的瓶子倒了,不管倒成什麼形狀,只要倒下)

為什麼大多遊戲的“隨機性”設計都是有問題的

保齡球的多叉樹就是如此——丟出保齡球的節點,引申出無限多子節點,但是每個節點都會帶來一個結束節點,因為在這中間沒有其他因素去改變整個局面了,球最終能打中幾個瓶子、瓶子最終有幾個會倒下,仰仗於物理學和計算機的算力,我們其實可以在球丟出的那一瞬間,就用計算機算出精確的結果了。

那如果我現在要為我的《手機版保齡球遊戲》追加一些有趣的元素,讓這些元素改變保齡球的固有玩法可以怎麼加?最簡單的一個就是——為一些情況追加一層深度:現在我們把木板兩邊的坑道換成“隨機反射裝置”(因為電子遊戲是虛擬的,所以可以出現現實中無法出現的,不可思議的有趣元素),這個裝置不會干擾球的運動速度,但是會讓重新隨機一個角度作為球滾動的新方向,從而導致球的軌跡(核心元素)發生變化:

"

我們玩過很多遊戲中都有隨機數,但是一些遊戲的隨機數總是讓人有不爽的感覺,很奇怪的是明明有問題,但又很難說清問題在哪兒。所以今天我們就從遊戲設計的方法出發,來看看一個遊戲在設計過程中的一些細節與隨機性之間的矛盾,從而挖掘出這些讓人不爽的隨機性背後的“難言之隱”。


01遊戲設計是在設計多叉樹

其實我們可以把遊戲的過程設計,或者玩家體驗遊戲的過程,看作是一顆多叉樹:

為什麼大多遊戲的“隨機性”設計都是有問題的

在這顆多叉樹上有這樣幾種節點:

  • 根節點:即玩家第一次與遊戲交互(產生操作)的節點。在根節點之前,由於玩家和遊戲沒有交互,所以遊戲中一切的“發展”都是一種“演示”,無法形成“玩”的概念,只有當玩家做出了操作以後,並且操作“推動”了遊戲的進程,這才能算是真的開始玩遊戲了。這也是為什麼很多遊戲要有一個“Push Start Button”界面的原因。
為什麼大多遊戲的“隨機性”設計都是有問題的

大多遊戲都有一個“歡迎畫面”需要玩家點一下才繼續

  • 節點:即影響遊戲局面的事件的發生點,一個節點會引申出多個子節點,每局遊戲運行過程中會根據這個節點的發生的具體事件的具體內容來決定這局遊戲具體通向其中哪一個子節點。通常來說,可以影響遊戲局面的因素包括且不限於玩家的操作、關卡中預設的元素、突發事件、隨機事件等元素。即在遊戲運行過程中動態產生了一些情況,這些情況導致遊戲局面發生變化,比如下象棋時每次落子都是一個節點,它會導致棋局進入不同的節點(產生不同的局面)。我們可以把節點理解為一個函數y=f(x),因變量y是要通向的下一個節點,而參數x是一個集合,是當前狀況下所有影響局面變化的元素產生的一個集合。比如“模擬高爾夫球”遊戲,我們打一杆球就是一個函數(節點),參數x有我們擊球的角度、力度、用的杆,這些來自玩家操作;還有球場的風力、風向等來自遊戲運行時的環境,然後根據這些參數,運行了y=f(x),得出了y,即“球落在了哪兒,遊戲是否結束(進入結束節點)?如果沒有結束就要打下一杆(進入新的節點)。
為什麼大多遊戲的“隨機性”設計都是有問題的

圍棋每落一個子都是一個節點

  • 結束節點:當進入這個節點的時候,一局遊戲就結束了。對於某一個玩家而言,這個節點存在好壞關係,即這個節點代表了該玩家“獲勝”,就會是個“好結局”。

玩家玩一局遊戲,就是在一棵多叉樹上走了一枝:

為什麼大多遊戲的“隨機性”設計都是有問題的

這一次玩家走了這一枝,下一次也許就未必了。根據上面的介紹我們不難理解——在一局遊戲中玩家在這顆多叉樹上具體能走過哪些節點,取決於每一個節點函數的運行結果。而玩家努力找尋或者操作是為了能走上一條通向“好結局”的路線,一個遊戲可以有多個“好結局”的結束節點,通向同一個“好結局”的路徑也最好能是多條的。“好結局”或者“通向好結局的路徑”越少(佔多叉樹的比例),玩家越會覺得遊戲困難;“通向好結局的路徑”越是單一,遊戲越是顯得有“最優解”。

多叉樹是一種設計的思想,你沒法在每次設計時候都畫出多叉樹,因為那窮舉量太大了,但是你必須在腦海中構建出多叉樹來,至少每一個節點的下一個節點會是哪些你應該能清晰的抽象出來。

02用多叉樹看一些遊戲

九宮棋(Tic Tac Toe)

為什麼大多遊戲的“隨機性”設計都是有問題的

九宮棋是A和B兩名玩家進行的遊戲,規則也非常簡單——輪流行動,直到一方連起一條直線上3個棋子。因此九宮棋的兩種節點分別是:A玩家行動節點和B玩家行動節點,在這些節點裡的參數只有:當前玩家決定落子在哪兒,最後函數返回出新的棋局——通向了新的節點或是達到了結束節點。

為什麼大多遊戲的“隨機性”設計都是有問題的

我們先把九宮棋的格子做一個編號,然後我們來看九宮棋的玩家在這個遊戲裡經歷的多叉樹(為了更好地說明問題,我們附加一個條件,即先行的A玩家第一個棋子必須落在B2,當然事實也是B2也是絕大多數A玩家會選擇的第一步落點):

為什麼大多遊戲的“隨機性”設計都是有問題的

從這個圖中我們可以看出:

  • 每個玩家落子都是一個節點(紅色代表A玩家,藍色代表B玩家)。
  • 紅色粗線的路線代表A玩家“通向好結局的路徑”。
  • 一局遊戲經過的節點深度,取決於雙方玩家一起連出的路徑。

保齡球(Bowling)

為什麼大多遊戲的“隨機性”設計都是有問題的

一種室內運動,把一個球滾過一段木板軌道,將另一端的瓶子擊倒

我們說九宮棋是一個回合制遊戲,可以清晰地看到他的多叉樹,保齡球是一種運動類遊戲,但也有多叉樹,只是相比九宮棋“深度”(即層數)更低,但“廣度”(同一個節點延伸出的節點數)高非常非常多。

為什麼大多遊戲的“隨機性”設計都是有問題的

從上圖紅色箭頭我們可以看出,因為保齡球可以丟的角度接近於無限多個,而保齡球(圖中綠色的球)的起始位置也是在圖中藍色線段上的任意一點,所以在“投球”這個節點上,而因為是“電子遊戲”,所以我們可以忽略掉拋球的力量手法等因素(確保每次都能是一樣的固定值),光是位置和角度就可以延伸出接近無窮多個子節點,每一個節點都通向一個結束節點,其中很多個結束節點是“好節點”(所有的瓶子倒了,不管倒成什麼形狀,只要倒下)

為什麼大多遊戲的“隨機性”設計都是有問題的

保齡球的多叉樹就是如此——丟出保齡球的節點,引申出無限多子節點,但是每個節點都會帶來一個結束節點,因為在這中間沒有其他因素去改變整個局面了,球最終能打中幾個瓶子、瓶子最終有幾個會倒下,仰仗於物理學和計算機的算力,我們其實可以在球丟出的那一瞬間,就用計算機算出精確的結果了。

那如果我現在要為我的《手機版保齡球遊戲》追加一些有趣的元素,讓這些元素改變保齡球的固有玩法可以怎麼加?最簡單的一個就是——為一些情況追加一層深度:現在我們把木板兩邊的坑道換成“隨機反射裝置”(因為電子遊戲是虛擬的,所以可以出現現實中無法出現的,不可思議的有趣元素),這個裝置不會干擾球的運動速度,但是會讓重新隨機一個角度作為球滾動的新方向,從而導致球的軌跡(核心元素)發生變化:

為什麼大多遊戲的“隨機性”設計都是有問題的

如上圖所示,紅色的是保齡球丟出時候的方向,當碰到牆壁後,保齡球的軌跡可能變成2根藍色箭頭夾角中的任意一個角度(取決於當時的隨機數)。這樣一來我們的《手機版保齡球遊戲》與現實的保齡球就不再一樣了,它多了一個新的玩法:

"

我們玩過很多遊戲中都有隨機數,但是一些遊戲的隨機數總是讓人有不爽的感覺,很奇怪的是明明有問題,但又很難說清問題在哪兒。所以今天我們就從遊戲設計的方法出發,來看看一個遊戲在設計過程中的一些細節與隨機性之間的矛盾,從而挖掘出這些讓人不爽的隨機性背後的“難言之隱”。


01遊戲設計是在設計多叉樹

其實我們可以把遊戲的過程設計,或者玩家體驗遊戲的過程,看作是一顆多叉樹:

為什麼大多遊戲的“隨機性”設計都是有問題的

在這顆多叉樹上有這樣幾種節點:

  • 根節點:即玩家第一次與遊戲交互(產生操作)的節點。在根節點之前,由於玩家和遊戲沒有交互,所以遊戲中一切的“發展”都是一種“演示”,無法形成“玩”的概念,只有當玩家做出了操作以後,並且操作“推動”了遊戲的進程,這才能算是真的開始玩遊戲了。這也是為什麼很多遊戲要有一個“Push Start Button”界面的原因。
為什麼大多遊戲的“隨機性”設計都是有問題的

大多遊戲都有一個“歡迎畫面”需要玩家點一下才繼續

  • 節點:即影響遊戲局面的事件的發生點,一個節點會引申出多個子節點,每局遊戲運行過程中會根據這個節點的發生的具體事件的具體內容來決定這局遊戲具體通向其中哪一個子節點。通常來說,可以影響遊戲局面的因素包括且不限於玩家的操作、關卡中預設的元素、突發事件、隨機事件等元素。即在遊戲運行過程中動態產生了一些情況,這些情況導致遊戲局面發生變化,比如下象棋時每次落子都是一個節點,它會導致棋局進入不同的節點(產生不同的局面)。我們可以把節點理解為一個函數y=f(x),因變量y是要通向的下一個節點,而參數x是一個集合,是當前狀況下所有影響局面變化的元素產生的一個集合。比如“模擬高爾夫球”遊戲,我們打一杆球就是一個函數(節點),參數x有我們擊球的角度、力度、用的杆,這些來自玩家操作;還有球場的風力、風向等來自遊戲運行時的環境,然後根據這些參數,運行了y=f(x),得出了y,即“球落在了哪兒,遊戲是否結束(進入結束節點)?如果沒有結束就要打下一杆(進入新的節點)。
為什麼大多遊戲的“隨機性”設計都是有問題的

圍棋每落一個子都是一個節點

  • 結束節點:當進入這個節點的時候,一局遊戲就結束了。對於某一個玩家而言,這個節點存在好壞關係,即這個節點代表了該玩家“獲勝”,就會是個“好結局”。

玩家玩一局遊戲,就是在一棵多叉樹上走了一枝:

為什麼大多遊戲的“隨機性”設計都是有問題的

這一次玩家走了這一枝,下一次也許就未必了。根據上面的介紹我們不難理解——在一局遊戲中玩家在這顆多叉樹上具體能走過哪些節點,取決於每一個節點函數的運行結果。而玩家努力找尋或者操作是為了能走上一條通向“好結局”的路線,一個遊戲可以有多個“好結局”的結束節點,通向同一個“好結局”的路徑也最好能是多條的。“好結局”或者“通向好結局的路徑”越少(佔多叉樹的比例),玩家越會覺得遊戲困難;“通向好結局的路徑”越是單一,遊戲越是顯得有“最優解”。

多叉樹是一種設計的思想,你沒法在每次設計時候都畫出多叉樹,因為那窮舉量太大了,但是你必須在腦海中構建出多叉樹來,至少每一個節點的下一個節點會是哪些你應該能清晰的抽象出來。

02用多叉樹看一些遊戲

九宮棋(Tic Tac Toe)

為什麼大多遊戲的“隨機性”設計都是有問題的

九宮棋是A和B兩名玩家進行的遊戲,規則也非常簡單——輪流行動,直到一方連起一條直線上3個棋子。因此九宮棋的兩種節點分別是:A玩家行動節點和B玩家行動節點,在這些節點裡的參數只有:當前玩家決定落子在哪兒,最後函數返回出新的棋局——通向了新的節點或是達到了結束節點。

為什麼大多遊戲的“隨機性”設計都是有問題的

我們先把九宮棋的格子做一個編號,然後我們來看九宮棋的玩家在這個遊戲裡經歷的多叉樹(為了更好地說明問題,我們附加一個條件,即先行的A玩家第一個棋子必須落在B2,當然事實也是B2也是絕大多數A玩家會選擇的第一步落點):

為什麼大多遊戲的“隨機性”設計都是有問題的

從這個圖中我們可以看出:

  • 每個玩家落子都是一個節點(紅色代表A玩家,藍色代表B玩家)。
  • 紅色粗線的路線代表A玩家“通向好結局的路徑”。
  • 一局遊戲經過的節點深度,取決於雙方玩家一起連出的路徑。

保齡球(Bowling)

為什麼大多遊戲的“隨機性”設計都是有問題的

一種室內運動,把一個球滾過一段木板軌道,將另一端的瓶子擊倒

我們說九宮棋是一個回合制遊戲,可以清晰地看到他的多叉樹,保齡球是一種運動類遊戲,但也有多叉樹,只是相比九宮棋“深度”(即層數)更低,但“廣度”(同一個節點延伸出的節點數)高非常非常多。

為什麼大多遊戲的“隨機性”設計都是有問題的

從上圖紅色箭頭我們可以看出,因為保齡球可以丟的角度接近於無限多個,而保齡球(圖中綠色的球)的起始位置也是在圖中藍色線段上的任意一點,所以在“投球”這個節點上,而因為是“電子遊戲”,所以我們可以忽略掉拋球的力量手法等因素(確保每次都能是一樣的固定值),光是位置和角度就可以延伸出接近無窮多個子節點,每一個節點都通向一個結束節點,其中很多個結束節點是“好節點”(所有的瓶子倒了,不管倒成什麼形狀,只要倒下)

為什麼大多遊戲的“隨機性”設計都是有問題的

保齡球的多叉樹就是如此——丟出保齡球的節點,引申出無限多子節點,但是每個節點都會帶來一個結束節點,因為在這中間沒有其他因素去改變整個局面了,球最終能打中幾個瓶子、瓶子最終有幾個會倒下,仰仗於物理學和計算機的算力,我們其實可以在球丟出的那一瞬間,就用計算機算出精確的結果了。

那如果我現在要為我的《手機版保齡球遊戲》追加一些有趣的元素,讓這些元素改變保齡球的固有玩法可以怎麼加?最簡單的一個就是——為一些情況追加一層深度:現在我們把木板兩邊的坑道換成“隨機反射裝置”(因為電子遊戲是虛擬的,所以可以出現現實中無法出現的,不可思議的有趣元素),這個裝置不會干擾球的運動速度,但是會讓重新隨機一個角度作為球滾動的新方向,從而導致球的軌跡(核心元素)發生變化:

為什麼大多遊戲的“隨機性”設計都是有問題的

如上圖所示,紅色的是保齡球丟出時候的方向,當碰到牆壁後,保齡球的軌跡可能變成2根藍色箭頭夾角中的任意一個角度(取決於當時的隨機數)。這樣一來我們的《手機版保齡球遊戲》與現實的保齡球就不再一樣了,它多了一個新的玩法:

為什麼大多遊戲的“隨機性”設計都是有問題的

迷宮\\隨機迷宮遊戲

很多遊戲中都有迷宮,既然是迷宮就會有分叉路,一些路通向終點,而一些路通向死衚衕。

"

我們玩過很多遊戲中都有隨機數,但是一些遊戲的隨機數總是讓人有不爽的感覺,很奇怪的是明明有問題,但又很難說清問題在哪兒。所以今天我們就從遊戲設計的方法出發,來看看一個遊戲在設計過程中的一些細節與隨機性之間的矛盾,從而挖掘出這些讓人不爽的隨機性背後的“難言之隱”。


01遊戲設計是在設計多叉樹

其實我們可以把遊戲的過程設計,或者玩家體驗遊戲的過程,看作是一顆多叉樹:

為什麼大多遊戲的“隨機性”設計都是有問題的

在這顆多叉樹上有這樣幾種節點:

  • 根節點:即玩家第一次與遊戲交互(產生操作)的節點。在根節點之前,由於玩家和遊戲沒有交互,所以遊戲中一切的“發展”都是一種“演示”,無法形成“玩”的概念,只有當玩家做出了操作以後,並且操作“推動”了遊戲的進程,這才能算是真的開始玩遊戲了。這也是為什麼很多遊戲要有一個“Push Start Button”界面的原因。
為什麼大多遊戲的“隨機性”設計都是有問題的

大多遊戲都有一個“歡迎畫面”需要玩家點一下才繼續

  • 節點:即影響遊戲局面的事件的發生點,一個節點會引申出多個子節點,每局遊戲運行過程中會根據這個節點的發生的具體事件的具體內容來決定這局遊戲具體通向其中哪一個子節點。通常來說,可以影響遊戲局面的因素包括且不限於玩家的操作、關卡中預設的元素、突發事件、隨機事件等元素。即在遊戲運行過程中動態產生了一些情況,這些情況導致遊戲局面發生變化,比如下象棋時每次落子都是一個節點,它會導致棋局進入不同的節點(產生不同的局面)。我們可以把節點理解為一個函數y=f(x),因變量y是要通向的下一個節點,而參數x是一個集合,是當前狀況下所有影響局面變化的元素產生的一個集合。比如“模擬高爾夫球”遊戲,我們打一杆球就是一個函數(節點),參數x有我們擊球的角度、力度、用的杆,這些來自玩家操作;還有球場的風力、風向等來自遊戲運行時的環境,然後根據這些參數,運行了y=f(x),得出了y,即“球落在了哪兒,遊戲是否結束(進入結束節點)?如果沒有結束就要打下一杆(進入新的節點)。
為什麼大多遊戲的“隨機性”設計都是有問題的

圍棋每落一個子都是一個節點

  • 結束節點:當進入這個節點的時候,一局遊戲就結束了。對於某一個玩家而言,這個節點存在好壞關係,即這個節點代表了該玩家“獲勝”,就會是個“好結局”。

玩家玩一局遊戲,就是在一棵多叉樹上走了一枝:

為什麼大多遊戲的“隨機性”設計都是有問題的

這一次玩家走了這一枝,下一次也許就未必了。根據上面的介紹我們不難理解——在一局遊戲中玩家在這顆多叉樹上具體能走過哪些節點,取決於每一個節點函數的運行結果。而玩家努力找尋或者操作是為了能走上一條通向“好結局”的路線,一個遊戲可以有多個“好結局”的結束節點,通向同一個“好結局”的路徑也最好能是多條的。“好結局”或者“通向好結局的路徑”越少(佔多叉樹的比例),玩家越會覺得遊戲困難;“通向好結局的路徑”越是單一,遊戲越是顯得有“最優解”。

多叉樹是一種設計的思想,你沒法在每次設計時候都畫出多叉樹,因為那窮舉量太大了,但是你必須在腦海中構建出多叉樹來,至少每一個節點的下一個節點會是哪些你應該能清晰的抽象出來。

02用多叉樹看一些遊戲

九宮棋(Tic Tac Toe)

為什麼大多遊戲的“隨機性”設計都是有問題的

九宮棋是A和B兩名玩家進行的遊戲,規則也非常簡單——輪流行動,直到一方連起一條直線上3個棋子。因此九宮棋的兩種節點分別是:A玩家行動節點和B玩家行動節點,在這些節點裡的參數只有:當前玩家決定落子在哪兒,最後函數返回出新的棋局——通向了新的節點或是達到了結束節點。

為什麼大多遊戲的“隨機性”設計都是有問題的

我們先把九宮棋的格子做一個編號,然後我們來看九宮棋的玩家在這個遊戲裡經歷的多叉樹(為了更好地說明問題,我們附加一個條件,即先行的A玩家第一個棋子必須落在B2,當然事實也是B2也是絕大多數A玩家會選擇的第一步落點):

為什麼大多遊戲的“隨機性”設計都是有問題的

從這個圖中我們可以看出:

  • 每個玩家落子都是一個節點(紅色代表A玩家,藍色代表B玩家)。
  • 紅色粗線的路線代表A玩家“通向好結局的路徑”。
  • 一局遊戲經過的節點深度,取決於雙方玩家一起連出的路徑。

保齡球(Bowling)

為什麼大多遊戲的“隨機性”設計都是有問題的

一種室內運動,把一個球滾過一段木板軌道,將另一端的瓶子擊倒

我們說九宮棋是一個回合制遊戲,可以清晰地看到他的多叉樹,保齡球是一種運動類遊戲,但也有多叉樹,只是相比九宮棋“深度”(即層數)更低,但“廣度”(同一個節點延伸出的節點數)高非常非常多。

為什麼大多遊戲的“隨機性”設計都是有問題的

從上圖紅色箭頭我們可以看出,因為保齡球可以丟的角度接近於無限多個,而保齡球(圖中綠色的球)的起始位置也是在圖中藍色線段上的任意一點,所以在“投球”這個節點上,而因為是“電子遊戲”,所以我們可以忽略掉拋球的力量手法等因素(確保每次都能是一樣的固定值),光是位置和角度就可以延伸出接近無窮多個子節點,每一個節點都通向一個結束節點,其中很多個結束節點是“好節點”(所有的瓶子倒了,不管倒成什麼形狀,只要倒下)

為什麼大多遊戲的“隨機性”設計都是有問題的

保齡球的多叉樹就是如此——丟出保齡球的節點,引申出無限多子節點,但是每個節點都會帶來一個結束節點,因為在這中間沒有其他因素去改變整個局面了,球最終能打中幾個瓶子、瓶子最終有幾個會倒下,仰仗於物理學和計算機的算力,我們其實可以在球丟出的那一瞬間,就用計算機算出精確的結果了。

那如果我現在要為我的《手機版保齡球遊戲》追加一些有趣的元素,讓這些元素改變保齡球的固有玩法可以怎麼加?最簡單的一個就是——為一些情況追加一層深度:現在我們把木板兩邊的坑道換成“隨機反射裝置”(因為電子遊戲是虛擬的,所以可以出現現實中無法出現的,不可思議的有趣元素),這個裝置不會干擾球的運動速度,但是會讓重新隨機一個角度作為球滾動的新方向,從而導致球的軌跡(核心元素)發生變化:

為什麼大多遊戲的“隨機性”設計都是有問題的

如上圖所示,紅色的是保齡球丟出時候的方向,當碰到牆壁後,保齡球的軌跡可能變成2根藍色箭頭夾角中的任意一個角度(取決於當時的隨機數)。這樣一來我們的《手機版保齡球遊戲》與現實的保齡球就不再一樣了,它多了一個新的玩法:

為什麼大多遊戲的“隨機性”設計都是有問題的

迷宮\\隨機迷宮遊戲

很多遊戲中都有迷宮,既然是迷宮就會有分叉路,一些路通向終點,而一些路通向死衚衕。

為什麼大多遊戲的“隨機性”設計都是有問題的

迷宮只是多叉樹的一種表現方式而已,骨子裡就是一個多叉樹。迷宮中每個分叉口都是一個節點,由這個節點引申出後續的分叉口(節點),根據這些分叉路線,我們再來進行布怪和放置獎勵、終點的工作。

03節點的設計

在這個多叉樹的設計裡,最重要的一環就是節點的設計,因為每一個節點就是遊戲規則中至關重要的一步(或者可以理解為“一個轉折”)。

就像我們之前說的——可以把一個節點看作是一個函數,順著這個解說下去就是:一個節點有3個核心元素組成:

  • 參數(自變量):即這個節點中影響遊戲局面的“動態”元素,這通常是來自玩家操作或遊戲運行時算出來的一些數據。設計師在設計每個節點的時候,同時影響這個節點的因素都可以是這個“函數”的“參數”,如猜拳時,需要雙方同時輸入出的拳,就是2個參數。參數中,玩家的操作通常可以理解為“從很多選項中選出來的那個”,而不是“可供選擇的選項”。
  • 返回值(因變量):即當前遊戲的局面,以及由此產生的下一個節點。
  • 函數本體(運行邏輯):當傳入參數後,進行運算獲得返回值的過程,或者更直白的說就是“遊戲規則”,比如猜拳的時候,函數本體就是判斷雙方的出拳,決定誰贏誰輸或者平局(即下一個節點是誰)。

當一個節點的參數中有“玩家控制”的因素的時候,即這是根據玩家行為得出的一個結果的時候,我們可以把它理解為一個“可控節點”,否則就是個“變化節點”或者叫做“不可控節點”。很好理解的是——“可控節點越多”,玩家對遊戲進行的把控度也就越高。當一個“可控節點”下所有的子節點都沒有“可控節點”,且都會鏈接到一個非“好結局”的“結束節點”上時,我們稱這個可控節點為“死節點”。

"

我們玩過很多遊戲中都有隨機數,但是一些遊戲的隨機數總是讓人有不爽的感覺,很奇怪的是明明有問題,但又很難說清問題在哪兒。所以今天我們就從遊戲設計的方法出發,來看看一個遊戲在設計過程中的一些細節與隨機性之間的矛盾,從而挖掘出這些讓人不爽的隨機性背後的“難言之隱”。


01遊戲設計是在設計多叉樹

其實我們可以把遊戲的過程設計,或者玩家體驗遊戲的過程,看作是一顆多叉樹:

為什麼大多遊戲的“隨機性”設計都是有問題的

在這顆多叉樹上有這樣幾種節點:

  • 根節點:即玩家第一次與遊戲交互(產生操作)的節點。在根節點之前,由於玩家和遊戲沒有交互,所以遊戲中一切的“發展”都是一種“演示”,無法形成“玩”的概念,只有當玩家做出了操作以後,並且操作“推動”了遊戲的進程,這才能算是真的開始玩遊戲了。這也是為什麼很多遊戲要有一個“Push Start Button”界面的原因。
為什麼大多遊戲的“隨機性”設計都是有問題的

大多遊戲都有一個“歡迎畫面”需要玩家點一下才繼續

  • 節點:即影響遊戲局面的事件的發生點,一個節點會引申出多個子節點,每局遊戲運行過程中會根據這個節點的發生的具體事件的具體內容來決定這局遊戲具體通向其中哪一個子節點。通常來說,可以影響遊戲局面的因素包括且不限於玩家的操作、關卡中預設的元素、突發事件、隨機事件等元素。即在遊戲運行過程中動態產生了一些情況,這些情況導致遊戲局面發生變化,比如下象棋時每次落子都是一個節點,它會導致棋局進入不同的節點(產生不同的局面)。我們可以把節點理解為一個函數y=f(x),因變量y是要通向的下一個節點,而參數x是一個集合,是當前狀況下所有影響局面變化的元素產生的一個集合。比如“模擬高爾夫球”遊戲,我們打一杆球就是一個函數(節點),參數x有我們擊球的角度、力度、用的杆,這些來自玩家操作;還有球場的風力、風向等來自遊戲運行時的環境,然後根據這些參數,運行了y=f(x),得出了y,即“球落在了哪兒,遊戲是否結束(進入結束節點)?如果沒有結束就要打下一杆(進入新的節點)。
為什麼大多遊戲的“隨機性”設計都是有問題的

圍棋每落一個子都是一個節點

  • 結束節點:當進入這個節點的時候,一局遊戲就結束了。對於某一個玩家而言,這個節點存在好壞關係,即這個節點代表了該玩家“獲勝”,就會是個“好結局”。

玩家玩一局遊戲,就是在一棵多叉樹上走了一枝:

為什麼大多遊戲的“隨機性”設計都是有問題的

這一次玩家走了這一枝,下一次也許就未必了。根據上面的介紹我們不難理解——在一局遊戲中玩家在這顆多叉樹上具體能走過哪些節點,取決於每一個節點函數的運行結果。而玩家努力找尋或者操作是為了能走上一條通向“好結局”的路線,一個遊戲可以有多個“好結局”的結束節點,通向同一個“好結局”的路徑也最好能是多條的。“好結局”或者“通向好結局的路徑”越少(佔多叉樹的比例),玩家越會覺得遊戲困難;“通向好結局的路徑”越是單一,遊戲越是顯得有“最優解”。

多叉樹是一種設計的思想,你沒法在每次設計時候都畫出多叉樹,因為那窮舉量太大了,但是你必須在腦海中構建出多叉樹來,至少每一個節點的下一個節點會是哪些你應該能清晰的抽象出來。

02用多叉樹看一些遊戲

九宮棋(Tic Tac Toe)

為什麼大多遊戲的“隨機性”設計都是有問題的

九宮棋是A和B兩名玩家進行的遊戲,規則也非常簡單——輪流行動,直到一方連起一條直線上3個棋子。因此九宮棋的兩種節點分別是:A玩家行動節點和B玩家行動節點,在這些節點裡的參數只有:當前玩家決定落子在哪兒,最後函數返回出新的棋局——通向了新的節點或是達到了結束節點。

為什麼大多遊戲的“隨機性”設計都是有問題的

我們先把九宮棋的格子做一個編號,然後我們來看九宮棋的玩家在這個遊戲裡經歷的多叉樹(為了更好地說明問題,我們附加一個條件,即先行的A玩家第一個棋子必須落在B2,當然事實也是B2也是絕大多數A玩家會選擇的第一步落點):

為什麼大多遊戲的“隨機性”設計都是有問題的

從這個圖中我們可以看出:

  • 每個玩家落子都是一個節點(紅色代表A玩家,藍色代表B玩家)。
  • 紅色粗線的路線代表A玩家“通向好結局的路徑”。
  • 一局遊戲經過的節點深度,取決於雙方玩家一起連出的路徑。

保齡球(Bowling)

為什麼大多遊戲的“隨機性”設計都是有問題的

一種室內運動,把一個球滾過一段木板軌道,將另一端的瓶子擊倒

我們說九宮棋是一個回合制遊戲,可以清晰地看到他的多叉樹,保齡球是一種運動類遊戲,但也有多叉樹,只是相比九宮棋“深度”(即層數)更低,但“廣度”(同一個節點延伸出的節點數)高非常非常多。

為什麼大多遊戲的“隨機性”設計都是有問題的

從上圖紅色箭頭我們可以看出,因為保齡球可以丟的角度接近於無限多個,而保齡球(圖中綠色的球)的起始位置也是在圖中藍色線段上的任意一點,所以在“投球”這個節點上,而因為是“電子遊戲”,所以我們可以忽略掉拋球的力量手法等因素(確保每次都能是一樣的固定值),光是位置和角度就可以延伸出接近無窮多個子節點,每一個節點都通向一個結束節點,其中很多個結束節點是“好節點”(所有的瓶子倒了,不管倒成什麼形狀,只要倒下)

為什麼大多遊戲的“隨機性”設計都是有問題的

保齡球的多叉樹就是如此——丟出保齡球的節點,引申出無限多子節點,但是每個節點都會帶來一個結束節點,因為在這中間沒有其他因素去改變整個局面了,球最終能打中幾個瓶子、瓶子最終有幾個會倒下,仰仗於物理學和計算機的算力,我們其實可以在球丟出的那一瞬間,就用計算機算出精確的結果了。

那如果我現在要為我的《手機版保齡球遊戲》追加一些有趣的元素,讓這些元素改變保齡球的固有玩法可以怎麼加?最簡單的一個就是——為一些情況追加一層深度:現在我們把木板兩邊的坑道換成“隨機反射裝置”(因為電子遊戲是虛擬的,所以可以出現現實中無法出現的,不可思議的有趣元素),這個裝置不會干擾球的運動速度,但是會讓重新隨機一個角度作為球滾動的新方向,從而導致球的軌跡(核心元素)發生變化:

為什麼大多遊戲的“隨機性”設計都是有問題的

如上圖所示,紅色的是保齡球丟出時候的方向,當碰到牆壁後,保齡球的軌跡可能變成2根藍色箭頭夾角中的任意一個角度(取決於當時的隨機數)。這樣一來我們的《手機版保齡球遊戲》與現實的保齡球就不再一樣了,它多了一個新的玩法:

為什麼大多遊戲的“隨機性”設計都是有問題的

迷宮\\隨機迷宮遊戲

很多遊戲中都有迷宮,既然是迷宮就會有分叉路,一些路通向終點,而一些路通向死衚衕。

為什麼大多遊戲的“隨機性”設計都是有問題的

迷宮只是多叉樹的一種表現方式而已,骨子裡就是一個多叉樹。迷宮中每個分叉口都是一個節點,由這個節點引申出後續的分叉口(節點),根據這些分叉路線,我們再來進行布怪和放置獎勵、終點的工作。

03節點的設計

在這個多叉樹的設計裡,最重要的一環就是節點的設計,因為每一個節點就是遊戲規則中至關重要的一步(或者可以理解為“一個轉折”)。

就像我們之前說的——可以把一個節點看作是一個函數,順著這個解說下去就是:一個節點有3個核心元素組成:

  • 參數(自變量):即這個節點中影響遊戲局面的“動態”元素,這通常是來自玩家操作或遊戲運行時算出來的一些數據。設計師在設計每個節點的時候,同時影響這個節點的因素都可以是這個“函數”的“參數”,如猜拳時,需要雙方同時輸入出的拳,就是2個參數。參數中,玩家的操作通常可以理解為“從很多選項中選出來的那個”,而不是“可供選擇的選項”。
  • 返回值(因變量):即當前遊戲的局面,以及由此產生的下一個節點。
  • 函數本體(運行邏輯):當傳入參數後,進行運算獲得返回值的過程,或者更直白的說就是“遊戲規則”,比如猜拳的時候,函數本體就是判斷雙方的出拳,決定誰贏誰輸或者平局(即下一個節點是誰)。

當一個節點的參數中有“玩家控制”的因素的時候,即這是根據玩家行為得出的一個結果的時候,我們可以把它理解為一個“可控節點”,否則就是個“變化節點”或者叫做“不可控節點”。很好理解的是——“可控節點越多”,玩家對遊戲進行的把控度也就越高。當一個“可控節點”下所有的子節點都沒有“可控節點”,且都會鏈接到一個非“好結局”的“結束節點”上時,我們稱這個可控節點為“死節點”。

為什麼大多遊戲的“隨機性”設計都是有問題的

玩家玩n次(n趨向於無窮大)這個遊戲,在同一個可控節點上,每次玩都“輸入”同樣的參數(並且其他因素輸入的此參數也不變)時,如果最終總能通向一個固定的結束節點,而這個結束節點的所有參數都是完全一致的,我們稱這個遊戲是“可解”的,否則這個遊戲“不可解”。上面說過的九宮棋是“可解”的,因為只要雙方每次都按一個順序走,那麼每次結果都是一樣的(結果不僅僅是誰獲勝,還有棋盤上所有棋子的位置,因為具體誰獲勝,是依賴於棋盤上所有棋子位置來算出的,而並非一個簡單屬性);同樣,原始的保齡球也是“可解”的,只要能保證每次丟球的起點、角度等都完全相同(只是人類基本做不到)結果也必然是一樣的;但是當保齡球加入我們剛才說的“隨機反射裝置”後,就變成“不可解”了,因為每次隨機數的結果是不同的,因此我用一樣的方法(位置、角度)丟出n次,會得到n個不同的結果,其中只有個別的可能會相等。所以這裡有一個關鍵在於對結束節點,或者說是對遊戲的“結果”的數據結構的抽象——很多時候“輸了”“贏了”都只是一個“基於規則的推理”,而根本不屬於“結果”,比如五子棋,棋盤上所有棋的位置才是結果,因為所有棋的位置中出現了5個連在一起的,又因為規則規定5個子連在一起就是勝利,由此我們“推理”出了一方獲勝。

04玩家在遊戲中進入“可控節點”

通常來說,玩家進入某個“可控節點”的方式只有2個:

  • 決策進入:即在一個“非可控節點”的結果中存在一個選擇,玩家的選擇直接走向一個可控節點,大多策略類、養成類、益智類和GalGame玩法的遊戲就是如此。比如一個三國遊戲,戰鬥結束後我們處理俘虜:
"

我們玩過很多遊戲中都有隨機數,但是一些遊戲的隨機數總是讓人有不爽的感覺,很奇怪的是明明有問題,但又很難說清問題在哪兒。所以今天我們就從遊戲設計的方法出發,來看看一個遊戲在設計過程中的一些細節與隨機性之間的矛盾,從而挖掘出這些讓人不爽的隨機性背後的“難言之隱”。


01遊戲設計是在設計多叉樹

其實我們可以把遊戲的過程設計,或者玩家體驗遊戲的過程,看作是一顆多叉樹:

為什麼大多遊戲的“隨機性”設計都是有問題的

在這顆多叉樹上有這樣幾種節點:

  • 根節點:即玩家第一次與遊戲交互(產生操作)的節點。在根節點之前,由於玩家和遊戲沒有交互,所以遊戲中一切的“發展”都是一種“演示”,無法形成“玩”的概念,只有當玩家做出了操作以後,並且操作“推動”了遊戲的進程,這才能算是真的開始玩遊戲了。這也是為什麼很多遊戲要有一個“Push Start Button”界面的原因。
為什麼大多遊戲的“隨機性”設計都是有問題的

大多遊戲都有一個“歡迎畫面”需要玩家點一下才繼續

  • 節點:即影響遊戲局面的事件的發生點,一個節點會引申出多個子節點,每局遊戲運行過程中會根據這個節點的發生的具體事件的具體內容來決定這局遊戲具體通向其中哪一個子節點。通常來說,可以影響遊戲局面的因素包括且不限於玩家的操作、關卡中預設的元素、突發事件、隨機事件等元素。即在遊戲運行過程中動態產生了一些情況,這些情況導致遊戲局面發生變化,比如下象棋時每次落子都是一個節點,它會導致棋局進入不同的節點(產生不同的局面)。我們可以把節點理解為一個函數y=f(x),因變量y是要通向的下一個節點,而參數x是一個集合,是當前狀況下所有影響局面變化的元素產生的一個集合。比如“模擬高爾夫球”遊戲,我們打一杆球就是一個函數(節點),參數x有我們擊球的角度、力度、用的杆,這些來自玩家操作;還有球場的風力、風向等來自遊戲運行時的環境,然後根據這些參數,運行了y=f(x),得出了y,即“球落在了哪兒,遊戲是否結束(進入結束節點)?如果沒有結束就要打下一杆(進入新的節點)。
為什麼大多遊戲的“隨機性”設計都是有問題的

圍棋每落一個子都是一個節點

  • 結束節點:當進入這個節點的時候,一局遊戲就結束了。對於某一個玩家而言,這個節點存在好壞關係,即這個節點代表了該玩家“獲勝”,就會是個“好結局”。

玩家玩一局遊戲,就是在一棵多叉樹上走了一枝:

為什麼大多遊戲的“隨機性”設計都是有問題的

這一次玩家走了這一枝,下一次也許就未必了。根據上面的介紹我們不難理解——在一局遊戲中玩家在這顆多叉樹上具體能走過哪些節點,取決於每一個節點函數的運行結果。而玩家努力找尋或者操作是為了能走上一條通向“好結局”的路線,一個遊戲可以有多個“好結局”的結束節點,通向同一個“好結局”的路徑也最好能是多條的。“好結局”或者“通向好結局的路徑”越少(佔多叉樹的比例),玩家越會覺得遊戲困難;“通向好結局的路徑”越是單一,遊戲越是顯得有“最優解”。

多叉樹是一種設計的思想,你沒法在每次設計時候都畫出多叉樹,因為那窮舉量太大了,但是你必須在腦海中構建出多叉樹來,至少每一個節點的下一個節點會是哪些你應該能清晰的抽象出來。

02用多叉樹看一些遊戲

九宮棋(Tic Tac Toe)

為什麼大多遊戲的“隨機性”設計都是有問題的

九宮棋是A和B兩名玩家進行的遊戲,規則也非常簡單——輪流行動,直到一方連起一條直線上3個棋子。因此九宮棋的兩種節點分別是:A玩家行動節點和B玩家行動節點,在這些節點裡的參數只有:當前玩家決定落子在哪兒,最後函數返回出新的棋局——通向了新的節點或是達到了結束節點。

為什麼大多遊戲的“隨機性”設計都是有問題的

我們先把九宮棋的格子做一個編號,然後我們來看九宮棋的玩家在這個遊戲裡經歷的多叉樹(為了更好地說明問題,我們附加一個條件,即先行的A玩家第一個棋子必須落在B2,當然事實也是B2也是絕大多數A玩家會選擇的第一步落點):

為什麼大多遊戲的“隨機性”設計都是有問題的

從這個圖中我們可以看出:

  • 每個玩家落子都是一個節點(紅色代表A玩家,藍色代表B玩家)。
  • 紅色粗線的路線代表A玩家“通向好結局的路徑”。
  • 一局遊戲經過的節點深度,取決於雙方玩家一起連出的路徑。

保齡球(Bowling)

為什麼大多遊戲的“隨機性”設計都是有問題的

一種室內運動,把一個球滾過一段木板軌道,將另一端的瓶子擊倒

我們說九宮棋是一個回合制遊戲,可以清晰地看到他的多叉樹,保齡球是一種運動類遊戲,但也有多叉樹,只是相比九宮棋“深度”(即層數)更低,但“廣度”(同一個節點延伸出的節點數)高非常非常多。

為什麼大多遊戲的“隨機性”設計都是有問題的

從上圖紅色箭頭我們可以看出,因為保齡球可以丟的角度接近於無限多個,而保齡球(圖中綠色的球)的起始位置也是在圖中藍色線段上的任意一點,所以在“投球”這個節點上,而因為是“電子遊戲”,所以我們可以忽略掉拋球的力量手法等因素(確保每次都能是一樣的固定值),光是位置和角度就可以延伸出接近無窮多個子節點,每一個節點都通向一個結束節點,其中很多個結束節點是“好節點”(所有的瓶子倒了,不管倒成什麼形狀,只要倒下)

為什麼大多遊戲的“隨機性”設計都是有問題的

保齡球的多叉樹就是如此——丟出保齡球的節點,引申出無限多子節點,但是每個節點都會帶來一個結束節點,因為在這中間沒有其他因素去改變整個局面了,球最終能打中幾個瓶子、瓶子最終有幾個會倒下,仰仗於物理學和計算機的算力,我們其實可以在球丟出的那一瞬間,就用計算機算出精確的結果了。

那如果我現在要為我的《手機版保齡球遊戲》追加一些有趣的元素,讓這些元素改變保齡球的固有玩法可以怎麼加?最簡單的一個就是——為一些情況追加一層深度:現在我們把木板兩邊的坑道換成“隨機反射裝置”(因為電子遊戲是虛擬的,所以可以出現現實中無法出現的,不可思議的有趣元素),這個裝置不會干擾球的運動速度,但是會讓重新隨機一個角度作為球滾動的新方向,從而導致球的軌跡(核心元素)發生變化:

為什麼大多遊戲的“隨機性”設計都是有問題的

如上圖所示,紅色的是保齡球丟出時候的方向,當碰到牆壁後,保齡球的軌跡可能變成2根藍色箭頭夾角中的任意一個角度(取決於當時的隨機數)。這樣一來我們的《手機版保齡球遊戲》與現實的保齡球就不再一樣了,它多了一個新的玩法:

為什麼大多遊戲的“隨機性”設計都是有問題的

迷宮\\隨機迷宮遊戲

很多遊戲中都有迷宮,既然是迷宮就會有分叉路,一些路通向終點,而一些路通向死衚衕。

為什麼大多遊戲的“隨機性”設計都是有問題的

迷宮只是多叉樹的一種表現方式而已,骨子裡就是一個多叉樹。迷宮中每個分叉口都是一個節點,由這個節點引申出後續的分叉口(節點),根據這些分叉路線,我們再來進行布怪和放置獎勵、終點的工作。

03節點的設計

在這個多叉樹的設計裡,最重要的一環就是節點的設計,因為每一個節點就是遊戲規則中至關重要的一步(或者可以理解為“一個轉折”)。

就像我們之前說的——可以把一個節點看作是一個函數,順著這個解說下去就是:一個節點有3個核心元素組成:

  • 參數(自變量):即這個節點中影響遊戲局面的“動態”元素,這通常是來自玩家操作或遊戲運行時算出來的一些數據。設計師在設計每個節點的時候,同時影響這個節點的因素都可以是這個“函數”的“參數”,如猜拳時,需要雙方同時輸入出的拳,就是2個參數。參數中,玩家的操作通常可以理解為“從很多選項中選出來的那個”,而不是“可供選擇的選項”。
  • 返回值(因變量):即當前遊戲的局面,以及由此產生的下一個節點。
  • 函數本體(運行邏輯):當傳入參數後,進行運算獲得返回值的過程,或者更直白的說就是“遊戲規則”,比如猜拳的時候,函數本體就是判斷雙方的出拳,決定誰贏誰輸或者平局(即下一個節點是誰)。

當一個節點的參數中有“玩家控制”的因素的時候,即這是根據玩家行為得出的一個結果的時候,我們可以把它理解為一個“可控節點”,否則就是個“變化節點”或者叫做“不可控節點”。很好理解的是——“可控節點越多”,玩家對遊戲進行的把控度也就越高。當一個“可控節點”下所有的子節點都沒有“可控節點”,且都會鏈接到一個非“好結局”的“結束節點”上時,我們稱這個可控節點為“死節點”。

為什麼大多遊戲的“隨機性”設計都是有問題的

玩家玩n次(n趨向於無窮大)這個遊戲,在同一個可控節點上,每次玩都“輸入”同樣的參數(並且其他因素輸入的此參數也不變)時,如果最終總能通向一個固定的結束節點,而這個結束節點的所有參數都是完全一致的,我們稱這個遊戲是“可解”的,否則這個遊戲“不可解”。上面說過的九宮棋是“可解”的,因為只要雙方每次都按一個順序走,那麼每次結果都是一樣的(結果不僅僅是誰獲勝,還有棋盤上所有棋子的位置,因為具體誰獲勝,是依賴於棋盤上所有棋子位置來算出的,而並非一個簡單屬性);同樣,原始的保齡球也是“可解”的,只要能保證每次丟球的起點、角度等都完全相同(只是人類基本做不到)結果也必然是一樣的;但是當保齡球加入我們剛才說的“隨機反射裝置”後,就變成“不可解”了,因為每次隨機數的結果是不同的,因此我用一樣的方法(位置、角度)丟出n次,會得到n個不同的結果,其中只有個別的可能會相等。所以這裡有一個關鍵在於對結束節點,或者說是對遊戲的“結果”的數據結構的抽象——很多時候“輸了”“贏了”都只是一個“基於規則的推理”,而根本不屬於“結果”,比如五子棋,棋盤上所有棋的位置才是結果,因為所有棋的位置中出現了5個連在一起的,又因為規則規定5個子連在一起就是勝利,由此我們“推理”出了一方獲勝。

04玩家在遊戲中進入“可控節點”

通常來說,玩家進入某個“可控節點”的方式只有2個:

  • 決策進入:即在一個“非可控節點”的結果中存在一個選擇,玩家的選擇直接走向一個可控節點,大多策略類、養成類、益智類和GalGame玩法的遊戲就是如此。比如一個三國遊戲,戰鬥結束後我們處理俘虜:
為什麼大多遊戲的“隨機性”設計都是有問題的

大多三國類遊戲,在戰鬥結束後都會有這麼個“小型遊戲”,它的多叉樹是這樣的:

"

我們玩過很多遊戲中都有隨機數,但是一些遊戲的隨機數總是讓人有不爽的感覺,很奇怪的是明明有問題,但又很難說清問題在哪兒。所以今天我們就從遊戲設計的方法出發,來看看一個遊戲在設計過程中的一些細節與隨機性之間的矛盾,從而挖掘出這些讓人不爽的隨機性背後的“難言之隱”。


01遊戲設計是在設計多叉樹

其實我們可以把遊戲的過程設計,或者玩家體驗遊戲的過程,看作是一顆多叉樹:

為什麼大多遊戲的“隨機性”設計都是有問題的

在這顆多叉樹上有這樣幾種節點:

  • 根節點:即玩家第一次與遊戲交互(產生操作)的節點。在根節點之前,由於玩家和遊戲沒有交互,所以遊戲中一切的“發展”都是一種“演示”,無法形成“玩”的概念,只有當玩家做出了操作以後,並且操作“推動”了遊戲的進程,這才能算是真的開始玩遊戲了。這也是為什麼很多遊戲要有一個“Push Start Button”界面的原因。
為什麼大多遊戲的“隨機性”設計都是有問題的

大多遊戲都有一個“歡迎畫面”需要玩家點一下才繼續

  • 節點:即影響遊戲局面的事件的發生點,一個節點會引申出多個子節點,每局遊戲運行過程中會根據這個節點的發生的具體事件的具體內容來決定這局遊戲具體通向其中哪一個子節點。通常來說,可以影響遊戲局面的因素包括且不限於玩家的操作、關卡中預設的元素、突發事件、隨機事件等元素。即在遊戲運行過程中動態產生了一些情況,這些情況導致遊戲局面發生變化,比如下象棋時每次落子都是一個節點,它會導致棋局進入不同的節點(產生不同的局面)。我們可以把節點理解為一個函數y=f(x),因變量y是要通向的下一個節點,而參數x是一個集合,是當前狀況下所有影響局面變化的元素產生的一個集合。比如“模擬高爾夫球”遊戲,我們打一杆球就是一個函數(節點),參數x有我們擊球的角度、力度、用的杆,這些來自玩家操作;還有球場的風力、風向等來自遊戲運行時的環境,然後根據這些參數,運行了y=f(x),得出了y,即“球落在了哪兒,遊戲是否結束(進入結束節點)?如果沒有結束就要打下一杆(進入新的節點)。
為什麼大多遊戲的“隨機性”設計都是有問題的

圍棋每落一個子都是一個節點

  • 結束節點:當進入這個節點的時候,一局遊戲就結束了。對於某一個玩家而言,這個節點存在好壞關係,即這個節點代表了該玩家“獲勝”,就會是個“好結局”。

玩家玩一局遊戲,就是在一棵多叉樹上走了一枝:

為什麼大多遊戲的“隨機性”設計都是有問題的

這一次玩家走了這一枝,下一次也許就未必了。根據上面的介紹我們不難理解——在一局遊戲中玩家在這顆多叉樹上具體能走過哪些節點,取決於每一個節點函數的運行結果。而玩家努力找尋或者操作是為了能走上一條通向“好結局”的路線,一個遊戲可以有多個“好結局”的結束節點,通向同一個“好結局”的路徑也最好能是多條的。“好結局”或者“通向好結局的路徑”越少(佔多叉樹的比例),玩家越會覺得遊戲困難;“通向好結局的路徑”越是單一,遊戲越是顯得有“最優解”。

多叉樹是一種設計的思想,你沒法在每次設計時候都畫出多叉樹,因為那窮舉量太大了,但是你必須在腦海中構建出多叉樹來,至少每一個節點的下一個節點會是哪些你應該能清晰的抽象出來。

02用多叉樹看一些遊戲

九宮棋(Tic Tac Toe)

為什麼大多遊戲的“隨機性”設計都是有問題的

九宮棋是A和B兩名玩家進行的遊戲,規則也非常簡單——輪流行動,直到一方連起一條直線上3個棋子。因此九宮棋的兩種節點分別是:A玩家行動節點和B玩家行動節點,在這些節點裡的參數只有:當前玩家決定落子在哪兒,最後函數返回出新的棋局——通向了新的節點或是達到了結束節點。

為什麼大多遊戲的“隨機性”設計都是有問題的

我們先把九宮棋的格子做一個編號,然後我們來看九宮棋的玩家在這個遊戲裡經歷的多叉樹(為了更好地說明問題,我們附加一個條件,即先行的A玩家第一個棋子必須落在B2,當然事實也是B2也是絕大多數A玩家會選擇的第一步落點):

為什麼大多遊戲的“隨機性”設計都是有問題的

從這個圖中我們可以看出:

  • 每個玩家落子都是一個節點(紅色代表A玩家,藍色代表B玩家)。
  • 紅色粗線的路線代表A玩家“通向好結局的路徑”。
  • 一局遊戲經過的節點深度,取決於雙方玩家一起連出的路徑。

保齡球(Bowling)

為什麼大多遊戲的“隨機性”設計都是有問題的

一種室內運動,把一個球滾過一段木板軌道,將另一端的瓶子擊倒

我們說九宮棋是一個回合制遊戲,可以清晰地看到他的多叉樹,保齡球是一種運動類遊戲,但也有多叉樹,只是相比九宮棋“深度”(即層數)更低,但“廣度”(同一個節點延伸出的節點數)高非常非常多。

為什麼大多遊戲的“隨機性”設計都是有問題的

從上圖紅色箭頭我們可以看出,因為保齡球可以丟的角度接近於無限多個,而保齡球(圖中綠色的球)的起始位置也是在圖中藍色線段上的任意一點,所以在“投球”這個節點上,而因為是“電子遊戲”,所以我們可以忽略掉拋球的力量手法等因素(確保每次都能是一樣的固定值),光是位置和角度就可以延伸出接近無窮多個子節點,每一個節點都通向一個結束節點,其中很多個結束節點是“好節點”(所有的瓶子倒了,不管倒成什麼形狀,只要倒下)

為什麼大多遊戲的“隨機性”設計都是有問題的

保齡球的多叉樹就是如此——丟出保齡球的節點,引申出無限多子節點,但是每個節點都會帶來一個結束節點,因為在這中間沒有其他因素去改變整個局面了,球最終能打中幾個瓶子、瓶子最終有幾個會倒下,仰仗於物理學和計算機的算力,我們其實可以在球丟出的那一瞬間,就用計算機算出精確的結果了。

那如果我現在要為我的《手機版保齡球遊戲》追加一些有趣的元素,讓這些元素改變保齡球的固有玩法可以怎麼加?最簡單的一個就是——為一些情況追加一層深度:現在我們把木板兩邊的坑道換成“隨機反射裝置”(因為電子遊戲是虛擬的,所以可以出現現實中無法出現的,不可思議的有趣元素),這個裝置不會干擾球的運動速度,但是會讓重新隨機一個角度作為球滾動的新方向,從而導致球的軌跡(核心元素)發生變化:

為什麼大多遊戲的“隨機性”設計都是有問題的

如上圖所示,紅色的是保齡球丟出時候的方向,當碰到牆壁後,保齡球的軌跡可能變成2根藍色箭頭夾角中的任意一個角度(取決於當時的隨機數)。這樣一來我們的《手機版保齡球遊戲》與現實的保齡球就不再一樣了,它多了一個新的玩法:

為什麼大多遊戲的“隨機性”設計都是有問題的

迷宮\\隨機迷宮遊戲

很多遊戲中都有迷宮,既然是迷宮就會有分叉路,一些路通向終點,而一些路通向死衚衕。

為什麼大多遊戲的“隨機性”設計都是有問題的

迷宮只是多叉樹的一種表現方式而已,骨子裡就是一個多叉樹。迷宮中每個分叉口都是一個節點,由這個節點引申出後續的分叉口(節點),根據這些分叉路線,我們再來進行布怪和放置獎勵、終點的工作。

03節點的設計

在這個多叉樹的設計裡,最重要的一環就是節點的設計,因為每一個節點就是遊戲規則中至關重要的一步(或者可以理解為“一個轉折”)。

就像我們之前說的——可以把一個節點看作是一個函數,順著這個解說下去就是:一個節點有3個核心元素組成:

  • 參數(自變量):即這個節點中影響遊戲局面的“動態”元素,這通常是來自玩家操作或遊戲運行時算出來的一些數據。設計師在設計每個節點的時候,同時影響這個節點的因素都可以是這個“函數”的“參數”,如猜拳時,需要雙方同時輸入出的拳,就是2個參數。參數中,玩家的操作通常可以理解為“從很多選項中選出來的那個”,而不是“可供選擇的選項”。
  • 返回值(因變量):即當前遊戲的局面,以及由此產生的下一個節點。
  • 函數本體(運行邏輯):當傳入參數後,進行運算獲得返回值的過程,或者更直白的說就是“遊戲規則”,比如猜拳的時候,函數本體就是判斷雙方的出拳,決定誰贏誰輸或者平局(即下一個節點是誰)。

當一個節點的參數中有“玩家控制”的因素的時候,即這是根據玩家行為得出的一個結果的時候,我們可以把它理解為一個“可控節點”,否則就是個“變化節點”或者叫做“不可控節點”。很好理解的是——“可控節點越多”,玩家對遊戲進行的把控度也就越高。當一個“可控節點”下所有的子節點都沒有“可控節點”,且都會鏈接到一個非“好結局”的“結束節點”上時,我們稱這個可控節點為“死節點”。

為什麼大多遊戲的“隨機性”設計都是有問題的

玩家玩n次(n趨向於無窮大)這個遊戲,在同一個可控節點上,每次玩都“輸入”同樣的參數(並且其他因素輸入的此參數也不變)時,如果最終總能通向一個固定的結束節點,而這個結束節點的所有參數都是完全一致的,我們稱這個遊戲是“可解”的,否則這個遊戲“不可解”。上面說過的九宮棋是“可解”的,因為只要雙方每次都按一個順序走,那麼每次結果都是一樣的(結果不僅僅是誰獲勝,還有棋盤上所有棋子的位置,因為具體誰獲勝,是依賴於棋盤上所有棋子位置來算出的,而並非一個簡單屬性);同樣,原始的保齡球也是“可解”的,只要能保證每次丟球的起點、角度等都完全相同(只是人類基本做不到)結果也必然是一樣的;但是當保齡球加入我們剛才說的“隨機反射裝置”後,就變成“不可解”了,因為每次隨機數的結果是不同的,因此我用一樣的方法(位置、角度)丟出n次,會得到n個不同的結果,其中只有個別的可能會相等。所以這裡有一個關鍵在於對結束節點,或者說是對遊戲的“結果”的數據結構的抽象——很多時候“輸了”“贏了”都只是一個“基於規則的推理”,而根本不屬於“結果”,比如五子棋,棋盤上所有棋的位置才是結果,因為所有棋的位置中出現了5個連在一起的,又因為規則規定5個子連在一起就是勝利,由此我們“推理”出了一方獲勝。

04玩家在遊戲中進入“可控節點”

通常來說,玩家進入某個“可控節點”的方式只有2個:

  • 決策進入:即在一個“非可控節點”的結果中存在一個選擇,玩家的選擇直接走向一個可控節點,大多策略類、養成類、益智類和GalGame玩法的遊戲就是如此。比如一個三國遊戲,戰鬥結束後我們處理俘虜:
為什麼大多遊戲的“隨機性”設計都是有問題的

大多三國類遊戲,在戰鬥結束後都會有這麼個“小型遊戲”,它的多叉樹是這樣的:

為什麼大多遊戲的“隨機性”設計都是有問題的

中間的3個可控節點(斬、勸降、釋放),來自同一個不可控節點產生的一個選擇。

  • 技巧進入:玩家進入一個節點是因為使用了一些操作類的技巧,遊戲中的QTE小遊戲都是典型技巧進入的方式,玩家知道哪個節點通向“好結局”,甚至知道“最優解”,但是必須要通過技巧測試,才可能達成,如果反應和水平不夠,就可能會掉入“死節點”。
"

我們玩過很多遊戲中都有隨機數,但是一些遊戲的隨機數總是讓人有不爽的感覺,很奇怪的是明明有問題,但又很難說清問題在哪兒。所以今天我們就從遊戲設計的方法出發,來看看一個遊戲在設計過程中的一些細節與隨機性之間的矛盾,從而挖掘出這些讓人不爽的隨機性背後的“難言之隱”。


01遊戲設計是在設計多叉樹

其實我們可以把遊戲的過程設計,或者玩家體驗遊戲的過程,看作是一顆多叉樹:

為什麼大多遊戲的“隨機性”設計都是有問題的

在這顆多叉樹上有這樣幾種節點:

  • 根節點:即玩家第一次與遊戲交互(產生操作)的節點。在根節點之前,由於玩家和遊戲沒有交互,所以遊戲中一切的“發展”都是一種“演示”,無法形成“玩”的概念,只有當玩家做出了操作以後,並且操作“推動”了遊戲的進程,這才能算是真的開始玩遊戲了。這也是為什麼很多遊戲要有一個“Push Start Button”界面的原因。
為什麼大多遊戲的“隨機性”設計都是有問題的

大多遊戲都有一個“歡迎畫面”需要玩家點一下才繼續

  • 節點:即影響遊戲局面的事件的發生點,一個節點會引申出多個子節點,每局遊戲運行過程中會根據這個節點的發生的具體事件的具體內容來決定這局遊戲具體通向其中哪一個子節點。通常來說,可以影響遊戲局面的因素包括且不限於玩家的操作、關卡中預設的元素、突發事件、隨機事件等元素。即在遊戲運行過程中動態產生了一些情況,這些情況導致遊戲局面發生變化,比如下象棋時每次落子都是一個節點,它會導致棋局進入不同的節點(產生不同的局面)。我們可以把節點理解為一個函數y=f(x),因變量y是要通向的下一個節點,而參數x是一個集合,是當前狀況下所有影響局面變化的元素產生的一個集合。比如“模擬高爾夫球”遊戲,我們打一杆球就是一個函數(節點),參數x有我們擊球的角度、力度、用的杆,這些來自玩家操作;還有球場的風力、風向等來自遊戲運行時的環境,然後根據這些參數,運行了y=f(x),得出了y,即“球落在了哪兒,遊戲是否結束(進入結束節點)?如果沒有結束就要打下一杆(進入新的節點)。
為什麼大多遊戲的“隨機性”設計都是有問題的

圍棋每落一個子都是一個節點

  • 結束節點:當進入這個節點的時候,一局遊戲就結束了。對於某一個玩家而言,這個節點存在好壞關係,即這個節點代表了該玩家“獲勝”,就會是個“好結局”。

玩家玩一局遊戲,就是在一棵多叉樹上走了一枝:

為什麼大多遊戲的“隨機性”設計都是有問題的

這一次玩家走了這一枝,下一次也許就未必了。根據上面的介紹我們不難理解——在一局遊戲中玩家在這顆多叉樹上具體能走過哪些節點,取決於每一個節點函數的運行結果。而玩家努力找尋或者操作是為了能走上一條通向“好結局”的路線,一個遊戲可以有多個“好結局”的結束節點,通向同一個“好結局”的路徑也最好能是多條的。“好結局”或者“通向好結局的路徑”越少(佔多叉樹的比例),玩家越會覺得遊戲困難;“通向好結局的路徑”越是單一,遊戲越是顯得有“最優解”。

多叉樹是一種設計的思想,你沒法在每次設計時候都畫出多叉樹,因為那窮舉量太大了,但是你必須在腦海中構建出多叉樹來,至少每一個節點的下一個節點會是哪些你應該能清晰的抽象出來。

02用多叉樹看一些遊戲

九宮棋(Tic Tac Toe)

為什麼大多遊戲的“隨機性”設計都是有問題的

九宮棋是A和B兩名玩家進行的遊戲,規則也非常簡單——輪流行動,直到一方連起一條直線上3個棋子。因此九宮棋的兩種節點分別是:A玩家行動節點和B玩家行動節點,在這些節點裡的參數只有:當前玩家決定落子在哪兒,最後函數返回出新的棋局——通向了新的節點或是達到了結束節點。

為什麼大多遊戲的“隨機性”設計都是有問題的

我們先把九宮棋的格子做一個編號,然後我們來看九宮棋的玩家在這個遊戲裡經歷的多叉樹(為了更好地說明問題,我們附加一個條件,即先行的A玩家第一個棋子必須落在B2,當然事實也是B2也是絕大多數A玩家會選擇的第一步落點):

為什麼大多遊戲的“隨機性”設計都是有問題的

從這個圖中我們可以看出:

  • 每個玩家落子都是一個節點(紅色代表A玩家,藍色代表B玩家)。
  • 紅色粗線的路線代表A玩家“通向好結局的路徑”。
  • 一局遊戲經過的節點深度,取決於雙方玩家一起連出的路徑。

保齡球(Bowling)

為什麼大多遊戲的“隨機性”設計都是有問題的

一種室內運動,把一個球滾過一段木板軌道,將另一端的瓶子擊倒

我們說九宮棋是一個回合制遊戲,可以清晰地看到他的多叉樹,保齡球是一種運動類遊戲,但也有多叉樹,只是相比九宮棋“深度”(即層數)更低,但“廣度”(同一個節點延伸出的節點數)高非常非常多。

為什麼大多遊戲的“隨機性”設計都是有問題的

從上圖紅色箭頭我們可以看出,因為保齡球可以丟的角度接近於無限多個,而保齡球(圖中綠色的球)的起始位置也是在圖中藍色線段上的任意一點,所以在“投球”這個節點上,而因為是“電子遊戲”,所以我們可以忽略掉拋球的力量手法等因素(確保每次都能是一樣的固定值),光是位置和角度就可以延伸出接近無窮多個子節點,每一個節點都通向一個結束節點,其中很多個結束節點是“好節點”(所有的瓶子倒了,不管倒成什麼形狀,只要倒下)

為什麼大多遊戲的“隨機性”設計都是有問題的

保齡球的多叉樹就是如此——丟出保齡球的節點,引申出無限多子節點,但是每個節點都會帶來一個結束節點,因為在這中間沒有其他因素去改變整個局面了,球最終能打中幾個瓶子、瓶子最終有幾個會倒下,仰仗於物理學和計算機的算力,我們其實可以在球丟出的那一瞬間,就用計算機算出精確的結果了。

那如果我現在要為我的《手機版保齡球遊戲》追加一些有趣的元素,讓這些元素改變保齡球的固有玩法可以怎麼加?最簡單的一個就是——為一些情況追加一層深度:現在我們把木板兩邊的坑道換成“隨機反射裝置”(因為電子遊戲是虛擬的,所以可以出現現實中無法出現的,不可思議的有趣元素),這個裝置不會干擾球的運動速度,但是會讓重新隨機一個角度作為球滾動的新方向,從而導致球的軌跡(核心元素)發生變化:

為什麼大多遊戲的“隨機性”設計都是有問題的

如上圖所示,紅色的是保齡球丟出時候的方向,當碰到牆壁後,保齡球的軌跡可能變成2根藍色箭頭夾角中的任意一個角度(取決於當時的隨機數)。這樣一來我們的《手機版保齡球遊戲》與現實的保齡球就不再一樣了,它多了一個新的玩法:

為什麼大多遊戲的“隨機性”設計都是有問題的

迷宮\\隨機迷宮遊戲

很多遊戲中都有迷宮,既然是迷宮就會有分叉路,一些路通向終點,而一些路通向死衚衕。

為什麼大多遊戲的“隨機性”設計都是有問題的

迷宮只是多叉樹的一種表現方式而已,骨子裡就是一個多叉樹。迷宮中每個分叉口都是一個節點,由這個節點引申出後續的分叉口(節點),根據這些分叉路線,我們再來進行布怪和放置獎勵、終點的工作。

03節點的設計

在這個多叉樹的設計裡,最重要的一環就是節點的設計,因為每一個節點就是遊戲規則中至關重要的一步(或者可以理解為“一個轉折”)。

就像我們之前說的——可以把一個節點看作是一個函數,順著這個解說下去就是:一個節點有3個核心元素組成:

  • 參數(自變量):即這個節點中影響遊戲局面的“動態”元素,這通常是來自玩家操作或遊戲運行時算出來的一些數據。設計師在設計每個節點的時候,同時影響這個節點的因素都可以是這個“函數”的“參數”,如猜拳時,需要雙方同時輸入出的拳,就是2個參數。參數中,玩家的操作通常可以理解為“從很多選項中選出來的那個”,而不是“可供選擇的選項”。
  • 返回值(因變量):即當前遊戲的局面,以及由此產生的下一個節點。
  • 函數本體(運行邏輯):當傳入參數後,進行運算獲得返回值的過程,或者更直白的說就是“遊戲規則”,比如猜拳的時候,函數本體就是判斷雙方的出拳,決定誰贏誰輸或者平局(即下一個節點是誰)。

當一個節點的參數中有“玩家控制”的因素的時候,即這是根據玩家行為得出的一個結果的時候,我們可以把它理解為一個“可控節點”,否則就是個“變化節點”或者叫做“不可控節點”。很好理解的是——“可控節點越多”,玩家對遊戲進行的把控度也就越高。當一個“可控節點”下所有的子節點都沒有“可控節點”,且都會鏈接到一個非“好結局”的“結束節點”上時,我們稱這個可控節點為“死節點”。

為什麼大多遊戲的“隨機性”設計都是有問題的

玩家玩n次(n趨向於無窮大)這個遊戲,在同一個可控節點上,每次玩都“輸入”同樣的參數(並且其他因素輸入的此參數也不變)時,如果最終總能通向一個固定的結束節點,而這個結束節點的所有參數都是完全一致的,我們稱這個遊戲是“可解”的,否則這個遊戲“不可解”。上面說過的九宮棋是“可解”的,因為只要雙方每次都按一個順序走,那麼每次結果都是一樣的(結果不僅僅是誰獲勝,還有棋盤上所有棋子的位置,因為具體誰獲勝,是依賴於棋盤上所有棋子位置來算出的,而並非一個簡單屬性);同樣,原始的保齡球也是“可解”的,只要能保證每次丟球的起點、角度等都完全相同(只是人類基本做不到)結果也必然是一樣的;但是當保齡球加入我們剛才說的“隨機反射裝置”後,就變成“不可解”了,因為每次隨機數的結果是不同的,因此我用一樣的方法(位置、角度)丟出n次,會得到n個不同的結果,其中只有個別的可能會相等。所以這裡有一個關鍵在於對結束節點,或者說是對遊戲的“結果”的數據結構的抽象——很多時候“輸了”“贏了”都只是一個“基於規則的推理”,而根本不屬於“結果”,比如五子棋,棋盤上所有棋的位置才是結果,因為所有棋的位置中出現了5個連在一起的,又因為規則規定5個子連在一起就是勝利,由此我們“推理”出了一方獲勝。

04玩家在遊戲中進入“可控節點”

通常來說,玩家進入某個“可控節點”的方式只有2個:

  • 決策進入:即在一個“非可控節點”的結果中存在一個選擇,玩家的選擇直接走向一個可控節點,大多策略類、養成類、益智類和GalGame玩法的遊戲就是如此。比如一個三國遊戲,戰鬥結束後我們處理俘虜:
為什麼大多遊戲的“隨機性”設計都是有問題的

大多三國類遊戲,在戰鬥結束後都會有這麼個“小型遊戲”,它的多叉樹是這樣的:

為什麼大多遊戲的“隨機性”設計都是有問題的

中間的3個可控節點(斬、勸降、釋放),來自同一個不可控節點產生的一個選擇。

  • 技巧進入:玩家進入一個節點是因為使用了一些操作類的技巧,遊戲中的QTE小遊戲都是典型技巧進入的方式,玩家知道哪個節點通向“好結局”,甚至知道“最優解”,但是必須要通過技巧測試,才可能達成,如果反應和水平不夠,就可能會掉入“死節點”。
為什麼大多遊戲的“隨機性”設計都是有問題的

在火紋風花雪月中,釣魚就是一個QTE小遊戲

05放哪兒都尷尬的隨機性

如果我們用隨機來決定節點通向的下一個節點,這不僅會把“可控節點”變成了“不可控節點”,還會讓遊戲失去“可解”特性。

我們看過很多文章和書籍,都告訴我們“遊戲之所以吸引人,因為有2個要素——其一是準確的反饋,其二是學習成長”。所謂準確的反饋就是當我們做了一個事情的時候總能得到一個相對的反饋,而其中的一些反饋是好的,一些反饋是糟糕的,從設計的角度出發看,這就是在遊戲這顆多叉樹上,玩家尋找的是“好結局”對應的結束節點;所謂學習成長,即玩家從遊戲中掌握了一些技巧和經驗,由此可以使得自己技術更精妙,更容易獲得“好結局”。

事實上玩遊戲的過程,就是在解一道題,因為這道題非常的複雜(我們可以看到上面所有的多叉樹都沒法列全,打草稿都如此困難,更何況人腦直接計算),所以我們沒法看清所有的解,所以我們需要一步一步的探尋下去,在這個過程中不斷享受發現帶來的樂趣;當然一些技巧類遊戲,如動作遊戲,可能我們最先就知道了最好的路徑,只是我們的操作技巧沒法一次性把我們送到最好路徑上,或者有些技巧我們掌握不了(過於困難)以至於只能另尋他路。而玩遊戲的經驗,正是幫我們克服“算力不足”(導致一次看不到所有的解)的最好“老師”,而遊戲“可解”是這一切的基石,因為“不可解”的遊戲沒法積累經驗,比如微信搶紅包,沒有任何經驗可以幫助你下一個紅包搶到你所期望的某個數額,因為微信搶紅包的過程中有隨機數決定下一個節點的情況存在:

"

我們玩過很多遊戲中都有隨機數,但是一些遊戲的隨機數總是讓人有不爽的感覺,很奇怪的是明明有問題,但又很難說清問題在哪兒。所以今天我們就從遊戲設計的方法出發,來看看一個遊戲在設計過程中的一些細節與隨機性之間的矛盾,從而挖掘出這些讓人不爽的隨機性背後的“難言之隱”。


01遊戲設計是在設計多叉樹

其實我們可以把遊戲的過程設計,或者玩家體驗遊戲的過程,看作是一顆多叉樹:

為什麼大多遊戲的“隨機性”設計都是有問題的

在這顆多叉樹上有這樣幾種節點:

  • 根節點:即玩家第一次與遊戲交互(產生操作)的節點。在根節點之前,由於玩家和遊戲沒有交互,所以遊戲中一切的“發展”都是一種“演示”,無法形成“玩”的概念,只有當玩家做出了操作以後,並且操作“推動”了遊戲的進程,這才能算是真的開始玩遊戲了。這也是為什麼很多遊戲要有一個“Push Start Button”界面的原因。
為什麼大多遊戲的“隨機性”設計都是有問題的

大多遊戲都有一個“歡迎畫面”需要玩家點一下才繼續

  • 節點:即影響遊戲局面的事件的發生點,一個節點會引申出多個子節點,每局遊戲運行過程中會根據這個節點的發生的具體事件的具體內容來決定這局遊戲具體通向其中哪一個子節點。通常來說,可以影響遊戲局面的因素包括且不限於玩家的操作、關卡中預設的元素、突發事件、隨機事件等元素。即在遊戲運行過程中動態產生了一些情況,這些情況導致遊戲局面發生變化,比如下象棋時每次落子都是一個節點,它會導致棋局進入不同的節點(產生不同的局面)。我們可以把節點理解為一個函數y=f(x),因變量y是要通向的下一個節點,而參數x是一個集合,是當前狀況下所有影響局面變化的元素產生的一個集合。比如“模擬高爾夫球”遊戲,我們打一杆球就是一個函數(節點),參數x有我們擊球的角度、力度、用的杆,這些來自玩家操作;還有球場的風力、風向等來自遊戲運行時的環境,然後根據這些參數,運行了y=f(x),得出了y,即“球落在了哪兒,遊戲是否結束(進入結束節點)?如果沒有結束就要打下一杆(進入新的節點)。
為什麼大多遊戲的“隨機性”設計都是有問題的

圍棋每落一個子都是一個節點

  • 結束節點:當進入這個節點的時候,一局遊戲就結束了。對於某一個玩家而言,這個節點存在好壞關係,即這個節點代表了該玩家“獲勝”,就會是個“好結局”。

玩家玩一局遊戲,就是在一棵多叉樹上走了一枝:

為什麼大多遊戲的“隨機性”設計都是有問題的

這一次玩家走了這一枝,下一次也許就未必了。根據上面的介紹我們不難理解——在一局遊戲中玩家在這顆多叉樹上具體能走過哪些節點,取決於每一個節點函數的運行結果。而玩家努力找尋或者操作是為了能走上一條通向“好結局”的路線,一個遊戲可以有多個“好結局”的結束節點,通向同一個“好結局”的路徑也最好能是多條的。“好結局”或者“通向好結局的路徑”越少(佔多叉樹的比例),玩家越會覺得遊戲困難;“通向好結局的路徑”越是單一,遊戲越是顯得有“最優解”。

多叉樹是一種設計的思想,你沒法在每次設計時候都畫出多叉樹,因為那窮舉量太大了,但是你必須在腦海中構建出多叉樹來,至少每一個節點的下一個節點會是哪些你應該能清晰的抽象出來。

02用多叉樹看一些遊戲

九宮棋(Tic Tac Toe)

為什麼大多遊戲的“隨機性”設計都是有問題的

九宮棋是A和B兩名玩家進行的遊戲,規則也非常簡單——輪流行動,直到一方連起一條直線上3個棋子。因此九宮棋的兩種節點分別是:A玩家行動節點和B玩家行動節點,在這些節點裡的參數只有:當前玩家決定落子在哪兒,最後函數返回出新的棋局——通向了新的節點或是達到了結束節點。

為什麼大多遊戲的“隨機性”設計都是有問題的

我們先把九宮棋的格子做一個編號,然後我們來看九宮棋的玩家在這個遊戲裡經歷的多叉樹(為了更好地說明問題,我們附加一個條件,即先行的A玩家第一個棋子必須落在B2,當然事實也是B2也是絕大多數A玩家會選擇的第一步落點):

為什麼大多遊戲的“隨機性”設計都是有問題的

從這個圖中我們可以看出:

  • 每個玩家落子都是一個節點(紅色代表A玩家,藍色代表B玩家)。
  • 紅色粗線的路線代表A玩家“通向好結局的路徑”。
  • 一局遊戲經過的節點深度,取決於雙方玩家一起連出的路徑。

保齡球(Bowling)

為什麼大多遊戲的“隨機性”設計都是有問題的

一種室內運動,把一個球滾過一段木板軌道,將另一端的瓶子擊倒

我們說九宮棋是一個回合制遊戲,可以清晰地看到他的多叉樹,保齡球是一種運動類遊戲,但也有多叉樹,只是相比九宮棋“深度”(即層數)更低,但“廣度”(同一個節點延伸出的節點數)高非常非常多。

為什麼大多遊戲的“隨機性”設計都是有問題的

從上圖紅色箭頭我們可以看出,因為保齡球可以丟的角度接近於無限多個,而保齡球(圖中綠色的球)的起始位置也是在圖中藍色線段上的任意一點,所以在“投球”這個節點上,而因為是“電子遊戲”,所以我們可以忽略掉拋球的力量手法等因素(確保每次都能是一樣的固定值),光是位置和角度就可以延伸出接近無窮多個子節點,每一個節點都通向一個結束節點,其中很多個結束節點是“好節點”(所有的瓶子倒了,不管倒成什麼形狀,只要倒下)

為什麼大多遊戲的“隨機性”設計都是有問題的

保齡球的多叉樹就是如此——丟出保齡球的節點,引申出無限多子節點,但是每個節點都會帶來一個結束節點,因為在這中間沒有其他因素去改變整個局面了,球最終能打中幾個瓶子、瓶子最終有幾個會倒下,仰仗於物理學和計算機的算力,我們其實可以在球丟出的那一瞬間,就用計算機算出精確的結果了。

那如果我現在要為我的《手機版保齡球遊戲》追加一些有趣的元素,讓這些元素改變保齡球的固有玩法可以怎麼加?最簡單的一個就是——為一些情況追加一層深度:現在我們把木板兩邊的坑道換成“隨機反射裝置”(因為電子遊戲是虛擬的,所以可以出現現實中無法出現的,不可思議的有趣元素),這個裝置不會干擾球的運動速度,但是會讓重新隨機一個角度作為球滾動的新方向,從而導致球的軌跡(核心元素)發生變化:

為什麼大多遊戲的“隨機性”設計都是有問題的

如上圖所示,紅色的是保齡球丟出時候的方向,當碰到牆壁後,保齡球的軌跡可能變成2根藍色箭頭夾角中的任意一個角度(取決於當時的隨機數)。這樣一來我們的《手機版保齡球遊戲》與現實的保齡球就不再一樣了,它多了一個新的玩法:

為什麼大多遊戲的“隨機性”設計都是有問題的

迷宮\\隨機迷宮遊戲

很多遊戲中都有迷宮,既然是迷宮就會有分叉路,一些路通向終點,而一些路通向死衚衕。

為什麼大多遊戲的“隨機性”設計都是有問題的

迷宮只是多叉樹的一種表現方式而已,骨子裡就是一個多叉樹。迷宮中每個分叉口都是一個節點,由這個節點引申出後續的分叉口(節點),根據這些分叉路線,我們再來進行布怪和放置獎勵、終點的工作。

03節點的設計

在這個多叉樹的設計裡,最重要的一環就是節點的設計,因為每一個節點就是遊戲規則中至關重要的一步(或者可以理解為“一個轉折”)。

就像我們之前說的——可以把一個節點看作是一個函數,順著這個解說下去就是:一個節點有3個核心元素組成:

  • 參數(自變量):即這個節點中影響遊戲局面的“動態”元素,這通常是來自玩家操作或遊戲運行時算出來的一些數據。設計師在設計每個節點的時候,同時影響這個節點的因素都可以是這個“函數”的“參數”,如猜拳時,需要雙方同時輸入出的拳,就是2個參數。參數中,玩家的操作通常可以理解為“從很多選項中選出來的那個”,而不是“可供選擇的選項”。
  • 返回值(因變量):即當前遊戲的局面,以及由此產生的下一個節點。
  • 函數本體(運行邏輯):當傳入參數後,進行運算獲得返回值的過程,或者更直白的說就是“遊戲規則”,比如猜拳的時候,函數本體就是判斷雙方的出拳,決定誰贏誰輸或者平局(即下一個節點是誰)。

當一個節點的參數中有“玩家控制”的因素的時候,即這是根據玩家行為得出的一個結果的時候,我們可以把它理解為一個“可控節點”,否則就是個“變化節點”或者叫做“不可控節點”。很好理解的是——“可控節點越多”,玩家對遊戲進行的把控度也就越高。當一個“可控節點”下所有的子節點都沒有“可控節點”,且都會鏈接到一個非“好結局”的“結束節點”上時,我們稱這個可控節點為“死節點”。

為什麼大多遊戲的“隨機性”設計都是有問題的

玩家玩n次(n趨向於無窮大)這個遊戲,在同一個可控節點上,每次玩都“輸入”同樣的參數(並且其他因素輸入的此參數也不變)時,如果最終總能通向一個固定的結束節點,而這個結束節點的所有參數都是完全一致的,我們稱這個遊戲是“可解”的,否則這個遊戲“不可解”。上面說過的九宮棋是“可解”的,因為只要雙方每次都按一個順序走,那麼每次結果都是一樣的(結果不僅僅是誰獲勝,還有棋盤上所有棋子的位置,因為具體誰獲勝,是依賴於棋盤上所有棋子位置來算出的,而並非一個簡單屬性);同樣,原始的保齡球也是“可解”的,只要能保證每次丟球的起點、角度等都完全相同(只是人類基本做不到)結果也必然是一樣的;但是當保齡球加入我們剛才說的“隨機反射裝置”後,就變成“不可解”了,因為每次隨機數的結果是不同的,因此我用一樣的方法(位置、角度)丟出n次,會得到n個不同的結果,其中只有個別的可能會相等。所以這裡有一個關鍵在於對結束節點,或者說是對遊戲的“結果”的數據結構的抽象——很多時候“輸了”“贏了”都只是一個“基於規則的推理”,而根本不屬於“結果”,比如五子棋,棋盤上所有棋的位置才是結果,因為所有棋的位置中出現了5個連在一起的,又因為規則規定5個子連在一起就是勝利,由此我們“推理”出了一方獲勝。

04玩家在遊戲中進入“可控節點”

通常來說,玩家進入某個“可控節點”的方式只有2個:

  • 決策進入:即在一個“非可控節點”的結果中存在一個選擇,玩家的選擇直接走向一個可控節點,大多策略類、養成類、益智類和GalGame玩法的遊戲就是如此。比如一個三國遊戲,戰鬥結束後我們處理俘虜:
為什麼大多遊戲的“隨機性”設計都是有問題的

大多三國類遊戲,在戰鬥結束後都會有這麼個“小型遊戲”,它的多叉樹是這樣的:

為什麼大多遊戲的“隨機性”設計都是有問題的

中間的3個可控節點(斬、勸降、釋放),來自同一個不可控節點產生的一個選擇。

  • 技巧進入:玩家進入一個節點是因為使用了一些操作類的技巧,遊戲中的QTE小遊戲都是典型技巧進入的方式,玩家知道哪個節點通向“好結局”,甚至知道“最優解”,但是必須要通過技巧測試,才可能達成,如果反應和水平不夠,就可能會掉入“死節點”。
為什麼大多遊戲的“隨機性”設計都是有問題的

在火紋風花雪月中,釣魚就是一個QTE小遊戲

05放哪兒都尷尬的隨機性

如果我們用隨機來決定節點通向的下一個節點,這不僅會把“可控節點”變成了“不可控節點”,還會讓遊戲失去“可解”特性。

我們看過很多文章和書籍,都告訴我們“遊戲之所以吸引人,因為有2個要素——其一是準確的反饋,其二是學習成長”。所謂準確的反饋就是當我們做了一個事情的時候總能得到一個相對的反饋,而其中的一些反饋是好的,一些反饋是糟糕的,從設計的角度出發看,這就是在遊戲這顆多叉樹上,玩家尋找的是“好結局”對應的結束節點;所謂學習成長,即玩家從遊戲中掌握了一些技巧和經驗,由此可以使得自己技術更精妙,更容易獲得“好結局”。

事實上玩遊戲的過程,就是在解一道題,因為這道題非常的複雜(我們可以看到上面所有的多叉樹都沒法列全,打草稿都如此困難,更何況人腦直接計算),所以我們沒法看清所有的解,所以我們需要一步一步的探尋下去,在這個過程中不斷享受發現帶來的樂趣;當然一些技巧類遊戲,如動作遊戲,可能我們最先就知道了最好的路徑,只是我們的操作技巧沒法一次性把我們送到最好路徑上,或者有些技巧我們掌握不了(過於困難)以至於只能另尋他路。而玩遊戲的經驗,正是幫我們克服“算力不足”(導致一次看不到所有的解)的最好“老師”,而遊戲“可解”是這一切的基石,因為“不可解”的遊戲沒法積累經驗,比如微信搶紅包,沒有任何經驗可以幫助你下一個紅包搶到你所期望的某個數額,因為微信搶紅包的過程中有隨機數決定下一個節點的情況存在:

為什麼大多遊戲的“隨機性”設計都是有問題的

不難理解,上圖紅色的部分是因為“隨機性”產生的無數個“不可控節點”,而每一個這種節點都能帶出一個結束節點,結果都不一樣(只是偶爾可能會有值相等的情況),所以搶紅包“不可解”,並且由此你沒法訓練一種技巧或者思路來做到“每次都能搶到n=100的紅包”。

事實上所有棋類遊戲的“棋譜”都是經驗的記錄,只是很多棋類遊戲即使是棋譜也過於龐大,人腦依然無法記錄,以至於還是需要人動腦筋去探索,才保持著樂趣——事實上Alpha Go可以戰勝世界圍棋高手,正是因為圍棋“可解”,只是人腦的算力不足,而Alpha Go的算力完美符合需求;相反的例子是九宮棋,因為就連小孩子也能很快學會記住必勝或必定不勝的方法(即過程路徑),所以遊戲性就大跌。所以好的遊戲,應該是一個極其龐大的多叉樹,其中有非常多的“混淆”導致玩家看不清所有的解,也很難在第一時間確定最佳解,即使相對容易知道最佳解的,也可以在技術上(包括時間限制、操作水平要求等方面)做功夫,讓玩家並不是輕而易舉的就能看破。但是,這種“不能看破”與“完全無理由預測”是完全不同的東西,雖然從某個角度看結果都是“玩家難以控制”。

所以遊戲的隨機性,如果運用在導致整個遊戲多叉樹“不可解”的情況下,那這個用法就是不好的,典型的就是將隨機作為決定結果的因子,比如現有遊戲中的“抽卡”系統,都是不好的設計,玩家並沒法從這個系統獲得任何樂趣(即學不到技巧,也沒法積累經驗),當然抽卡還是會讓玩家高興,因為抽到了好東西,但這讓玩家高興的是獎勵,而不是遊戲本身。

06不好的隨機性會讓玩家面臨“所有可控節點都是死節點”的尷尬

還有一種極為“精妙”的隨機數用法,是用於約束“可控節點”的範圍,通常會出現在一些卡牌玩法的遊戲中。舉個例子:我們把猜拳遊戲改進一下,變成單人遊戲——現在發3張小卡片給玩家,每張小卡片上寫有“石頭”“剪刀”或“布”的一個,玩家出小卡片來代替出拳,而“對手”會出的也是從小卡片中抽一張出來直接放在桌上,玩家要做的就是從3張小卡片中選出一張來和這張抽出來的小卡片進行“猜拳”。這時,由於3張小卡片是隨機發給玩家的,即玩家有可能拿到3張“石頭”,因此在這個猜拳遊戲中,玩家只能出“石頭”,而不能出“布”或“剪刀”,而桌面上那張“對手”如果是“布”,那麼玩家此時面臨的局面就是一個“所有可控節點都是死節點的情況”:

"

我們玩過很多遊戲中都有隨機數,但是一些遊戲的隨機數總是讓人有不爽的感覺,很奇怪的是明明有問題,但又很難說清問題在哪兒。所以今天我們就從遊戲設計的方法出發,來看看一個遊戲在設計過程中的一些細節與隨機性之間的矛盾,從而挖掘出這些讓人不爽的隨機性背後的“難言之隱”。


01遊戲設計是在設計多叉樹

其實我們可以把遊戲的過程設計,或者玩家體驗遊戲的過程,看作是一顆多叉樹:

為什麼大多遊戲的“隨機性”設計都是有問題的

在這顆多叉樹上有這樣幾種節點:

  • 根節點:即玩家第一次與遊戲交互(產生操作)的節點。在根節點之前,由於玩家和遊戲沒有交互,所以遊戲中一切的“發展”都是一種“演示”,無法形成“玩”的概念,只有當玩家做出了操作以後,並且操作“推動”了遊戲的進程,這才能算是真的開始玩遊戲了。這也是為什麼很多遊戲要有一個“Push Start Button”界面的原因。
為什麼大多遊戲的“隨機性”設計都是有問題的

大多遊戲都有一個“歡迎畫面”需要玩家點一下才繼續

  • 節點:即影響遊戲局面的事件的發生點,一個節點會引申出多個子節點,每局遊戲運行過程中會根據這個節點的發生的具體事件的具體內容來決定這局遊戲具體通向其中哪一個子節點。通常來說,可以影響遊戲局面的因素包括且不限於玩家的操作、關卡中預設的元素、突發事件、隨機事件等元素。即在遊戲運行過程中動態產生了一些情況,這些情況導致遊戲局面發生變化,比如下象棋時每次落子都是一個節點,它會導致棋局進入不同的節點(產生不同的局面)。我們可以把節點理解為一個函數y=f(x),因變量y是要通向的下一個節點,而參數x是一個集合,是當前狀況下所有影響局面變化的元素產生的一個集合。比如“模擬高爾夫球”遊戲,我們打一杆球就是一個函數(節點),參數x有我們擊球的角度、力度、用的杆,這些來自玩家操作;還有球場的風力、風向等來自遊戲運行時的環境,然後根據這些參數,運行了y=f(x),得出了y,即“球落在了哪兒,遊戲是否結束(進入結束節點)?如果沒有結束就要打下一杆(進入新的節點)。
為什麼大多遊戲的“隨機性”設計都是有問題的

圍棋每落一個子都是一個節點

  • 結束節點:當進入這個節點的時候,一局遊戲就結束了。對於某一個玩家而言,這個節點存在好壞關係,即這個節點代表了該玩家“獲勝”,就會是個“好結局”。

玩家玩一局遊戲,就是在一棵多叉樹上走了一枝:

為什麼大多遊戲的“隨機性”設計都是有問題的

這一次玩家走了這一枝,下一次也許就未必了。根據上面的介紹我們不難理解——在一局遊戲中玩家在這顆多叉樹上具體能走過哪些節點,取決於每一個節點函數的運行結果。而玩家努力找尋或者操作是為了能走上一條通向“好結局”的路線,一個遊戲可以有多個“好結局”的結束節點,通向同一個“好結局”的路徑也最好能是多條的。“好結局”或者“通向好結局的路徑”越少(佔多叉樹的比例),玩家越會覺得遊戲困難;“通向好結局的路徑”越是單一,遊戲越是顯得有“最優解”。

多叉樹是一種設計的思想,你沒法在每次設計時候都畫出多叉樹,因為那窮舉量太大了,但是你必須在腦海中構建出多叉樹來,至少每一個節點的下一個節點會是哪些你應該能清晰的抽象出來。

02用多叉樹看一些遊戲

九宮棋(Tic Tac Toe)

為什麼大多遊戲的“隨機性”設計都是有問題的

九宮棋是A和B兩名玩家進行的遊戲,規則也非常簡單——輪流行動,直到一方連起一條直線上3個棋子。因此九宮棋的兩種節點分別是:A玩家行動節點和B玩家行動節點,在這些節點裡的參數只有:當前玩家決定落子在哪兒,最後函數返回出新的棋局——通向了新的節點或是達到了結束節點。

為什麼大多遊戲的“隨機性”設計都是有問題的

我們先把九宮棋的格子做一個編號,然後我們來看九宮棋的玩家在這個遊戲裡經歷的多叉樹(為了更好地說明問題,我們附加一個條件,即先行的A玩家第一個棋子必須落在B2,當然事實也是B2也是絕大多數A玩家會選擇的第一步落點):

為什麼大多遊戲的“隨機性”設計都是有問題的

從這個圖中我們可以看出:

  • 每個玩家落子都是一個節點(紅色代表A玩家,藍色代表B玩家)。
  • 紅色粗線的路線代表A玩家“通向好結局的路徑”。
  • 一局遊戲經過的節點深度,取決於雙方玩家一起連出的路徑。

保齡球(Bowling)

為什麼大多遊戲的“隨機性”設計都是有問題的

一種室內運動,把一個球滾過一段木板軌道,將另一端的瓶子擊倒

我們說九宮棋是一個回合制遊戲,可以清晰地看到他的多叉樹,保齡球是一種運動類遊戲,但也有多叉樹,只是相比九宮棋“深度”(即層數)更低,但“廣度”(同一個節點延伸出的節點數)高非常非常多。

為什麼大多遊戲的“隨機性”設計都是有問題的

從上圖紅色箭頭我們可以看出,因為保齡球可以丟的角度接近於無限多個,而保齡球(圖中綠色的球)的起始位置也是在圖中藍色線段上的任意一點,所以在“投球”這個節點上,而因為是“電子遊戲”,所以我們可以忽略掉拋球的力量手法等因素(確保每次都能是一樣的固定值),光是位置和角度就可以延伸出接近無窮多個子節點,每一個節點都通向一個結束節點,其中很多個結束節點是“好節點”(所有的瓶子倒了,不管倒成什麼形狀,只要倒下)

為什麼大多遊戲的“隨機性”設計都是有問題的

保齡球的多叉樹就是如此——丟出保齡球的節點,引申出無限多子節點,但是每個節點都會帶來一個結束節點,因為在這中間沒有其他因素去改變整個局面了,球最終能打中幾個瓶子、瓶子最終有幾個會倒下,仰仗於物理學和計算機的算力,我們其實可以在球丟出的那一瞬間,就用計算機算出精確的結果了。

那如果我現在要為我的《手機版保齡球遊戲》追加一些有趣的元素,讓這些元素改變保齡球的固有玩法可以怎麼加?最簡單的一個就是——為一些情況追加一層深度:現在我們把木板兩邊的坑道換成“隨機反射裝置”(因為電子遊戲是虛擬的,所以可以出現現實中無法出現的,不可思議的有趣元素),這個裝置不會干擾球的運動速度,但是會讓重新隨機一個角度作為球滾動的新方向,從而導致球的軌跡(核心元素)發生變化:

為什麼大多遊戲的“隨機性”設計都是有問題的

如上圖所示,紅色的是保齡球丟出時候的方向,當碰到牆壁後,保齡球的軌跡可能變成2根藍色箭頭夾角中的任意一個角度(取決於當時的隨機數)。這樣一來我們的《手機版保齡球遊戲》與現實的保齡球就不再一樣了,它多了一個新的玩法:

為什麼大多遊戲的“隨機性”設計都是有問題的

迷宮\\隨機迷宮遊戲

很多遊戲中都有迷宮,既然是迷宮就會有分叉路,一些路通向終點,而一些路通向死衚衕。

為什麼大多遊戲的“隨機性”設計都是有問題的

迷宮只是多叉樹的一種表現方式而已,骨子裡就是一個多叉樹。迷宮中每個分叉口都是一個節點,由這個節點引申出後續的分叉口(節點),根據這些分叉路線,我們再來進行布怪和放置獎勵、終點的工作。

03節點的設計

在這個多叉樹的設計裡,最重要的一環就是節點的設計,因為每一個節點就是遊戲規則中至關重要的一步(或者可以理解為“一個轉折”)。

就像我們之前說的——可以把一個節點看作是一個函數,順著這個解說下去就是:一個節點有3個核心元素組成:

  • 參數(自變量):即這個節點中影響遊戲局面的“動態”元素,這通常是來自玩家操作或遊戲運行時算出來的一些數據。設計師在設計每個節點的時候,同時影響這個節點的因素都可以是這個“函數”的“參數”,如猜拳時,需要雙方同時輸入出的拳,就是2個參數。參數中,玩家的操作通常可以理解為“從很多選項中選出來的那個”,而不是“可供選擇的選項”。
  • 返回值(因變量):即當前遊戲的局面,以及由此產生的下一個節點。
  • 函數本體(運行邏輯):當傳入參數後,進行運算獲得返回值的過程,或者更直白的說就是“遊戲規則”,比如猜拳的時候,函數本體就是判斷雙方的出拳,決定誰贏誰輸或者平局(即下一個節點是誰)。

當一個節點的參數中有“玩家控制”的因素的時候,即這是根據玩家行為得出的一個結果的時候,我們可以把它理解為一個“可控節點”,否則就是個“變化節點”或者叫做“不可控節點”。很好理解的是——“可控節點越多”,玩家對遊戲進行的把控度也就越高。當一個“可控節點”下所有的子節點都沒有“可控節點”,且都會鏈接到一個非“好結局”的“結束節點”上時,我們稱這個可控節點為“死節點”。

為什麼大多遊戲的“隨機性”設計都是有問題的

玩家玩n次(n趨向於無窮大)這個遊戲,在同一個可控節點上,每次玩都“輸入”同樣的參數(並且其他因素輸入的此參數也不變)時,如果最終總能通向一個固定的結束節點,而這個結束節點的所有參數都是完全一致的,我們稱這個遊戲是“可解”的,否則這個遊戲“不可解”。上面說過的九宮棋是“可解”的,因為只要雙方每次都按一個順序走,那麼每次結果都是一樣的(結果不僅僅是誰獲勝,還有棋盤上所有棋子的位置,因為具體誰獲勝,是依賴於棋盤上所有棋子位置來算出的,而並非一個簡單屬性);同樣,原始的保齡球也是“可解”的,只要能保證每次丟球的起點、角度等都完全相同(只是人類基本做不到)結果也必然是一樣的;但是當保齡球加入我們剛才說的“隨機反射裝置”後,就變成“不可解”了,因為每次隨機數的結果是不同的,因此我用一樣的方法(位置、角度)丟出n次,會得到n個不同的結果,其中只有個別的可能會相等。所以這裡有一個關鍵在於對結束節點,或者說是對遊戲的“結果”的數據結構的抽象——很多時候“輸了”“贏了”都只是一個“基於規則的推理”,而根本不屬於“結果”,比如五子棋,棋盤上所有棋的位置才是結果,因為所有棋的位置中出現了5個連在一起的,又因為規則規定5個子連在一起就是勝利,由此我們“推理”出了一方獲勝。

04玩家在遊戲中進入“可控節點”

通常來說,玩家進入某個“可控節點”的方式只有2個:

  • 決策進入:即在一個“非可控節點”的結果中存在一個選擇,玩家的選擇直接走向一個可控節點,大多策略類、養成類、益智類和GalGame玩法的遊戲就是如此。比如一個三國遊戲,戰鬥結束後我們處理俘虜:
為什麼大多遊戲的“隨機性”設計都是有問題的

大多三國類遊戲,在戰鬥結束後都會有這麼個“小型遊戲”,它的多叉樹是這樣的:

為什麼大多遊戲的“隨機性”設計都是有問題的

中間的3個可控節點(斬、勸降、釋放),來自同一個不可控節點產生的一個選擇。

  • 技巧進入:玩家進入一個節點是因為使用了一些操作類的技巧,遊戲中的QTE小遊戲都是典型技巧進入的方式,玩家知道哪個節點通向“好結局”,甚至知道“最優解”,但是必須要通過技巧測試,才可能達成,如果反應和水平不夠,就可能會掉入“死節點”。
為什麼大多遊戲的“隨機性”設計都是有問題的

在火紋風花雪月中,釣魚就是一個QTE小遊戲

05放哪兒都尷尬的隨機性

如果我們用隨機來決定節點通向的下一個節點,這不僅會把“可控節點”變成了“不可控節點”,還會讓遊戲失去“可解”特性。

我們看過很多文章和書籍,都告訴我們“遊戲之所以吸引人,因為有2個要素——其一是準確的反饋,其二是學習成長”。所謂準確的反饋就是當我們做了一個事情的時候總能得到一個相對的反饋,而其中的一些反饋是好的,一些反饋是糟糕的,從設計的角度出發看,這就是在遊戲這顆多叉樹上,玩家尋找的是“好結局”對應的結束節點;所謂學習成長,即玩家從遊戲中掌握了一些技巧和經驗,由此可以使得自己技術更精妙,更容易獲得“好結局”。

事實上玩遊戲的過程,就是在解一道題,因為這道題非常的複雜(我們可以看到上面所有的多叉樹都沒法列全,打草稿都如此困難,更何況人腦直接計算),所以我們沒法看清所有的解,所以我們需要一步一步的探尋下去,在這個過程中不斷享受發現帶來的樂趣;當然一些技巧類遊戲,如動作遊戲,可能我們最先就知道了最好的路徑,只是我們的操作技巧沒法一次性把我們送到最好路徑上,或者有些技巧我們掌握不了(過於困難)以至於只能另尋他路。而玩遊戲的經驗,正是幫我們克服“算力不足”(導致一次看不到所有的解)的最好“老師”,而遊戲“可解”是這一切的基石,因為“不可解”的遊戲沒法積累經驗,比如微信搶紅包,沒有任何經驗可以幫助你下一個紅包搶到你所期望的某個數額,因為微信搶紅包的過程中有隨機數決定下一個節點的情況存在:

為什麼大多遊戲的“隨機性”設計都是有問題的

不難理解,上圖紅色的部分是因為“隨機性”產生的無數個“不可控節點”,而每一個這種節點都能帶出一個結束節點,結果都不一樣(只是偶爾可能會有值相等的情況),所以搶紅包“不可解”,並且由此你沒法訓練一種技巧或者思路來做到“每次都能搶到n=100的紅包”。

事實上所有棋類遊戲的“棋譜”都是經驗的記錄,只是很多棋類遊戲即使是棋譜也過於龐大,人腦依然無法記錄,以至於還是需要人動腦筋去探索,才保持著樂趣——事實上Alpha Go可以戰勝世界圍棋高手,正是因為圍棋“可解”,只是人腦的算力不足,而Alpha Go的算力完美符合需求;相反的例子是九宮棋,因為就連小孩子也能很快學會記住必勝或必定不勝的方法(即過程路徑),所以遊戲性就大跌。所以好的遊戲,應該是一個極其龐大的多叉樹,其中有非常多的“混淆”導致玩家看不清所有的解,也很難在第一時間確定最佳解,即使相對容易知道最佳解的,也可以在技術上(包括時間限制、操作水平要求等方面)做功夫,讓玩家並不是輕而易舉的就能看破。但是,這種“不能看破”與“完全無理由預測”是完全不同的東西,雖然從某個角度看結果都是“玩家難以控制”。

所以遊戲的隨機性,如果運用在導致整個遊戲多叉樹“不可解”的情況下,那這個用法就是不好的,典型的就是將隨機作為決定結果的因子,比如現有遊戲中的“抽卡”系統,都是不好的設計,玩家並沒法從這個系統獲得任何樂趣(即學不到技巧,也沒法積累經驗),當然抽卡還是會讓玩家高興,因為抽到了好東西,但這讓玩家高興的是獎勵,而不是遊戲本身。

06不好的隨機性會讓玩家面臨“所有可控節點都是死節點”的尷尬

還有一種極為“精妙”的隨機數用法,是用於約束“可控節點”的範圍,通常會出現在一些卡牌玩法的遊戲中。舉個例子:我們把猜拳遊戲改進一下,變成單人遊戲——現在發3張小卡片給玩家,每張小卡片上寫有“石頭”“剪刀”或“布”的一個,玩家出小卡片來代替出拳,而“對手”會出的也是從小卡片中抽一張出來直接放在桌上,玩家要做的就是從3張小卡片中選出一張來和這張抽出來的小卡片進行“猜拳”。這時,由於3張小卡片是隨機發給玩家的,即玩家有可能拿到3張“石頭”,因此在這個猜拳遊戲中,玩家只能出“石頭”,而不能出“布”或“剪刀”,而桌面上那張“對手”如果是“布”,那麼玩家此時面臨的局面就是一個“所有可控節點都是死節點的情況”:

為什麼大多遊戲的“隨機性”設計都是有問題的

無論怎麼選都到不了“好結局”,這還能有趣嗎?當然扯開說一句,這也正是很多FPS遊戲提供一把小刀給玩家的核心原因——當玩家子彈打完之後只能選擇坐以待斃是很爛的遊戲體驗。

由此我們可見,如果要在控制“可控節點”的選擇範圍上下文章,我們的“隨機機制”至少要保障並不是所有的“可控節點”都是“死節點”,這個算法會相當複雜,但並不一定做不出來。


07隨機性與遊戲性關係的歸因謬誤

可見隨機數很難用於遊戲設計中,我們大多遊戲設計的隨機都是不好的,只是玩家“感覺不到”或者即使感覺到了,也說不清楚為什麼不好而已。“隨機性會為遊戲帶來樂趣”這個觀點本身是一個“基本歸因謬誤”誤,上面我們也證明了——“隨機性”跟“遊戲有樂趣的元素”幾乎格格不入,唯一能很困難地插入隨機數的地方也沒法證明隨機數能帶來好玩。我們把獲得獎勵的喜悅錯誤地當做了是“抽獎機制”給出的喜悅,事實上隨機數給人帶來的喜悅和心理期望有非常大的關係——有AB兩個員工,A員工期望工資是10K,B員工期望工資是12K,公司的機制是基本工資10K,獎金0-2K隨機,所有同事一視同仁——月底A和B都拿到了11K的收入,A是高興的,因為超越了他的期望,B是不爽的,因為沒有達到期望——正因為人有期望,所以隨機會帶來所謂的情緒波動,而你給Alpha Go玩這個發工資小遊戲,再怎麼地它的心理都不會波動一下。

總結

當我們看清了設計原理之後,就不難發現——隨機性並不能給遊戲帶來什麼樂趣,甚至會使得遊戲樂趣降低,更不可能“帶來思考深度”,因為一旦隨機了,就沒有任何“思考”可言(經驗和技巧都派不上用)了。遊戲中讓人彆扭的隨機數,正是因為玩家體驗到了“我做出了最大的努力接近最佳路線,但當我走到結束節點的時候發現,這個節點是不是一個好結局是隨機決定的”,即——隨機性讓付出和反饋變得不一致

"

相關推薦

推薦中...