遊戲設計中的數學:基於等級的成長感
然而,並不是每個經驗等級的成長感都是相同的,所以設計一個有趣的系統是非常重要的。許多遊戲並沒有對此思考過多:它們只是隨意拍一個經驗值和等級而已。一般的想法是,你的等級越高,你就需要更多的經驗才能升級到下一個關卡。這是事實,但這只是設計的一小部分。事實上,你必須關注任何玩法元素對玩家產生的影響,並且必須確保你所做的能夠傳達你想要的情感。
我無法完整分析等級系統,但我可以使用簡單的數學方法去探索它的效果,侷限性和設計空間。
為什麼使用等級系統?
從擁有等級系統的遊戲數量來看,真正的問題是“為什麼不呢?”然而,每當我們看到一些非常成功的遊戲時,我們都應該問問自己為什麼它會如此受歡迎。原因在於,這是給予玩家成長感的最直接、最明確的方式。玩家希望看到自己變得更強大,而最好的方法便是呈現給他們許多“不斷變大的數字”:等級、傷害、HPs。玩家花了數小時玩遊戲來變得更強大,這些大數字就是證明! 在許多遊戲中,我們的技巧不能被直接衡量。當然,當我們不斷遊玩《超級馬里奧兄弟》後,回到第一個關卡,並比第一個關卡更快過關時,我們能感受到這種溫暖的成長感。這並不影響玩家回到遊戲起始位置並對1級怪物(即使它們在遊戲開始時給我們帶來了許多麻煩)造成100萬傷害。
但設計師喜歡在遊戲中引入等級還有另一個原因。它們是設計師控制遊戲心流的有效方法。它們也為玩家提供了明確的指示。在遊戲中,沒有什麼方式比通過等級限制玩家速通遊戲的做法更好了。這種人為難度可能會做得非常糟糕,當你這麼做時,遊戲可能會因此而失敗。但如果調得好,它真的很有效。
另一個問題是:如果我們喜歡大數字,為什麼首先要使用等級?為什麼我們不使用經驗值並提供一個“平穩”的成長感? 因為它並不令人滿意 ! 我們想看到數字變大,但我們更想感知到變化。因為這是“工作”之後的獎勵。
就像吃披薩一樣。我們可以在嚴格節食一週後的週末吃披薩,或者我們可以每天只吃幾口批薩。最後,我們可能會吃同樣數量的披薩,但我認為前者的解決方案絕對比另一種更令人滿意。
理解成長感產生的機制
現在我們知道為什麼要使用基於等級的成長感,是時候玩一些數字遊戲了。請注意,這並不是必須的,雖然理解遊戲玩法元素背後的數學原理是我的一大煩惱,但是我認為這有助於更好地理解如何改變某些內容以實現特定目標。同時,如果你不進行計算,你的玩家就會替你計算。在等級系統的基礎是每個等級需要的經驗值。從數學角度來看。打造等級成長感就是在將一定經驗值對映到特定等級的一個過程。
在設計等級成長感時,我們就是在設計這一功能。玩家需要在遊戲中產出多少經驗值(也可以是時間)才能升級? 實際上,當設計基於等級的成長感時,我們通常使用它的反函式 :即給定等級,讓函式告訴我們需要多少經驗值。這通常被稱為經驗曲線。
我們應該察覺到了。如果我們的經驗曲線是線性的,那麼每個關卡都需要相同的額外經驗:第2級需要10點經驗,第3級需要20點經驗,第4級需要30點經驗,以此類推。如果我們的經驗曲線是指數型的,那麼為了升級,我們總是需要比之前的關卡更多的經驗,因此我們在遊戲最後升級的速度會變慢。相反地,如果我們的經驗曲線是對數曲線,那麼在每個關卡中,我們需要更少的經驗才能升級,因此,我們玩得越多,升級的速度就越快。它們都是有效的體驗曲線,一切都取決於你想要的遊戲型別。
在這裡,我們將探索最著名的經驗曲線,指數曲線。從單一概念出發,構造指數曲線。假設你在第1個等級便擁有一定的經驗值:a。為了到達第2個等級,你希望玩家獲取原有經驗的2倍、3倍等等。所以
如上所示,第2級所需的經驗應該是初始經驗加上b倍的初始經驗。對於第3級,我們做同樣的事情,我們習慣於乘上第2級的增量。
在等級 L,它應該是:
最終他可以用如下公式表示:
看到了嗎?一個很棒的指數經驗曲線。但這次你知道它為什麼是這樣的。您知道引數的含義以及如何調整它們以獲得您想要的結果。
根據經驗曲線,我們可以推斷出的一個重要屬性便是等級成長隨時間的變化。玩家在關卡成長中從底部到頂部的速度有多快 ? 玩家需要投入多少時間才能從10級升級到11級?從79到80呢? 我該如何調整特定等級的體驗?
這些都是有趣的問題。我們可以通過觀察經驗曲線找到答案。第一步是反轉函式,得到等級成長函式,也就是等級如何根據經驗值提升
這看上去是難以理解,因為有一些引數干擾。為了便於討論,我們假設(這不合理) a=1。
好多了。現在,我們需要考慮體驗是時間的函式。顯然,我們不知道它的真正功能,但我們可以大致可以知道“我們希望玩家每次能收集多少經驗”。我們是否希望玩家在一段時間內獲得相同的經驗 ? 我們是否希望玩家每次獲得更多經驗? 這是一種非常普遍的做法,通常是在高階怪物或高階任務中給予玩家更多經驗值。
然後,我們可以推匯出一個表示升級速度的函式。
我喜歡推導這些東西,但是,點到為止。重要的是,你要通過反轉經驗曲線並插入一些“經驗函式”,以時間的函式來模擬你的成長。這將幫助你粗略估算升級遊戲所需的時間和精力。
具體案例
在實際案例中,經驗曲線是怎樣的? 我以《RuneScape》為例。
這顯然是一個更復雜的公式。為什麼要這樣做? 我也不知道。然而,我們可以確定它是一個指數函式,與上面討論過的函式精神相同。
《魔獸世界》的公式反而不是分析性的。相反地,我們擁有當前等級升級所需的經驗公式。
這裡的區別是一個難度因素,MXP是L級怪物給予的基本經驗,RF是一個通用比例因素。這個公式從二次曲線開始,然後爆炸成指數曲線(多虧了Diff公式)。給了我們這個奇怪的形狀(注意這是經驗曲線的導數)。
《暗黑破壞神3》中這個公式是個噩夢 (這是一個分段函式)
公式中的X指代的是等級,Y是當前等級升級所需的經驗。至於公式內的常數變數為什麼是這樣的,我也不知道,可能是微調吧。
總結
最後,我希望你能享受經驗曲線帶來的樂趣。有成千上萬種不同的方法來做它們。記住,它不總是指數曲線。時間和體驗是聯絡在一起的,建模體驗曲線能夠幫助你更好地避免遊戲中的“折磨”環節,並讓玩家保持在流狀態中。
作者:Davide Aversa
譯者:噴氣小可樂
原文地址:
https://www.davideaversa.it/blog/gamedesign-math-rpg-level-based-progression/
來源:噴氣小可樂
地址:https://mp.weixin.qq.com/s/5zsd1Y4WQy-Vxqz5QkTuAg
相關文章
- 個人成長中,關於規劃設計的思考
- 設計思維思考——遊戲中的幸福感設計遊戲
- 基於原型的遊戲角色設計方法原型遊戲
- 關於程式設計師成長的一點思考程式設計師
- 基於MATLAB的水果分級設計Matlab
- 遊戲心理學研究:基於發展心理學與社會時鐘的遊戲設計遊戲設計
- 為了成為優秀的程式設計師,我需要擅長數學嗎?程式設計師
- 場景設計中距離感的設計
- 程式設計師的成長和程式碼行數的關係程式設計師
- 遊戲基礎知識——遊戲中“屍體”的設計遊戲
- 同構——程式設計中的數學程式設計
- iOS中基於協議的路由設計iOS協議路由
- 小班同學學習經歷分享(一)遊戲程式設計師成長札記遊戲程式設計師
- Java程式設計師的成長之路Java程式設計師
- 程式設計師的自我成長之路程式設計師
- 程式設計師的成長階梯程式設計師
- 如何在遊戲中設計等構建築?遊戲
- 程式設計師的成長過程中,有哪些階段?程式設計師
- 「Golang成長之路」函數語言程式設計Golang函數程式設計
- 淺談卡牌遊戲中的多卡養成設計策略遊戲
- 競速遊戲的商業化及數值成長遊戲
- 基於Redis&MySQL介面冪等性設計RedisMySql
- 遊戲心理學研究:遊戲中會有品質或等級區分的原因及解說遊戲
- 博弈論是如何用於遊戲中的策略設計的?遊戲
- 遊戲策劃設計中關於遊戲節奏的控制(轉)遊戲
- 優秀的程式設計師需要擅長數學嗎?程式設計師
- 無人機設計靈感來源於螞蟻、甲殼蟲等昆蟲無人機
- 伴隨我成長的程式設計書程式設計
- 基於心理學視角論述遊戲排行榜設計遊戲
- 遊戲中的活動設計遊戲
- 基於風險回報設計的遊戲自由度研究遊戲
- 《創•設計:Abduzeedo靈感指南》中的幾位設計師
- 「Golang成長之路」函數語言程式設計篇Golang函數程式設計
- 遊戲心理學研究:基於格式塔心理學淺談《絕區零》的介面設計問題遊戲
- 基於中臺思想的物流系統設計(一)
- 遊戲基礎知識——“骸骨”元素在遊戲中的設計要點遊戲
- 3、查詢平均成績大於等於60分的同學的學生編號和學生姓名和平均成績
- 寓教於樂:教你學程式設計的 5 款遊戲程式設計遊戲