類彈球遊戲關卡難度量化要素:關卡元素,位置,生命值

遊資網發表於2019-06-03
類彈球遊戲關卡難度量化要素:關卡元素,位置,生命值

本文是對於糖果連彈以及類似的彈球遊戲的難度量化嘗試。在設計關卡時,嘗試根據關卡元素,位置,生命值等因素,量化分析關卡難度,抽象出調整難度的引數,為關卡設計做指導。

本文主要討論量化思路和部分具體的演算法。目前無法直接使用,需要進一步完善:

EXCEL版傳送門(https://pan.baidu.com/s/1jHUdVgi)提取碼:9ebk

一、整體思路

1.評估一個場面的難度,一方面從場面自身來說,需要考量當前場面對玩家的威脅度,即場面壓力;另一方面,從玩家解場的角度來說,是玩家的解場難度。

2.場面壓力——決定於:總方塊數,總方塊碰撞數。

3.解場難度——決定於:場面反彈度,當前場上的元素分佈,發球位置是否有利,玩家的球數5個維度。

4.拆解分析每一項數值,再分別針對每一項的情況從不同維度動態調整關卡難度。

二、場面壓力計算

1.一個方塊在碰撞數不變的情況下,它的威脅度隨著下落逐漸增長,因為距離擊敗玩家越來越近。

2.方塊從出生到最底行,每下落一行會有一次被碰撞的機會,也就是最高層的方塊被碰撞的機會越多,因此威脅度越低。由此兩點定義每一行的威脅度係數。

1)首先拍定各層碰撞值和行係數:

類彈球遊戲關卡難度量化要素:關卡元素,位置,生命值

2)再根據各行元素數,和各元素生命值,確定各行的碰撞值。

第N行碰撞值=第N行元素總生命值*N行係數。

類彈球遊戲關卡難度量化要素:關卡元素,位置,生命值

如上圖中,關卡的碰撞值為:

類彈球遊戲關卡難度量化要素:關卡元素,位置,生命值


三、場面反彈度計算

1.當一個圖形在地圖上的位置確定後,根據他的位置和形狀,劃分3種區域

1)完全反彈區域

類彈球遊戲關卡難度量化要素:關卡元素,位置,生命值

2)不完全反彈區域

類彈球遊戲關卡難度量化要素:關卡元素,位置,生命值

3)完全不反彈區域

類彈球遊戲關卡難度量化要素:關卡元素,位置,生命值

各反彈區域反彈係數:

類彈球遊戲關卡難度量化要素:關卡元素,位置,生命值

各形狀元素對應的區域型別如下:

類彈球遊戲關卡難度量化要素:關卡元素,位置,生命值

類彈球遊戲關卡難度量化要素:關卡元素,位置,生命值

類彈球遊戲關卡難度量化要素:關卡元素,位置,生命值

2.以一格為單位面積,首先抽取實際場景中的空位置,再分別計算8X7=56個位置(扣除最下面一行)中每個位置形狀的反彈度,然後再相加,得出場面總反彈度。

以正方形為例:

類彈球遊戲關卡難度量化要素:關卡元素,位置,生命值

進行幾何面積計算。其他形狀不再列舉。最終得出每個元素的反彈度。

類彈球遊戲關卡難度量化要素:關卡元素,位置,生命值

類彈球遊戲關卡難度量化要素:關卡元素,位置,生命值

上圖中計算得出反彈度如下:

類彈球遊戲關卡難度量化要素:關卡元素,位置,生命值

四、最大通路與發球位置計算

1.思路

1)元素的分佈對難度的影響,最關鍵的在於當前玩家的射擊通路,所覆蓋的方塊的多少,以通路所達頂點處為準,在此下方的方塊所佔比例越大,難度越低。反之越高。

2)發球位置的優劣,在於它與通路入口的相對位置,進入入口時的角度與水平角度差值越小,越有利。

2.通路演算法

1)遍歷最底行,選取該行空位,從第一個空位開始,依次進行以下判定。

2)判斷空位正上方的位置是否是空位,若是,則繼續往上判定;若不是,則判斷左右兩側是否是空位,找到空位繼續往上迴圈執行判定。

3)最終取通道數最大的一路走法作為當前的最大通路。

3.通路價值

找到最大通路後,取通路的終點作為基準點,計算在此點所在行一下的所有行的碰撞值,作為衡量通路價值的標準。

4.發球位置價值

判定通路入口所在列與發球位置所在列的差值絕對值,角度越靠近45度價值越高。

五、場面佈局分散程度

1.思路:單純考慮場面佈局的難度,理論上在相同數量的方塊數下,可接觸面積越大,解場越容易,反之越難。因此,決定場面佈局解場難度的關鍵因素就是方塊的分散程度。

2.計算場上每一個方塊與其他方塊的距離間隔,所有間隔數值相加,得到分散程度的衡量數值。

類彈球遊戲關卡難度量化要素:關卡元素,位置,生命值

六、根據場面難度動態調整掉落

需要經過多次測試,得到一個各維度的標準值,進而在超過或者低於標準值時,進行減少或者加大難度的調整。整理只給出調整方向。

類彈球遊戲關卡難度量化要素:關卡元素,位置,生命值

作者:石睿
專欄地址:https://zhuanlan.zhihu.com/p/32396932

相關文章