打造偉大的工具:VV是如何從這三個領域提升工作流的?
隨著元宇宙概念的火熱,UGC在遊戲行業越來越受歡迎。對於用戶來說,UGC可以讓他們發揮創意、表達想法;對於開發者來說,UGC工具解決了內容生產與消耗之間的矛盾。
然而,好用的工具並不好開發。與創意工作者相比,工程師更習慣於表達技術,因此經常做出讓創作者覺得難用的工具。
此前的GDC演講中,動視旗下Vicarious Visions工具負責人Jeff Stewart講述了這家工作室數十年來積累的工具開發經驗,並表示,以用戶角度做工具鏈比開發優秀的工具更重要。
以下是GameLook聽譯的完整內容:
Jeff Stewart:
假設我希望工作室內的工程師們能夠開發工具鏈,他們可能是新手、可能是剛招聘的畢業生,或者是在不同領域的資深工程師,只不過沒有工具開發方面的經驗,如果我希望他們能夠開發適合很多工作室的工具,或者與我們工作室已存在的很多系統兼容的工具,有沒有人告訴我該如何實現?
經過多年的試錯,我得到的一個經驗是,不要為引擎開發工具,很多人開發工具都是基於引擎考慮的,但引擎不是我們的用戶,如果引擎出現問題,就會變得很無助,讓我們很難做出更好的工具。
當然,嘴上說不做什麼,是很簡單的事,但是,你要做的是什麼呢?我們要為人開發工具,因為我們的用戶都是人,而人類思考問題的方式與引擎是不同的,而且人還會犯錯。
所以這也不好平衡,因為有些工程師可能只想為他們自己打造工具,他們只思考遊戲內容該被如何開發。
那麼,為其他人開發工具呢?這也是不錯的想法,因為你作為技術人員可能要為非技術人員開發工具。但這聽起來就像是UX部門的人在指揮你按照用戶的方式做體驗,雖然好一些,但依舊不那麼令人滿意,因為遊戲研發就是會有這麼奇怪的問題:我們有太多的工程師,你可能是為人打造的工具,但將會有大量的工具,結果既不好用、也不好開發。
所以,我在想,我們真的是在開發對的工具嗎?我不想讓你們做工具,而是做工作流,把所有工具、所有方面都考慮進來,我希望所有人都有一個共同的體驗。為其他人打造工作流,我覺得這個想法是大部分工程師都會在心理上認同的。
但即便是這樣,也太過簡單,想要做到實用是非常困難的,這也是我們Vicarious Visions(以下簡稱VV)的目標,因為我們希望多部門協同,讓這個領域的工程師們快速成功。因此今天的分享主要是希望從我們的過去以及成功汲取經驗,轉化為可以指引未來工程師們的知識。
因為我們的確有過一定的成功,創立VV之後不久我和其他工具工程師打造了Alchemy Laboratory,這是VV公司工具套裝的預備工具,這個工具是圍繞工作流開發的,融合了多個方面的規律,使用者可以混合、匹配不同部分的工具以適合他們自己的工作流程。
比如這是世界開發工作流的默認世界開發工具,我們曾經用它給《小龍斯派羅》和《古惑狼》系列製作關卡。
這是Visual Script Builder,是我們用來開發視覺腳本的。
這個工具套裝里還有其他工具,比如UI、特效、同步、本地化等。
Laboratory是我們在工作流發展方面很大的投入,我們用它得到了非常好的結果,我有幸與很多天才工程師一起合作,他們對於為用戶開發工具有很大的熱情,而且產生了非常好的結果。
我們還開發了Lab Online,工作流和效率被視為我們工作室最大的強項,我們的用戶在與業內其工具對比的時候給出了非常高的評價。
我們並沒有將它的成功歸功於某個原則,因為Laboratory是經過多年工具和工程師積累的結果,其中很多是來自不斷的試錯以及對新變化的投入、與用戶及合作夥伴的溝通,還有些是經歷了挫折、錯誤的開始以及低效率學到的。
因此,我們希望總結過去這麼多年的心得,並給未來指引方向,以藍圖的方式公布我們希望投入開發的是什麼,能夠與資深和新手工程師分享這些經驗。我們製作了工作流研髮指南(workflow development guidelines),雖然最初這是為參與工作流程的工程師而設計,但我認為可以適用於任何人,包括策劃、UX、工具研發者、UI設計等多個領域。
這些工具的技術和指南由三個類別組成,分別是UI與UX設計、工程以及我稱之為創意思想的東西,我們希望工程師們可以把它們當做參照,能用於決策以及團隊討論。
提前聲明,我分享的這些東西只是因為我覺得可能對同行們有用,但它們不是唯一的方式,也不是唯一方法;這些是我們希望的,而不一定是我們已經做到的;這些也不是科學規律,而是根據過去大量的經驗和教訓總結的洞見,沒有做用戶調研,但這是根據我們數據而給出的強烈推薦。
這是一個在線式文檔,其中有些指南最近還剛剛改動過,所以這些東西會隨時間而變化,因為我們的業務、工程師以及學習心得也會變化。
1、UI&UX設計
可能很多人不知道的是,UI與UX設計實際上大部分研究都是在遊戲研發行業之外的,過去十多年這方面的趨勢有很多,但我建議還是聚焦於遊戲研發,因為其中很多東西是指導人們在線購物的,我們希望得到一些可以實現的東西。
這些指南是一些「高光時刻」式的方法,強調的是我們實際上遇到過的問題。
1)通過鍵盤支持提升工作流
這部分工作流程的第一部分就是通過鍵盤支持提升工作流,因為熟練的員工對於將鍵盤提升工作效率有很高的期待,你和工程師可以做以下幾件事:
支持精準輸入。因為用戶可能非常精準地知道防禦塔會發射多少彈藥,以及射擊持續多久,不要用比鍵盤輸入更慢的方式,用戶會感激你給他們工作帶來的提速。有一個比較好的方法是增加多種方式,比如你還可以拖拽或者點擊到某個位置。
用聯想輸入加速數據接入。用戶可能知道某個工具的全名,也可能只知道其中一部分名字,所以你可以通過聯想輸入的方式加速使用者的效率,哪怕是文件搜索框的聯想輸入也可以提升效率。
用快捷鍵加速任務。快捷鍵可以節約使用者的時間,因為它們可以幫助不同的工作流程之間流暢對接。比如使用者想要選擇兩個目標,對它們分組、然後把這組移動,你可以通過分組快捷鍵的方式加速這個過程,通常來說,這些快捷鍵應該避免吸引使用者注意力。
意識到快捷鍵陷阱。你需要意識到,因為使用者會出現單詞拼寫錯誤,所以不要把創建與刪除並列,快捷鍵是一種稀有資源,除非你的工作流有非常不錯的定製分配功能,否則要慎重分配新的快捷鍵,因為這些快捷鍵是永遠存在的,一旦用戶適應之後,再改變就會遇到很大的挑戰。
讓鍵盤支持可以被發現。微軟的辦公軟體已經被很多人熟悉,你可以使用人們已經熟悉的快捷鍵設計你的工具快捷鍵,比如Ctrl S意味著保存,F2意味著進入某種類型的編輯模式。
2)打造整體工作流
整體工作流給人的感覺是井然有序的,是圍繞任務設計的,與用戶其它任務協調。非整體工作流給人的感覺是分散的,甚至會被認為是未完成的。你可以做這些事:
提高曝光率和可尋性。曝光率指的是使用者可以多大程度發現並使用這些功能,可尋性指的是他們可以找到期望的東西,為了提升,你可以把它們放在一起,比如按照任務歸類。這張圖沒有做到,這是Laboratory的世界編輯器,很多東西都是不一樣的,就像我之前所說,這些是我們想要的,並不是我們已經做出來的。
將同類功能放在一起意味著減少了特定距離,比如滑鼠移動、眼球移動,還可以是點擊次數、找到想要功能的菜單層級等等。隨著時間的變化,使用者會對你的工作流形成腦海印象,他們會學會快速找到自己想要的功能,他們還會記得哪些東西沒有試過,以便隨後使用。
避免「倒垃圾」。這些往往出現在設定對話上,在匆忙的UI設計時,我們經常容易將東西堆在一起,因為沒有人知道將它們放在什麼地方,倒垃圾式的設計意味著工作流糟糕的整體性,很可能使用者需要大量的研究才能找到他們想用的工具,冗餘臃腫的設計很容易被用戶忽略。所以,注意你的UI界面布局,提供方便的曝光和可尋性。
理解「先」與「後」。同事們工作的時候腦海中可能已經有了前一步和後一步的概念,在使用你的工作流時可能已經形成了上下文環境,而且很可能會在使用完之後繼續保持。所以,要考慮這樣的意向是從哪裡來的、哪裡是下一步,還是這些環境可以很容易切換?如果用戶使用工具的時候需要投入大量時間切換思維,你可以做的是調整工作流,在不同上下文環境之間給出有意義的數據,避免讓使用者投入大量的輸出工作量。
你可以問自己,用戶試圖完成的更大目標是什麼?因為這很大可能會影響輸入和輸出,因此會影響你的工作流可能產生的結果,與用戶交流是很有幫助的。
2、工程部分
1)嘗試防禦型設計
這裡指的是我們發現比較有用的細節執行方式,你可以嘗試防禦型設計(defensive engineering)。
考慮被濫用的風險,因為用戶總是可能出現不容易察覺的抗拒行為,VV發現開發者們很容易忍受一些東西,相信很多人都知道「默默忍受」意味著什麼。Scott Meier是個著名的程序員,他對於用代碼打造界面有很好的建議,他說「要把界面做到很容易正確使用、很難錯誤地使用」,我很喜歡這句話,而且認為可以應用到工作流程的設計。
因為,如果很容易以「錯誤的方式」做某件事,而且依然可以得到同樣的結果,你應該知道用戶會發現並使用它,並且會告訴他們的朋友。
他們可能會發現捷徑繞過你的工具里的驗證環節,長期以來我們都遇到一個問題,用戶們往往在記事本上修改數據,因為工作流中的工具做起來更難,因此這是我們必須解決的問題。一旦有這樣的問題出現,用戶們就很大可能會尋找捷徑,這種事屢見不鮮。
避免「暴露所有東西」,這一點更多的是聚焦,減少用戶需要投入注意力的地方。現代工程學有很多是人們不了解的,我們發現,當用戶感到困惑的時候,他們就會開始對UI亂按一通,想知道這些互動會有什麼結果。出現這種情況的時候,意味著用戶對於功能是困惑的,他們需要幫助,想要走出困境。
將你的UI做成子集很重要,用戶只需要翻滾滑鼠和點擊即可完成操作,80%的用戶可能都只需要這個子集,對於少數需要使用複雜技術的同事,他們可以使用UI的另一部分,或許可以是高級對話選擇之類的東西。
避免依賴部落文化(Tribal Knowledge),因為用戶知道做某些事的正確方式是個謬誤,遇到這種情況往往會傷害他們的自信心,尤其是對於和其他同行一起工作的工程師來說,「部落文化」有時候包括一些你不應該做的事情,在你的代碼庫考慮避開「工程師陷阱」。比如這些陷阱是你的工作室都知道的,而且知道如何避免,但與合作夥伴工作的時候,他們大概率不知道這些陷阱,VV是兩者之間的橋樑,發現和糾正這種錯誤並不好玩。
容忍意外。儘可能容忍一些可能讓人們丟掉工作的「意外」,Laboratory對於出錯有很高的承受力,它有自動保存和恢復功能,能快速從崩潰中恢復。不令人意外的是,自動保存和恢復功能最初的設計,是我們工作室為了預防突然停電而做的功能。
2)考慮內容模型
這可以理解為以用戶的角度思考,你要了解用戶使用工具的時候期待的是什麼,Jack Nilsen是調研公司的分析師,這裡我引用一句他寫在文章里非常有用的話,「系統應該說用戶聽得懂的語言,使用用戶熟悉的辭彙、短語和概念,而不是系統術語。」
我覺得這也非常適用於工作流,它們要用內容創作者的語言說話,而不是系統語言,這裡我認為可以加入「內容模式」的概念,指的是用戶在他們的工作流程中表達想法和打造內容的概念與關係。
比如分層展示的關卡設計工作流,它的展示層級就是關卡、布局、分組、目標和內容模型,非常直觀,所有用戶都知道怎麼用,而且它們與在關卡打造時的功能映射做的也非常好。
另一個案例是同步工具,我認為優秀的工具應該充分利用所有機會降低工程上的複雜性,它們應該填補人們思維模式中的空白。
這個UI展示的是視覺效果工具,你可以在上面將兩條線向左右拉拽,但在下方,這個工具實際上使用spawn和kill關鍵幀做的模型,兩者本來是沒有關係的,所以需要工具讓它變得有意義。
優秀的工作流讓創作者與內容緊密連接在一起,讓用戶將更多的注意力放到他們打造的內容而不是runtime上。這裡工作流當中至少有兩個呈現,一個是runtime呈現,一個是用戶的內容模型,這是兩個相反的極端,如果你作為工程師能最小化兩者之間的距離,就可以大幅降低其複雜性。
3、創意思維
我將這各類別稱之為創意思維,通過這一部分,我希望呈現的是很難量化,但依然存在的東西,它對用戶滿意度是有影響的,也就是「Touchy Feely」ROI,我還想增強一些常識,因為它們很容易被忘掉或者忽視,但我還希望給同行們帶來啟發,讓你的工程師們使用他們獨特的經驗打造創意過程。
1)提升用戶信心。
如果用戶對工具有信心,他們可以不用擔心去嘗試很酷的新東西,如果他們沒有信心,可能就會直接避開工作流,而且可能會告訴同事一起這麼做,並且不會告訴你。
我們發現,用戶在以下情況是有信心的,比如工具做到了他們要求的事情,他們可以快速改變想法,不用擔心給其他人帶來影響,比如給下游同事造成比較糟糕的數據,如果你的工作流沒有指出這些錯誤,他們可能被同事指責的時候都沒有意識到出了問題。
你可以做一下事情提升用戶信心:
確保重做、取消是有用的,這或許是提升用戶信心最重要的一件事。
仔細思考的話,這兩個功能比只是糾正錯誤重要多了,它可以讓人們嘗試東西並立即放棄糟糕的想法,或者可以通過複製的方式實現多個想法。它可以通過降低重複工作的方式節約時間,降低了犯錯的代價,它甚至影響了Laboratory的架構,所有的插件都因此受益。
支持源控制。這聽起來可能與用戶信心無關,但通過這種方式,你可以幫用戶解決很多的困惑,尤其是你的數據有比較複雜的依賴性的時候,如果他們忘掉其中某一個環節,就會導致下游的同事遇到問題。如果他們沒有任何輔助手段,這種情況就很容易發生,這很容易讓用戶產生懷疑。
做縝密的數據驗證。不要允許用戶為下游同事輸入糟糕的數據,比如輸出數據的時候,你可以指導他們避開糟糕的參照,或者根本不存在的參照物。用戶可能不知道什麼是對的或者安全的,因此,你應該在工作流當中加入糾正的功能。如果某些事出錯了,找到它,並告訴用戶哪裡錯了、如何解決,這很重要。
考慮預覽改動。你可以預覽改動,如果做出的修改比較多,幫助用戶看到會發生什麼,不要增加額外的成本,給他們改變主意的機會。你可以在一個改變發生之前或者之後做,比如這裡,你可以在真正開始做之前進行預覽,以避免很多的錯誤。
另一個案例是我們的視覺腳本(Visual script builder),如果你把一個節點拉到下一個附近連接起來,工具就會向你展示這些連接點會發生什麼,除非你改變主意或者重做。
Laboratory的Curve編輯器也有類似功能,滑鼠放在一個按鈕上,它就會向你展示這個按鈕能夠做什麼。
發生錯誤時,展示安全路徑。因為,沒有什麼比不知道如何解決錯誤更糟糕的事情。讓錯誤給用戶帶來幫助,發生錯誤的時候,允許用戶回到熟悉和自信的狀態,以便他們的工作可以繼續。
如果需要糾錯,確保下一步清晰明確,比如他們是否需要重新載入、重啟?還是再次嘗試?他們是否需要調整數值?鼓勵用戶在糾錯工具上與你互動,我說的不是崩潰之後發送一個bug報告,而是清楚明白的告訴他們,當出錯的時候,他們是否理解意味著什麼。
2)為潛在價值挖掘功能請求
這一條我覺得對於工程師和創意人員都很有用,你要把用戶的每一個請求當作特殊情況,比如多個不同的工程師報告了同一個問題,你需要根據情況給他們不一樣的解決方案。有時候用戶可能是將上一個工具的錯誤方法帶到了新工具之中,你需要幫助用戶解決他們可能預料不到的問題,或者他們只是不知道如何請求,缺乏對應的精準表達方式。
如果有人告訴你,「我只喜歡做後期」或者「我只想做Excel表格」,很可能意味著有溝通代購,你很可能需要深挖背後的原因才能了解全部真相。了解真正的原因是重要的,因為它可以讓你以更有意義的方式重新思考這個問題。
這時候,你要思考的是,為什麼用戶擔心這個?或許這是我的理解與他們有差距?用不同的方式思考問題,或許這個問題可以做成更通用化的方案,讓其他人也能受益。他們想要的用戶體驗是什麼?是否有無意帶來的後果?
如果用戶告訴你,他想要改變這個領域的默認值,從1增加到1000,你照做了,但它是否會導致預算超標?你需要謹慎,因為的確有這種情況發生。
3)讓用戶與內容緊密連接
我們希望創意人才感覺並看到玩家會在這裡看到和感覺到什麼,讓探索簡單快速地成為一個創意空間,我們希望增加用戶在這裡看到和感覺的時間,減少他們的操作時間,這可以通過幫助創意人才注意細節的方式實現。
用上下文的形式向他們展示,以便他們可以從玩家視角思考,允許他們探索大量的想法,或者深度探索一些優秀想法,我認為工具可以幫助開發者創新。
一個比較好的案例就是UGC工具,它們的作用就是,讓人們覺得自己在快速創作具有創意的優秀內容。
支持直接操作。這意味著可以直接對內容作出自然的改動,而不是用其他中介。比如這裡,你可以直接拖動圓點做出修改,而不是像之前那樣輸入改動範圍,發送指令,然後才能實現,這裡減少了很多複雜的步驟,讓事情變的更直觀。
你可以讓用戶從不那麼直接的數據選擇,切換到直接可以拖動並應用的直觀工具。
增強內容,而不是讓它變的模糊。比如,不要對選定物體進行著色,而是划出它的輪廓,不要影響紋理,這樣就不會模糊用戶想要創作的內容。
盡量不要在你的工具上直接展示代碼,因為無論從任何方式來說,它都很難讀懂,長期以來我們都是這麼做的,但後來到了必須重新思考的時候,因為它變的不可控。所以我們增加了可視化效果,並把它縮小到一個窗口,用其他的空間展示有意義的操作。
隨後,我們覺得可以做的更好,我們的工具套件是用WPF寫的,更加豐富,而且更容易與之互動,而且提供了更多的能力,所以我們讓遊戲本身可以存檔。
增強內容還意味著讓已經存在的信息視覺化,比如我們的一個工程師打造了這個非常酷的視覺化工具,每次跳躍,都會有表格的變動,還有信息可以展示重力加速,這可以讓用戶快速處理非常重要的跳躍,並讓他們聚焦於自己的遊戲。
推廣「混合板思維(Mixing Board Thinking)」,這裡我指的是同時可以調節多個數值和結果,這種方法可以讓用戶擺脫非常複雜的思維模型,不用過多考慮數據結果、數據之間的結構等等,而是可以安全的看到混合之後的結果。
這是另一種混合板形式,比如你想要調整角色面部表情的時候,可以選擇右側的不同數據,你只是在混合面板上的一些按鈕就可以直接看到效果。
支持「複製、轉變、組合」。這可能是最抽象的一個,但我認為是最精準的表達,Kirby Ferguson在他的視頻中提到,所有東西都是混合的,任何創作過程中,「複製、轉變、組合」都是基礎的。
複製對於內容創作是非常基礎的操作,它可以讓你避開枯燥的重複工作,作為工程師,你能做的就是在黏貼的操作時支持複製,比如數值、特定物體以及用戶可以與之互動的大多數東西。
轉變就是創作多元化版本,這也是我們探索創意想法的載體。做創意的時候,有時候開發者知道自己想要做的是什麼,但還有些時候,他們不知道要做的是什麼,只是在不斷地嘗試,工具可以讓探索帶來啟發。所以,你可以做的是支持隨機化,支持用戶在對比重複的情況下快速改變內容。
組合概念可以帶來獨特性以及創新。這裡向用戶展示哪些可以組合、哪些不能組合,你可以通過工具幫用戶加速組合,比如我們的視覺化腳本可以通過拖動節點的方式讓用戶看到很多種組合,這些方式可能是他們平時想不到的。
工具可以用有意義和聰明的方式理解組合方式,它可以選擇儘可能少的meta數據做出有意義的組合,我覺得modifier在這方面也是不錯的案例,用戶可以選擇他們想要影響的最終視覺效果,插入多種數值,去掉不想要的改變,因為他們可以視覺化看到結果。
對於「複製、改變、組合」,我說的東西沒有什麼是全新的,但對於技術創意人員來說,我認為工具可以通過有意義的方式講很多東西組合起來。
我希望從2 2=4,發展到樹 2=更多樹,工程師們可以帶來很大的貢獻,因為他們已經理解了很多的概念,我們擅長讓不兼容的變得兼容,確定一些規則,為了讓用戶與內容更近,我們應該通過這樣無縫的工具,盡量減少讓他們分心的東西,做出真正非常酷的內容。
通過以上三種方式,我們在讓工程師處於創意思維模式,讓他們以用戶的角度思考,了解用戶習以為常但他們不熟悉的方式,以上就是今天分享的所有內容。
····· End ·····
GameLook每日遊戲產業報道
全球視野 / 深度有料