Project 1: 戰鬥型遊戲
目的

經由本專題製作, 熟悉UNITY3D基本遊戲設計技巧, 並可自由發揮嘗試加入AR或網路連線機制

遊戲主軸:

開發一個有主題的戰鬥型遊戲(如坦克大決戰), 並訂定合理的過關條件例如在限定時間內, 殲滅所有敵人, 或打敗敵方的King, 或收集必要的過關物件. 並提供合理的分數計算. 可以將遊戲主題更換成類似結構的遊戲:例如: 可以將坦克或敵人更換成其他攻擊性的移動物體, 如吉普車, 魔法師, 生氣的豬, 喜歡搗蛋的恐龍, 但原則上要具備上述的遊戲條件(操作物體的移動, 攻擊敵人, 達到過關的目的), 並提供合理的遊戲故事大綱 

分組方式:按目前分組(10) 每組資工組分成兩TEAM , TEAM開發一套( 但共用同一組視覺設計, )兩TEAM之間可以有差異化

基本項目:
  • 設計有主題的遊戲場景
  • 要有一個起始畫面,遊戲選單用以選擇二種以上不同的主角
  • 使用虛擬鍵盤, 正確移動主角
  • 使用prefab, 動態產生物件(如敵人, 新武器, 過關物件)
  • 使用粒子系統製造各種效果(至少要有兩個地方以上到, 如煙霧, 爆炸, 飛彈)
  • 時間限制機制(如時間到, 則game over, 或越快完成可以計算分數)
  • 處理碰撞事件(收集新武器, 醫務箱補充生命值, 撞到建築物, 敵人)
  • 使用SKYBOX、設定太陽光(方向應會隨時間變化)跟二個以上的燈光、用SHADOW。
  • 計算分數與排名
  • 遊戲操作介面: 主角控制虛擬鍵盤, 武器控制虛擬鍵盤(含發射扭) 更換武器介面, 雷達系統(顯示敵人位置分布)
  • 顯示:主角生命值, 分數, 時間. 其他
  • 遊戲選單:主選單, 暫停選單, 遊戲結束計分系統
  • 敵人:具有自動產生敵人的機制(分批產生, 每幾 分鐘產生一批, 每次產生N個敵人, 敵人需要有N種類型的差別, N >= 5), 並在主角靠近時, 開始追蹤並主動攻擊主角
  • 敵軍自動追蹤主角的AI
  • 音效的播放
  • 記錄最高分數, 或是分數排行榜
  • 需要能運用鏡頭, 控制視角, 需要運用鏡頭, 並視情況調整攝影機視角,
  • 可發揮創意, 按情況加入GPS或g-sensor機制

參考資料GPS: http://unity3d.com/support/documentation/ScriptReference/LocationInfo.html G-sensor:http://unity3d.com/support/documentation/ScriptReference/Input-acceleration.html

補充說明:
  1. 遊戲介面: 方向鍵, 發射扭, 坦克即時生命值, 分數
  2. 可以更換武器
  3. 遊戲選單:主選單, 暫停選單, 遊戲結束計分系統
進度及Check Points
    • Design Students
    1. 每一組將自己的工程組成兩隊, 每一隊都要做同一個題目, 設計組將提供你們需要的場景/3DModel/與視覺
    2. 完成下一週的必要項目
    3. 希望本課的一些高手站出來,p 挑戰加分題目!
    4. In you own group, split the Engineer team evenly into two groups, both will do the Tank War homework and you will use the same design material from the Design team
    5. Follow the homework assignment, complete the next week’s milestones.
    6. Encourage you to do the bonus assignments!
    7. 第一週進度及作業
    • 遊戲企劃規格書:" 含遊戲大綱, 遊戲操作介面設計, 遊戲流程,
    • 遊戲開發分工解說:> 實際小組工作分配列表
    • 初版視覺設計
    • 遊戲主場的prototype :如 簡易場景中, 坦克移動並與敵人對打
  • 繳交作業項目:
    • 第一版企劃規格書 (需包含:初 版視覺設計說明, 視覺mockup)
    • 遊戲分工說明書
    • proto type screen shot 3-5張 與簡易說明(兩組資工組分開個別提供)
  • CS students

第一週進度及作業

    • 遊戲企劃規格書:含遊戲大綱, 遊戲操作介面設計, 遊戲流程,
    • 遊戲開發分工解說:實際小組工作分配列表
    • 初版視覺設計
    • 遊戲主場的prototype :如簡易場景中, 坦克移動並與敵人對打
    • 繳交作業:
    • 第一版企劃規格書 (需包含:初版視覺設計說明, 視覺mockup)
    • 遊戲分工說明書
    • proto type screen shot 3-5張 與簡易說明(兩組資工組分開個別提供)

第二週:

    • 第二版企劃規格書(修訂版)
    • 視覺設計完成
    • 遊戲主軸功能完成(遊戲選單, - > 遊戲操作介面 -> 定時產生敵人(AI),及相關輔助道具/破關物品 -> 對戰 -> 結束計分 )
    • 繳交作業:
    • 第二版企劃規格書
    • 遊戲主軸功能screen shot 3-5張 與簡易說明(兩組資工組分開個別提供)

第三週:

    • 視覺設計微調
    • 相關細節實作完成(如視覺特效,音效), 遊戲難易度調整
    • Android手機實際測試,
    • 遊戲完成
    • 繳交作業:
    • 遊戲操作介紹說明 (含3-5張screen shot)
    • 企劃規格書最終版(如果有繼續修訂的話)
    • 原始專案檔(兩組資工組分開個別提供)

虛擬鍵盤範例:

參考範例() *PARTICLES NOTES

    1. GUI的遊戲選單, (Menu.scene)示範, 點選Play之後, 會load Tank_Sample.scene
    2. 粒子系統, (爆炸, trailer,效果) 遊戲物件prefab 中: ball 跟 explosion都有內含一個粒子系統component,或直接執行發射子彈,就會看到效果 ( 或拉到場景中, )
    3. 動態產生場景物件: 在tank_Sample.js中, 一執行會根據資料結構, 產生城牆的物件
    4. 2D螢幕座標轉成3D物件座標機制: (touchAndMove.js) 在遊戲執行時, 使用滑鼠點選畫面中的3d物件, 並拖拉即可進行物體X與Z軸的移動

參考範例 ()

這個範例主要提供主角與怪獸互動的範例, 最值得參考的部分是主角的移動方式: 有兩個zip file: 

在這個範例中,除了 示範基本功能外,(同學執行起來後, 相關主角運作原理及怪獸AI細節可以參照原始遊戲製作pdf) 執行方式: ASDW控制主角方向, 滑鼠點選畫面射擊子彈 
我加入了下面兩項功能(EVAC_City_Javascript_version.zip) 

    1. 虛擬鍵盤,( VirtualKeyboard .js) (執行時, 見左下角,須要讓螢幕最大化, 位置才會正確), 如果在虛擬鍵盤範圍內, 會將滑鼠點選時的螢幕坐標, 轉成X跟Z為-1 到 1之間的3D向量值.(見console印出來的訊息) 同學們可以運用該資訊來控制場景中的主角.

GUITexture跟GUIText原件示範, GUITexture跟GUIText元件可以用在畫面固定位置的資訊顯示(如固定顯示在右上角的玩家生命值, 分數顯示) 也可以用在依附怪獸身上以顯示資訊, 並跟著怪獸走, 此處為跟著怪獸走的範例