李巖
電子游戲行業的發展自上世紀70年代至今已經經歷了50年的時間。隨著人類電子計算機技術的發展,越來越多新的技術被應用于電子游戲的開發,不但給玩家帶來了優質的游戲體驗,同時也推動了全球游戲行業相關企業的發展。
自上個世紀90年代起,有別于二維空間的三維空間游戲(簡稱3D游戲)進入了玩家的視野,并憑借著更曠闊的探索空間和沉浸式的體驗,逐漸取代了傳統2D游戲,2010年,“次時代圖像基礎”概念的推出,使得法線貼圖,高光貼圖等技術在三維游戲中得以應用,使得三維空間的游戲畫面更加逼真,在一段時間內,傳統3D游戲制作技術中的“手繪貼圖技術”,和利用新的貼圖光影技術的“次時代”技術成為了三維游戲中兩種主流的畫面風格。次時代技術由于制作方法復雜,最初只有少數人可能進行此項技術的運用。2015年后,隨著Substance Painter,Blender,Zbrush等更多更加簡單方便的圖像制作軟件的推出,使得原本復雜的圖像技術門檻進一步降低,越來越多的人逐漸掌握了這項技術,同時也促進了游戲行業整體的發展。
在于技術領域,不同的應用環境決定著需要用不同的語言來編寫軟件程序,目前市面上主流的Java,Html,C,C++,C#等語言應用在程序開發,網頁開發,游戲開發等各個領域。而相對而言,程序所要學習的內容門檻較高。我是一名游戲策劃人員,在游戲行業從業多年,對程序領域有略微的了解,但是對于完全沒有程序基礎的我來說,利用傳統程序語言開發游戲是一件非常困難的事情。如何才能夠快速掌握編程技術,高效的完成游戲開發也是我這些年來一直研究的課題。“可視化編程”作為一個“新”的概念,被很多想從事游戲開發的愛好者所關注和研究。
隨著計算機技術的發展,編程的門檻也逐漸降低。而可視化編程將成為未來游戲開發的一大趨勢。目前主流的游戲開發引擎當中,Unity3d和unreal游戲引擎最為出名。而在早先,Epic(Unreal引擎制作商)就在其公司旗下的Unreal4游戲引擎中引入了“藍圖”的可視化編程系統。“藍圖”系統是基于C語言技術的龐大的編程系統。它將原本通過編程編寫代碼來實現的功能編程一個一個的節點,通過對節點的鏈接進行程序功能的實現。
相對而言,Unity3d游戲引擎雖然早先在畫面技術上落后于Unreal4,但是憑借其靈活易上手的特性,相比虛幻4擁有著更多的用戶群體。而Unity引擎基于C#編程語言,需要通過額外的編程工具進行編程,并沒有屬于自己的官方可視化游戲引擎。隨著Unity3d 2018版的官方資源商店的推出,原來越多的用戶所開發和制作的資源被放到了官方商店上。而Unity官方資源商店中的“Playmaker”可視化編程插件,擁有者較高的人氣。Playmaker是一款類似于Unreal4藍圖功能的節點式可視化編程插件,和Unreal4引擎的藍圖功能所不同,Playmaker將很多已經實現好的功能封裝到一個節點中,從而大大的提升了游戲開發效率,而Unreal4需要若干個子節點才能夠完成Playmaker一個節點所需要的內容。
Playmaker插件相對出名的第二個原因在于,PC(電腦游戲)平臺著名的獨立游戲《Inside》以及暴雪《爐石傳說》中的部分功能都是通過Playmaker進行實現。Playmaker插件是由第三方軟件開發商“Hutong Games”所開發的一款專門用于Unity平臺的可視化編程插件。它為用戶提供了一整套的可視化的解決方案,讓用戶可以無需編寫腳本代碼,就能控制Unity中的游戲對象,從而實現功能和交互邏輯。Playmaker的使用邏輯非常清晰,游戲中的物體如果要進行某種行為,我們都可以把它細分成一個由多個步驟組成的序列事件。
其基本的邏輯為,在Unity的場景(scene)中創建一個物體(Creat Object),將該物體拖到Playmaker的可視化編程面板中,即可開始對該物體的功能編寫。在Unity引擎中,一個物體所要實現功能是通過一個個的組件來實現的。有的組件是官方自帶的,而更多的功能時通過腳本組件來實現的。利用PlayMaker所實現的功能其實也是一個組件,功能和腳本功能類似。
經過了對Playmaker插件一個月的探索和研究,已經對此插件所能夠實現的功能有了基本的了解。該插件所使用的命令與C#編寫基本能夠很好的吻合,而且非常的靈活,代碼和PlayMaker可以同時對一個物體元素進行功能的添加。
Playmaker目前最新版本為P17版,距離初版到現在已經經歷了十個年頭,目前的功能已經相對完善來應付游戲的開發。打開Playmaker插件的界面,我們可以將這個插件分為四個部分:第一部分為Playmaker插件的初始界面部分,在此界面,我們可以對插件進行安裝,論壇快速訪問以及版本更新確認等。當用戶在運行Unity3d時,該界面將自動彈出。當插件安裝完成后,會在Unity3d的頂部操作欄中添加了一個“Playmaker”的選項,點擊這個選項,可以看到編輯器、編輯器窗口,組建功能、工具按鈕以及幫助按鈕。雖然Playmaker的圖標是一個中文的“玩”字,開發他們的公司又叫做“HutongGames”,但是卻是一個外國公司,只是而愛中國文化。
插件的第二部分是編輯器界面,這個界面是一片空曠的區域,這個區域的功能和藍圖很像,我們將物體拖拽到這個區域當中,即可對物體進行功能的編程。在編輯器界面中,分為四個模塊,其中包含:狀態機、狀態、事件、變量。在狀態機中,我們可以對當前狀態機的名稱進行編輯(類似需要實現的功能)。我們在外部對已經編輯的功能進行debug調試,從而測試軟件的相關功能。
第三部分是動作瀏覽器。所謂動作菜單就是可以利用Playmaker完成哪些命令。在Playmaker的動作瀏覽器中,包含了大部分開發所應用的命令(這里稱為動作),從播放動畫,播放音樂,數組。攝像機。角色,ui,操作等很多部分進行了分類。在每一個類型中,包含了若干命令,當點擊每個命令時,在動作瀏覽器的下方會顯示當前名利個的預覽,其中包含里面相關的參數。此功能類似正常寫代碼部分的參數命令。我們將這些命令拖拽到編輯器窗口中,即可對當前物件實現選定命令的功能,非常的方便。
第四部分為全局變量功能。在Unity的游戲開發中,我們將變量分為本地變量和全局變量,所謂本地變量就是當前物體能夠調用的數值。而全局變量就是在這個項目當中,所有的元素都能夠調用的數值。而這個數值是可變的。所以稱之為變量。變量有很多種類型,其中包括bool布爾值,Float浮點值,Int整數值,String文本值,GameObject保存的物體等等。如果善用變量會讓游戲的開發事半功倍。
在本學期的游戲創意工廠項目開發中,我們工作室的《幻境》,《靈光劍舞》等項目通過Playmaker插件進行了開發,大大的提升了開發效率。而《永恒青空》這款項目是采用一半代碼一半playmaker編程的方式進行開發,也取得了成功。在實際的項目開發中,Playmaker為我們的工作室項目開發效率帶來了很大的提升。也希望有更多的游戲開發者能夠使用這款插件來提升開發效率。