試著了解Grids Pro
July 31, 2017
Grids Pro是一套相當棒的外掛,當時趁著特價時買下,從官網中看到此外掛的開發團隊利用它進行了一個月的一天一款遊戲開發。從傳統的四方格到六角形,從2D空間到3D空間,各式各樣類型的小遊戲,都可如期(一天一款?)的完成。就是看上了這樣的宣傳,加上促銷,也不論當時是否有開發此類型遊戲的需求,就直覺的買下。但如同其它多數特價時所購入的外掛,沒有時間和需求的情況下,也就只是買下來後放在那,並沒有進行任何使用,說起來是很浪費的。
而近期一直嘗試用F#開發的促使下,在完成了簡單的貪食蛇後(並沒有到達遊戲的階段,但還算是蠻成功的Demo),就在思考要進行另一款簡易遊戲的製作,並且,要將束之高閣的外掛拿出來使用。思考一陣子後,決定利用Grids Pro進行和Hoplite該遊戲的規則相似的遊戲製作。
在預想中,Grids Pro的易用應該可以有效的幫助開發。但升級到了Grids Pro 2,感覺完全走了樣。雖然一直都沒有在用一代,不知道二代到底調整了些什麼。但從官方自己給出的敍述,似乎做了很大幅度的調整。而從其它外掛使用者的討論留言來看,都針對第二代給出了很負面的評價,在多數的負評中,都一致的認為易用性不如第一代,文件非常少等。學習曲線的陡升,讓第二代的泛用性大幅的降低。
看到了這些評論後,雖然明知道第二代可能會很難上手,但基於外掛開發者的建議和對於第一代版本的維護來考量,決定還是從第二代展開。花了不少時間後,仍是不太理解,但大致知道要怎麼起頭。
說實在的,在嘗試的當下大致能夠體會為什麼第二代會被其它開發者抱怨的這麼嚴重。探索的途中,也不禁說出了不少惡毒的話語。雖然在解開的外掛裡可以看到非常多的範例,但這些範例說實在的很雜亂。在沒有教學的情況下,只能逐一的去看程式碼片段。而產生Grid的方式又很多種,不確定哪要選用做為開始。而第二代用了很多數學的概念,若是沒有仔細了解數學的部份,要使用真的很不容易。更不用說為了要實作Collection為主的Grid用了一大堆的Generic和Interface,複雜度可說是多了不少級距。
從官方目前僅有的數篇和第二代相關的文章不難看出著重在其特有的視覺化編輯。此篇就針對視覺化的方式如何製作出四邊形棋盤和六邊形棋盤做了一個很基本的介紹。真的是很基本的介紹,因為照著文中的方式進行後雖然可以得到相對應的棋盤,但接下來仍是一片空白,不知道要怎麼展開。
當然,這也可能是自身的理解力很弱所造成的。但如果外掛的開發者可以就以圖型化的操作生成多寫幾篇教學文,則可以帶領其它的開發者進入二代較為複雜的世界。像在第二代中最主要的概念-形狀(Shape)和轉換(Map),這部份就很容易混淆,但藉由著墨於視覺化的操作,應該可以快速讓其它開發者了解到它有哪些強大的能力和要怎麼使用這些能力。
花了不少時間在範例和視覺化界面中,也稍微的看了下程式碼,終於大致了解要怎麼利用圖像化工具協助產生Hoplite的棋盤。
Hoplite的基底是由一棋盤組成的場景,此棋盤的大小若是直接用Grids Pro 2 (GP2)裡的Hexgon產生,它是等距的,類似於圓形的範圍,但這會和Hoplite定義的棋盤大小不符合,Hoplite的棋盤是長條形的,也就是說只藉由單一的生成是無法完成的。這裡就要強調GP2強大的地方,它可以進行合集的操作加上向量的操作,白話的來說就是可以將二個棋盤組合後進行位移、旋轉等,達到設定出Hoplite 棋盤的範圍和方向。
Shape和Map的視覺化操作相當可惜的並沒有好好的被闡述,藉由摸索雖可略探一二,但稍微浪費一些時間且終究還是有很多不確定的部份。雖然此外掛的開發者一直強調在補API端的文件,但API文件其實並不直覺,若是能有數個篇幅的教學,必定能讓學習的曲線下來不少。
說真的多數的遊戲主要用到四方形和六角形的棋盤,若是能有多個實例,像是回合策略遊戲的製作,或是三消遊戲的製作範例,簡易但詳盡的教學,必定有所幫助。但在其開發者目前沒有閒暇時間可以進行情況下,只好自己將Hoplite這樣簡易的遊戲製作出來,並將GP2的使用記錄下來,從製作中了解如何使用此外掛,以利於往後棋盤式的遊戲製作。
有了以視覺工具為切入點,配合Hex棋盤的特有坐標的制定,Hoplite的同類型遊戲Demo的製作可以有個起頭了。接下來要進行的就是規則面的撰寫,配合UniRx的事件流和F#簡潔的語法,正式展開此Demo的製作。
++ Grids Pro 2的學習相當不理想,故以放棄告終 ++