1. 程式人生 > >如何高效設計遊戲——塔防遊戲設計方案

如何高效設計遊戲——塔防遊戲設計方案

版權所有

轉載須註明

作者:Einsphoton     任江楓

任何帶有利益性而未經過本人同意的轉載必究

前言

 目前國內市場的遊戲普遍為一些帶有“快餐特色的RPG”遊戲居多,並且這一型別的遊戲的設計思路已經發展成為遊戲開發者們“月經”一樣的存在,有很多人“取經”,也有很多人“傳道”,設定有些人對於這一設計模式倒背如流。但是一旦公司裡提出製作一些其他型別遊戲的專案時,就會讓許多設計者苦惱。

 因此,在這裡我們一起來探討一下,某些型別遊戲的設計思路。

 例如,我們將要設計一款“塔防”遊戲。

 恐怕有些已有過“塔防”設計經驗的人或許會經歷過這樣的體驗:若一款塔防遊戲總共有20

關,平均每關有100波敵人,那總不可能要對這2000波敵人一點一點進行手動配置其屬性以及難度吧,況且還要和另一邊的“塔”的資料以及經濟體系相結合。如果是單機遊戲,這一工程或許還有人可以接受,但是考慮到近期某些“SNS上的社交塔防”,那麼其波數是恐怖的指數級增長,最後恐怕不止20000波。再者,對比國外一些優秀的塔防遊戲,我們會發現,國內的作品會有一個通病,就是如果下一波敵人的型別是“速度型”的,結果這一波的難度會大增。形成這一問題的原因是,多數設計者僅僅單純的把“HP”作為難度遞增的一個衡量。所以如何想一套既便利又可行的方案(或者這裡我們稱之為“演算法”)就是我這篇文章接下來要分析的事情。

一些充足的準備

 在做一款遊戲的設計之前,我們要清楚地知道,這類遊戲將會出現哪些屬性元素,針對這些屬性元素之間的關係從而制定方案。

 在這裡我們假定將要設計的遊戲為:

 型別:塔防遊戲 環境:SNS社交網路 針對人群:學生、白領

 遊戲目的:休閒娛樂、社交為主。

 (設定環境為SNS社交網路僅僅是一個參考,接下來要講的思路也適合做單機、做手遊的情況。)

 接下來,我們還需要知道我們要針對哪些內容進行設計。按照一般的塔防遊戲的設計思路有:

 系統設計

 一些塔的種類設計,種類相剋,種類結合出不同的效果等。由於這些設計是要憑藉諸位設計者的創意以及遊戲需求而定,並且本著“豐富我們的遊戲創意”的原則,在這裡就不干擾各位設計者了,並且這也不是本文要講的重點。

 數值設計

這個環節我們也是考慮最基本的情況,並且設計者們也可以根據自己想要的效果合理新增內容,思路一致。

 基本的數值屬性有:

攻擊力ATK

決定單位建築對敵人所能造成的傷害程度

攻擊頻率FRQ

決定單位建築在單位時間內的攻擊次數

攻擊範圍RGE

決定單位建築的攻擊有效距離

敵人

生命HP

決定敵人單位所能夠承受的最大傷害

速度SPD

決定敵人單位在單位時間能能夠移動的距離。

 清楚了我們將要設計的元素有哪些之後,我們就需要建立一個模型,來統一這些元素。為了使我們設計的方案更有效,我們先來一起確定一下我們的設計方向,或者稱之為目的。

 設計意圖:

 能夠設計一套有效的演算法模型,可以減少不必要的工程浩大的手動填寫。

 為日後調整資料提供通道。(注)

 為開發部門提供清晰地邏輯框架,並且方便計算機執行敵人資料的生成。

注:上面所提到的數值調整通道,按照本人的理念有兩種型別。

 引數調整。既是在數值框架中建立各模組的對映關係,然後留有調整引數,後期可以調整這一引數來達到想要的效果。

優點:高效率,有邏輯性,應變性強,便於管理。

缺點:準確率不是很高,但不糟糕。

 區域性可調。既是在數值設計上,關聯性不是很強。

優點:準確性強,可變空間大,設計靈活。

缺點:效率低,不易於管理,應變性不高。

 下面我們來設計這一模型。

模型的建立

 許多設計者或者製作人一聽說到“模型”一詞,就會聯想到“數學模型”,頓然感到無比的高技術性,從而被“模型”所嚇倒。其實本人對此的理解很簡單,只要抓住自己的設計意圖,有了方向自然會出方法,見神殺神。

 在這裡還需再一次強調我們的設計意圖,我們是要設計出一套方案來供開發部門或者是計算機來執行我們討厭的“填表”的,所以如何能夠找到這樣一個可以準確或者說大概描述出敵人以及塔的實力的變數,是我們接下來要做的工作。

 擬定一個理想的環境,在這個理想的環境我們先不用考慮一些因素對於我們模型的影響程度。

對於多個塔攻擊一個敵人,我們有

         HP=FRQ1*ATK1*ELP1/SPD+FRQ2*ATK2*ELP2/SPD+FRQ3*ATK3*(ELP3/SPD)+ ……

整理得

        HP*SPD=FRQ1*ATK1*ELP1+FRQ2*ATK2*ELP2+FRQ3*ATK3*ELP3+……

(其中ELP= Effective Length of Path 有效路徑長度,既是塔的攻擊範圍與路徑的交集)

由於防禦建築總是“攻擊一個目標緻死之後緊接著攻擊下一個目標”這一特性,在多個塔攻擊多個敵人的情況下,我們可以假設每個敵人的間隔足夠小以致塔的攻擊可以連續進行。這樣,我們就可以把多個敵人(無論是同種敵人還是混合的敵人)都可以看做是一個大的敵人來處理。公式同上。

 至此,我們就可以引進一個變數SETthe Strength of Enemy Troop)來描述敵人的強度,有

SET=HP*SPD

同樣我們也可以用SET來形容塔的強度

SET=FRQ*ATK*ELP

在理想環境下,ELP基本可以近似看做塔攻擊範圍的半徑

SET=FRQ*ATK*RGE

誤差分析

 至此模型已經基本建立完畢。但文中經常會出現“近似”“理想環境”“可看作”等詞,這會讓許多讀者抱有懷疑的態度,至少它看起來不是那麼“看似精確”。這裡我要說明幾點:

 首先,這裡的“不精確”與模型的適用程度聯絡不大。這就好比我要去超市買一個冰激凌,我本以為是5元一個,但結賬的時候才發現原來是6元,那我再補一元錢就好了。相對於此,經過初步計算本應該是5個塔才能打過這波敵人,但實事需要6個,那就再造一個就好了,我們完全可以在經濟體系上為玩家放寬鬆點來補償。(這種情況適用於SNS型別的塔防)

 其次,誤差僅僅就是一個偏移量,由於敵人的間距以及ELP造成的,我們完全可以在建立等式的時候把這個偏移量補上,從而使得式子“看上去嚴謹、精確”,這個偏移量可以進一步分析求解,也可以根據實測來求解。(這種情況適用於單機塔防,嚴格控制難度和經濟體系)

 最後,關於“看上去嚴謹”這事兒,我想說點題外話。

 我有一個朋友,也是做遊戲設計的,但他是管理層的。在設計遊戲的時候他總是過分強調“資料”、強調“計算”、強調“嚴謹”,他的每一步設計都要到處去找資料支援,以為這樣就能設計出好的遊戲,結果卻總是與意願相悖。這是因為他沒有注意到一點“在出了一些原則性設計是基於資料的計算之外,大多數的設計都是基於體驗的”。我們要明確的是,我們設計的遊戲是給人玩的,而不是給機器玩的,你的資料計算的再準確,如果玩家不領情,一切都是白搭。有些時候越是嚴謹的遊戲越沒有玩點,因為嚴謹會讓一切看上去都是情理之中的必然事件,就缺少了遊戲的娛樂性。

模型的使用

 有了之前我們一起建立的模型,我們現在還需考慮如何去使用它。

 首先我們可以拉這樣的一張表,來決定遊戲的總軸壽命:

地圖編號

定位

難度

波數

備述

1

新手

簡單

120

幫助玩家熟悉

遊戲以及道具

2

180

3

240

4

成長階段

中等

300

幫助玩家熟悉

高階的系統玩

法,任務道具

獎勵豐富,使

玩家對收費道

具產生依賴,

養成良好的消

費習慣。

5

360

6

420

7

480

8

540

9

600

10

660

11

720

12

780

13

高手階段

840

此階段玩家已

對遊戲有所了

解,也正是玩

家消費的關鍵

點,需要給予

充分的“產出

”獎勵。

14

900

15

960

16

1020

17

1080

18

1140

19

1200

20

1260

21

1320

22

1380

23

專業

艱難

1440

一個充滿挑戰

的階段。

24

1500

25

1560

彙總

21000

之後我們再分別制定防禦單位的能力數值和敵人的能力數值,單位為SET,為了方便起見,我們就設定有一個塔,3個等級。