[GDC2017]地平線的超強工具鏈
07-08
[GDC2017]地平線的超強工具鏈
來自專欄遊戲開發套路
Creating_a_Tools_Pipeline_for_Horizon_Zero_Dawn
【地平線 超強的工具鏈】
作為3A級產品,豐富工具鏈是標配
- 資深工程師
- 首席工程師
- PS. 一般的level分等: Associate 或者Junior (見習、初級)— engineer — senior — advisor — principle
- 演示一段宣傳視頻
- 思路
- 深刻理解我們為什麼要重構我們的工具
- 我們怎麼做
- 如何交付
- 概要說明
- 以前遺留的工具
- 重構
- 構建3D編輯器
- 編輯的數據
- 其他工具
- 我們已做到哪一步
- 起初在2013年11月時的狀況
- 各種支離破碎的小工具,各自獨立
- 框架獨立、各種語言
- 迭代時間長(20-30分鐘)
- 工具使用者(同事)不滿意
- 遠落後於其他競爭對手的水平
- 數據格式
- 編輯時明文格式
- 除了Texture和音效,都是這樣
- 在Game中再轉換到二進位格式
- CoreText編輯器
- C# 寫的
- 程序員都想重寫以前(愚蠢的)代碼,呵呵
- Maya插件
- 狀態機編輯器
- 基於節點
- 生成Lua腳本
-
- 其他小工具
- 拼貼圖
- 粒子編輯器
- ...
- DebugUI
- 這個很有用
- 在《殺戮地帶》時開發的
- 就是抓幀工具
- 能看到每個DrawCall中的面片數定點數等
- 貼圖、渲染狀態、Shader
- 遊戲中的Debug菜單,很方便的貌似
- 可以框選,查看任何區域的的GBuffer
上面演示的是以前版本的工具
下面進入新項目
- 地平線項目全新開始
- 代碼層面目標:
- 創建一個構建工具框架
- 沿用Decima引擎庫
- 讓工具更易用
- 編輯器層面目標:
- 使用者的幾個需求
- 特定概念:編輯上下文
- 可以重用組件
- 統一一個編輯器
- Decima編輯器
- 場景關卡編輯器
- 地圖
- 腳本編輯器
- 遊戲邏輯
- 對話編輯器
- 劇情相關
- 從音頻入手
- 相對獨立
- 工作流可以測試新框架
- 音頻組之前工作就是基於節點圖方式
- 兩個原型
換人講工作流
- 基於新工具鏈的一套新的工作流
- 3D編輯器迫切需要
- 之前沒有用過3D編輯器,都是基於Maya?
- 分析一下利弊
- 遊戲即編輯器
- 迫於時間壓力,呵呵
- 進程間還是進程內?
- 分析一下利弊吧
- 進程內的好處
- 快速
- 數據同步修改
- 進程內的缺點
- 不穩定
- 需要添加代碼隔離(宏定義之類)
- 進程間的優缺點
- 我們編輯器採用進程內方式
- 退出遊戲狀態,立馬就可以編輯植被
- 是不是很方便
- 擺放怪物
- 遇到的問題:
- 遊戲讀取的是二進位數據
- 解決方案:
- 遊戲中沒有樹形層級關係
- 遊戲Obj是扁平化的關係,目的是為了效率高
換人講Undo功能
- 撤銷系統
- 各種操作的通知記錄
- 都記錄在案
....未完待續
推薦閱讀:
※[筆記][大地圖管理]The Witcher 3: Optimizing Content Pipelines for Open-World Games, GDC2015
※GDC 2017 有哪些看點?
※《428被封鎖的澀谷》:少女被綁案竟玩出了85+1種結局!
※如何看待守望先鋒獲得GDC年度遊戲?
※GDC 2017 技術選薦合輯