[遊戲企劃] 立方星艦 CubicCraft
太空模擬 真實物理 編程控制 競技遊戲
前言
著名的沙盒遊戲Minecraft可以地圖中盡情發揮創意,建造出各式各樣的建築,自己沒有花太多時間投入,更多的是欣賞別人的作品,有時看別人造出各種載具,如船艦或星艦甚至機甲之類作品的時候,總會想如果真的能在遊戲中駕駛這種巨大的艦艇應該滿酷的。(後來發現某些MOD還真的可以)
後來又接觸到Besiege自製攻城武器遊戲,可以操控機體甚至還能飛上天,但只以幾個按鍵控制整台機體,還是覺得有點力不從心,如果能夠以程式化控制每個運動元件,例如輪子的轉速、螺旋槳的推進力,是不是就能更細膩的控制整台機體呢。
因為工作的關係,常常涉獵到程式教學的平台,用遊戲的方式包裝程式教學還滿棒的,讓完全沒有學過程式的人不會感到畏懼,但學習的內容稍嫌簡單甚至有點幼稚,不外乎是往前走幾步、轉個彎、拿到寶藏之類的,年齡大一點的學生我都不好意思拿出來教了,有沒有適合程式教學、又夠有學習深度的遊戲呢。
構想
結合自己的三大興趣物理、程式與太空,大學時學習過一些數值模擬,寫程式在電腦中模擬粒子受力之後的運動軌跡,多幾顆粒子綁定再一起就變一個固體了,用3D的畫面畫出來就會比較吸引人,再加上要達成的目標就變成了遊戲,以下將對該遊戲的背景設定、遊戲模式,還有從中可以學習的內容做介紹
[背景設定]
遊戲世界(後稱CC宇宙)所有的物體如機體以及環境物,都是由一顆顆的礦石顆粒所構成,礦石主要有黑灰白紅黃藍六種,各有代表一種物理的領域,礦石經過鍛造結合後才能被人為所控制進而組合成機體,雖然礦石的設定是為了遊戲性而虛構的,但是所有關於機體運動狀態以及與環境的互動,都是嚴格的參照真實世界的剛體力學模擬而來。
故事劇情方面,玩家一開始扮演的是一位宇宙軍事學校中的新生,隨著劇情的發展將與各個教官、學長及同學互動,他們會給你所需的各方面知識以及各種挑戰,逐步地解鎖各種新的關卡、機體、環境、與任務類型。
[遊戲模式]
在遊戲中,玩家可以扮演駕駛機體的飛行員、撰寫機體控制程式的程序員,設計機體的工程師,或者設計賽道的分析師,而玩家所製作出來的程式、機體與賽道都可以放到社群,與其他玩家分享交流。
最先接觸到的任務類型是競速,換句話說就是學習如何讓機體移動,了解每個推進器對機體運動的影響,進而通過在賽道中連續的檢測點,當然任務類型不僅限於此。
[學習內容]
在此遊戲中,如果沒有程式的話機體是完全不會動的,如果要做出手動控制的程式,要先讀取鍵盤的動作,打開對應推進器的開與關,最後才能夠使機體移動,不過當然會事先準備好預設程式,不會一開始就要玩家自己寫。
在CC宇宙中,每個礦石都是質量相等的質點,礦石組合起來的機體,是物理中理想的剛體(rigid body),而每一個推進器都會提供穩定的施力(force),對剛體施力之後剛體又會做何反應呢,高中物理時學過但沒看過的,在遊戲中實際體驗過會有更深層的理解。
由此延伸而來,如何讓機體能夠感知賽道訊息後,在不需要人為操控的情況下完成任務,這涉獵到了自動控制的領域,自己也是花了好一番功夫,才琢磨出kernal機體的自動導航。更進一步的,如何找出讓機體通過關卡的最佳解,或設計出最適合一個關卡的機體,這可能就涉及到機器學習的領域了。