演出遊戲系統核心分析

演出遊戲系統核心分析

備案

布袋戲

小眾梗

現成角色圖片多

但是拿到授權非常困難

超異能英雄

多重時空梗

可以利用已經有的劇情

但是拿到授權非常困難

超異能英雄+殭屍

大眾梗

必須使用非常節省的圖片風格

只使用技能不使用圖片避開授權

其他

系統架構圖

演出遊戲系統

招式系統

希望做到能由玩家標定及上傳投票

資料結構

  1. 類型:主動,被動。前者必須由玩家啟動,後者每一回合都會補充。
  2. 目標及範圍。
  3. (招式的)防禦屬性:提供來招式互撞時候的防禦,它的紀錄方式跟角色的屬性相同。ex: Dark +100;Light -100;Armor -1。
  4. (招式的)攻擊效果:是一個效果清單。ex: Slow 3回合;BlockMagic 1回合等等。
  5. 飛行速度。
  6. 顯示名稱。
  7. 使用特效。

特殊招式範例

  1. Charger: 加大技能等級.
  2. IronSkin: 防禦力與攻擊力
  3. Fear: 吃恐懼為力量。
  4. Invisible: 除了自己之外。不會顯示在畫面上。
  5. Locate: 尋找能力。
  6. RemoveMemory: 移除掉Log
  7. Electromagnetism: 控制機械.
  8. BlockMagic: 不能使用技能.
  9. PaintFuture: 知道作戰結果.
  10. Generation: 快速補血.
  11. Give: 給予生命.
  12. Weak: 枯萎.
  13. Strength: 拿取大型物件.
  14. Telekinesis: 遠端控制物件.
  15. StopTime: 消除所有人的移動力.
  16. Through: 穿過障礙物.
  17. Shuffle: 改變別人的技能.
  18. Flight: 快速移動(直線飛行).
  19. Speed: 快速移動(僅限路地)
  20. Radiation: 提高溫度.(光/爆/電)
  21. Fire: 提高溫度.
  22. Freeze: 減緩速度.
  23. Ice: 降低溫度
  24. Melt: 融化金屬.
  25. Electricity 電力
  26. Converse: 用語言控制對手.
  27. Manipulate: 立即控制對手.
  28. Injection: 植入行動.
  29. Google: 知道所有人的位置.
  30. ReadMind: 知道對手的技能.
  31. Pretend: 偽裝.
  32. Copy: 複製技能.
  33. Absort: 吸收能力.(對方能力會消失)
  34. Plague: 瘟疫.
  35. Illusion: 除了自己之外顯示其他的場景.

招式動畫

  • 來源物件:用來避免與自己碰撞。
  • Skill的名稱及指標:用來運動這個招式

攻擊及擊中系統

流程

被擊中:出招對玩家的影響。取得玩家身上的UnitData來計算。

屬性:標定角色及技能的屬性

招式本身要不要有UnitData,還是直接使用SkillSetting?

戰鬥系統

作戰的攻防系統。

畫面

  1. 角色A,
  2. 角色B
  3. 動畫:各種招式是有飛行速度的,從蓄力,發出,飛行,到擊中,招式互撞會需要不同的時間。
  4. 選項:蓄力,使用招數。
  5. 狀態與說明

流程

  1. 系統初始化,連結各項介面。
  2. 戰鬥初始化,傳入並建立角色的貼圖。取得角色資料,角色的招式資料。
  3. 刷新選項,依照玩家資料更新玩家的選項。
  4. 等待角色輸入選項。依照選項建立特效物件。(輪流,假如是玩家角色,就等待輸入,否則就是自動決定)
  5. 判斷勝負。等待離開。

大地圖系統

讓各角色可以在地圖上移動。

參考資料

  1. 中山立志傳:主角在目前的據點上,當有移動命令時。主角會移動到新的據點直到結束。
  2. 台灣大戰:在全國資訊圖上,玩家的位置為該位置區域的中心。在軍略地圖上,玩家的位置為該軍略區域的中心。在區域地圖上,玩家的位置在目前所在戰區的據點上。當玩家按下據點時,玩家的位置就會移動到該據點。
  3. 小林丸指揮官:使用MainUpdate來更新所有物件的位置。船艦透過引擎來使用動力。使用物理碰撞來擊退自己。請參考:https://github.com/NDark/KobayashiMaruCommanderOS/wiki/MainUpdate
  4. Zugfahrplan:列車分為兩個資料結構,列車資料,列車顯示資料,後者才是真正顯示位置的資料結構。由UpdateTrain的管理器負責創造及更新,每個列車會依照目前的時間,找到列車表上的兩站,再用兩站的位置,內差出最後的位置。

資料結構

  1. 單位現在位置。
  2. 單位可見與否。
  3. 單位狀態:未指定,已經初始化,出生中,啟動中,閒置中(未啟動),死亡中,已死亡。
  4. 單位類型:靜態物件。
  5. 單位使用的圖片。

關卡讀檔系統

架構圖

UnitDataInDataCenter

參考資料: https://github.com/NDark/Ntust2013Unity_GitHub/wiki

  1. UnitData : 綁在UnitObject上的Component,僅是用來指到UnitDataStruct上。實際的資料都存在GlobalSingleton.DataCenter.Dictionary<UnitDataStruct>上.
  2. UnitDataStruct: 實際上各角色的資料,要綁在DataCenter上的原因是不希望因為換場(從大地圖到戰場)的關係而需要重建。其中固定資料的部分是連結到另一個UnitDataSetting串列,本資料結構只有個資料會變動的部分。
  3. UnitDataSetting: 角色資料中不變動的部分,關卡系統讀入的時候就會建立一份。
  4. Skill: 角色所使用的技能表,本表也是不變的部分,就跟角色設定(UnitDataSetting)一樣,關卡讀入時建立一份,各物件(角色或技能動畫)有用到技能的話,都會來這裡查找技能的資料。

屬性資料系統

讓系統可以透過透過一個單一的管道存儲資料。

要存取一個資料分為兩個標籤一個數值,如下所示

  1. CATEGORY:CHARACTER_,SCENE,PLAYER,GAME,SYSTEM,UNIT_
  2. LABEL:ITEMSIZE,ITEM[i],NAME,HITPOINT,STATE,HP
  3. VALUE:內容,統一以String儲存。

AI系統

是一個依據事實的判斷系統。

  1. PERIOD(label)
  2. ASSIGNMENT(label)
  3. ACTION(label)
  4. LOCATION(label)
  5. AgentManager
  6. Agent: Name
  7. State(variable): Condition/ Action/ Fighting.
  8. Condition: Type,Content

因此一個Agent要存哪些資料在資料系統裡面

  1. CATEGORY = CHARACTER_<AgentName>
  2. OBJECT_NAME = Character_TestObj1,設定物件名稱
  3. STATE ,設定目前狀態
  4. PERIOD,設定目前進度
  5. ASSIGNMENT,設定目前任務
  6. 設定目前任務會需要用到的資訊
  7. 將使用的CONDITION放在Agent中。

內容開發者要寫甚麼:要寫程式。沒錯,由於判斷式本身就是內容的一種,開發者最好會寫程式,否則程式人員還要為了企劃人員開發一個腳本"語言",讓企劃人員寫那種程式。這簡直是脫褲子放屁。第二,內容開發者主要是在訂定,Period,Assignment,及Condition的對照表。由AgentBase去把正確的Condition找出來。運作之後,做出該做的事情。

劇情系統

劇情系統:讓玩家可以填寫劇情。

參考資料

  1. 中山立志傳的劇情系統:分為劇情,劇情條件,劇情內文。其中條件與內文都是單行式架構,也就是單行內可能有命令(包含條件),也可能是僅是內文。而若是命令,其參數就會出現在下一行。
  2. 小林丸指揮官的劇情系統:https://github.com/NDark/KobayashiMaruCommanderOS/wiki/Conversationsystem
  3. 沙漠商旅2的劇情系統:相較於一般冒險遊戲都是使用兩個對話對象的做法,沙漠商旅2的劇情系統採用一個對話對象(對方),及敵我兩個對話框的模式。因此猜想他劇情腳本系統可以簡化一些。只需要處理條件與選擇肢的部分。玩家的選擇肢的出現是依照玩家的屬性作為條件而出現。按下選擇肢後,就會有一連串的玩家與對方的對話出現。其中選擇肢與一般對話的按鈕是相同的介面。這樣又可以再度簡化。也就是有些玩家對話屬於選擇肢,那麼只是跳到一個對話序列上,而某些玩家對話不是選擇肢,那麼只是往下跳一步。這樣可以讓劇情腳本的作法再度簡單一些。
  4. 台灣大戰的劇情系統:每個畫面(Take)包含索引,延遲時間,左大圖,右大圖,左對白,右對白四個參數。每個劇情(Story)則包含,索引,起始畫面索引,結束畫面索引。當需要播放劇情的時候,就依照劇情的索引找到每個畫面要播放的內容,如果延遲時間是0,則代表停住(Pending),剩下的腳本停止播放。

系統設計

ConversationManager

 

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s