為非程序員打造的Unity遊戲框架:Playground Project
本文將由Unity的Technical Evangelist,Ciro Continisio為大家分享針對非程序員而打造的遊戲框架「Playground Project」的誕生過程。「Playground Project」旨在易於使用且方便設置,但不限制開發人員的遊戲創意,最初是針對一群11到16歲之間的小朋友製作的。
下面由Ciro Continisio為大家介紹「Playground Project」的由來。
需求與解決辦法
開始創建框架時,我心裡有幾個目標。首先,我想告訴孩子們製作遊戲是很有趣的事情。想給他們一個完整的遊戲開發體驗,但同時不讓技術問題難倒他們。最重要的是,不想限制他們的創造力。
另一個關鍵目標就是框架必須儘可能的阻止出錯,並正確引導孩子。因此我想出了一個小框架並圍繞著幾個基本原則,每次做決定之前必須將其考慮進去:
一套易於使用及組合的單任務組件
非常簡單的場景設置
基於物理的遊戲玩法(好玩!)
簡單的2D(孩子們可以從網上導入其他圖形資源)
自定義檢視面板來檢測設置中的錯誤
提前做好用於顯示生命值和分數的UI
更詳細的來說,這些組件大多都是用於執行單個任務的簡單腳本,因此他們可以被混合使用以產生更精緻的遊戲效果。這些組件的檢視面板都在編輯器代碼的幫助下進行了深度定製,並且提供了大量的設置指引。例如,MoveWithArrows組件在檢視面板底部顯示了一些小提示,並且如果不勾選Orient to direction則會隱藏Look axis 。
用戶界面
說到UI,我預先製作了Prefab可以直接拖到場景中使用,無需任何設置。它將適應不同類型的遊戲並且根據遊戲是一個還是兩個玩家而做出相應的改變。組件檢視面板如下:
UI在遊戲中的效果:
另外它會在左下角自動顯示一個小的庫存信息,顯示可以被拾起的對象數量。在這個例子中,玩家有0個硬幣和一把鑰匙。
條件,行為,屬性
在原先的基礎上進行第一次迭代後,我一直在試圖給Playground Project添加一些額外的結構,因此想到了一些關鍵腳本,用於嘗試解決特殊類型的問題。
框架的核心就是條件,基本上就是if語句組成的組件。他們用於檢查特定條件,如果通過驗證就開始執行一些命令。現在可用的條件腳本分別是Area Conditions (基本上用於觸發,輸入,退出和停留), Collision Condition(碰撞時攻擊),和一個用於捕捉輸入的可配置 Key Condition。未來可能添加更多。
在第一次迭代中,我將UnityEvent下的動作進行分組。儘管它功能強大,但檢視面板中的UnityEvent模塊太過龐大且複雜,很難設置,因為它顯示了目標對象所有的公共屬性與方法。
因此我決定實現一系列只包含一個動作的迷你腳本。條件部分現在有一個簡化的模塊(使用很實用的RecordList開發,詳情請查看Valentin的博文),可以輕鬆使用拖拽來連接各種條件選項。他們都實現了IGameplayActioninterface介面,放在Gameplay Actions分組下。
遵循這種簡化規則,ConditionKeyPress檢視面板的Gameplay Actions 模塊如下圖所示:
布爾值Use custom actions控制另外一個UnityEvent模塊,讓一些勇敢的學生可以獲取UnityEvent的所有變數或方法。
最後,一些腳本被分配在Attributes一組,他們只是對象為數不多的屬性,效率很高。例如,為遊戲對象添加Resource屬性就會將該對象變成可拾取和可堆疊的,會在UI上顯示該對象的圖標或數量,後面通過GameplayAction腳本ConsumeResource來消耗。
示例遊戲
Scenes文件夾內包含了一些示例遊戲,旨在展示各種可以利用該框架實現的遊戲。
Defender這個遊戲用於展示如何射擊物體(激光發射器)或者隨機生成(小行星),也是一個基於生命值的遊戲,玩家的生命值腳本不在角色的遊戲對象上,而是綁定在遊戲環境上。
點擊播放 GIF/1K
Football遊戲是一款雙人足球遊戲,展示如何使用ConditionCollision腳本設置目標,以及當玩家得分時重置玩家和球的位置。
點擊播放 GIF/1K
Maze遊戲用於展示物品收集(這裡是硬幣),如何設置Area Conditions(環境條件),以及如何使用LoadLevelAction載入其它關卡。
點擊播放 GIF/1K
Lander遊戲展示了非典型的碰撞設置,只有碰撞到太空船的特定位置才會引發爆炸。
點擊播放 GIF/1K
最後,Roguelike遊戲展示了如何使用Conditions 和 ConsumeResource創建一個小型「鍛造」系統。商人要求3枚硬幣(帶有Resource腳本)來換取鑰匙(另外一個Resource腳本),鑰匙可以被拾取並用於打開中間那扇門。
點擊播放 GIF/1K
建議將框架發給孩子們之前先移除一部分遊戲,防止他們抄襲。框架的的本意就是希望他們盡情地發揮想像力。
下載框架
更多Unity官方提供的免費資源請看:
重要提醒
Vision VR/AR 亞洲峰會 5折票價僅剩最後幾天。優惠購買從速哦。
VR Master Class 本年度最後一場正在報名中。
TAG:Unity官方平台 |
※這就是由 Android 之父 Andy Rubin 打造的 Essential Phone
※fragment design x Louis Vuitton新番造型特輯,YOHO!Boy親力打造
※Patta x Ruyzdael 打造聯乘款 Rugby Shirt
※Nike Flyknit加持Converse Chuck Taylor All Star,打造不同以往的All Star!
※Ting Meister 打造 Air Jordan 3「Khaki Denim」客製版本
※Dent Kicks Custom 打造 adidas Ultra Boost atmos Elephant 定製配色
※Bodega x Vans Vault 打造 「Retrn Of The Dragon」 聯乘系列
※Jerry Lorenzo 再次打造 Justin Bieber 巡演系列
※Saint Laurent 致意Disco少年、Maison Margiela实验精神依旧、Lanvin打造华丽女装骑士
※NikeLab 為 Roger Federer 打造別注版本 Oscillate Evolve RF
※Coca-Cola時尚動作頻繁!聯合Hype打造Nostalgic Capsule系列服裝!
※Rare Panther x Levi s 打造聯名 Trucker Jacket、Air Jordan 2 全新 「D
※Union Los Angeles攜手 Raf Simons打造極簡主義大片!
※Dent Kicks Custom 打造 adidas UltraBOOST 全新定製配色「Minimal Carbon」
※adidas Originals 為經典鞋款 Campus 打造全新「No Time to Think」宣傳廣告
※Modern Man 打造 Alessandro Michele 紀念 T-Shirt
※Metallica x monkey time 打造聯乘款長袖 T 恤
※《EllenMEN》打造 fragment design x Louis Vuitton 聯名系列特輯
※DMC 打造 Lamborghini Aventador S「Tecno」改裝版超級跑車