php centos shell apache 程序员 Firefox 微软 云计算 java linux Python Ubuntu google Windows wordpress nginx Android mysql 开源 编程

《遊戲設計師修煉之道:數據驅動的遊戲設計》一1 1遊戲玩法和遊戲數據

1.1遊戲玩法和遊戲數據

玩家在玩遊戲期間執行的動作構成了遊戲玩法。每種遊戲類型都有它自己的一組動作,盡管許多遊戲共享公共的動作,比如,在屏幕上四處移動物體。簡單的遊戲要求玩家執行的動作較少,而復雜的遊戲可能具有許多動作。例如,在經典的街機遊戲《Pong》中,玩家只需在屏幕上向上和向下移動控制手柄,以攔截一個移動的球,並把它彈回給另一位玩家(參見圖11)。在第一人稱射擊遊戲中,主要關註的是通過遊戲世界移動一個角色,並向AI(人工智能)控制的敵人(在有的死亡模式中有時是其他玩家)射擊。可能有多種不同類型的運動方式,比如奔跑、行走、跳躍、倚靠、蜷伏等。還有許多種不同的武器,玩家可以在玩遊戲期間收集和使用它們。

image

隨著遊戲變得越來越復雜,涉及的動作也變得越來越復雜。例如,在角色扮演遊戲中,玩家要執行許多活動——從探索世界到交戰,到與非玩家控制的角色(NonPlayer Character,NPC)交談,到在商店中購買和銷售物品,再到求解謎題。一些模擬遊戲可以讓玩家想象他們在駕馭飛行器或者開著賽車,而其他遊戲則允許玩家建造金融帝國。在這樣復雜的遊戲中,玩家要做大量的工作,並且要做出許多決策。玩家可以反復地玩這些復雜的遊戲,這是由於遊戲世界中發生事件的多樣性而導致每個結局都與上次玩遊戲時不同。

1.1.1簡單的設計和復雜的設計

在所有情況下,無論是在簡單的遊戲中還是在復雜的遊戲中,確定遊戲玩法的工作原理都是設計師的職責。在簡單的遊戲中,設計師經常直接與程序員打交道,以決定事件在遊戲中是如何發生的——從乒乓球移過屏幕的速度,到球拍在與球接觸時施加了多大的力等。簡單的遊戲通常依靠隨機性防止遊戲變得非常容易預測,除了指定事件發生的概率之外,設計師很少能夠控制機會因素。
在更復雜的遊戲(例如,第一人稱射擊遊戲和實時戰略遊戲)中,設計師通常需要提供關於遊戲世界以及其中包含什麽內容的相當多的信息。例如,如果遊戲中有武器,設計師就不得不考慮諸如射擊速率、造成的傷害、每次裝填的彈藥量等之類的事情。在非常復雜的遊戲(例如,角色扮演遊戲和戰爭遊戲)中,信息量非常龐大,並且可能要花很長的時間來進行平衡,以確保任何一支部隊都不會過於強大,並且沒有哪種玩法總會取得成功。
在簡單的遊戲中,通常沒有太多的信息(或數據)需要設計師處理,因此把所有的一切都硬編碼進遊戲引擎中。更改代碼以改進玩法通常不是太困難。不過,在更復雜的遊戲中,將會有多得多的數據,最好保持將數據與遊戲引擎分隔開。這樣做將允許設計師在測試期間根據需要調整值,而無需重新編譯代碼,因此可以在遊戲中執行更改並對其進行測試。重新編譯代碼需要花費時間,並且會使程序員和設計師在這個過程中都無所事事。因此,對於更復雜的遊戲,將把數據保存在單獨的文件中,設計師無需重新編譯代碼即可訪問和更改它們。一旦準備好交付遊戲,就可以把最終的數據直接納入遊戲引擎代碼中,使得陰險狡詐的玩家不能操縱它。

1.1.2遊戲數據

本書重點關註的是設計數據密集型遊戲,並且討論設計師在生產期間必須創建和維護的不同類型的數據。對於設計師來說,遊戲數據可以分為4大類:圖表和表格、關卡/地圖布局、腳本以及對話。

圖表和表格(chart and table)是指關於遊戲中的物體(例如,武器、怪物、財寶、制作、角色生成等)的值及其他信息的列表。表格特指在其中操縱圖表數據以執行遊戲動作(例如,戰鬥決議、魔法攻擊、買賣物品等)的方法。
關卡/地圖布局(level/map layout)是指如何在二維或三維空間中創建遊戲場地,以及如何在它們上面放置物體以使玩家與之交互。
腳本(script)是指用於改變遊戲世界的狀態、構造對話以及觸發遭遇的方法。
對話(dialogue)當然是指遊戲世界裏的角色所說的話,它也指在玩遊戲期間出現的其他文本字符串(例如,當玩家高亮顯示某個物品時出現的關於它的描述)。
創建所有這些數據可能是一項具有重大意義的任務,並且保持定期更新設計文檔,使得整個團隊知道他們正在負責相同的設計是設計人員義不容辭的責任。

延伸阅读

    评论