目錄 Table of contents
這篇其實是心得雜談,沒甚麼實作經驗分享。
上週五六日我們團隊參加了實體的遊戲展,這是我們第一次參加這種實體展,也算是第一次開放讓一般玩家試玩的機會。
之前聽朋友說有一種測試方式是用雙螢幕輸出不同內容,一邊是單純的遊戲畫面,另一邊是會顯示 log、fps 等各種 debug 資訊的遊戲畫面。
這樣一來就能在不打擾玩家的前提下有效紀錄所有發生的問題。
我覺得寫這個好像很好玩,於是決定在這次參展試試。
雙螢幕輸出的成果
總而言之先上成果,具體來說我到底希望做到什麼樣子,不過我照片拍很少所以也有點難正確地示意。
我們遊戲是第一排的 Bionic Bay
以玩家視角來看,我們攤位上其實就只有兩個螢幕、兩隻手把、兩隻耳機在桌上的配置。
而實際上的這個時候的我是位在背板後方的小房間內,看著其中一台是筆電的螢幕來檢視玩家當前有沒有發生任何異樣。
主要檢查點有:
- Console 有沒有噴error ?
- Frame Rate 在哪個場景是否突然不穩?
- 長期運行之下有沒有 Memory Leak 的狀況?
- 玩家是否需要顯示提示?
以結果來說執行上還蠻成功的,唯二當下遇到但沒處理好的事情是:
- 雙螢幕輸出的垂直同步出現問題,某一邊的螢幕會無法正確垂直同步導致螢幕撕裂。
- OBS 錄影設定沒搞好,最後錄影變成還是錄玩家看到的遊戲畫面那一端
實作與執行
雙螢幕輸出
具體實作很簡單,
參考這篇官方文檔即可: https://docs.unity3d.com/Manual/MultiDisplay.html
In-game console
功能寫出來之後我才想到,好像可以接個 in game console,這樣子在玩家的遊玩過程中甚至可以偷打指令。
於是翻了各個github開源專案,找到一個最能滿足我需求的repo,功能極強:
https://github.com/DavidF-Dev/Unity-DeveloperConsole
於是就花一天接進去了。
沒教學
然後展出前幾天又想到,我們到現在教學都還因為各種原因生不出來,但現場口頭告知感覺很破壞體驗。
所以最後幾天才很隨便地寫一個文字提示系統,然後又開始爭論到底哪裡要顯示哪裡不需要顯示,破不破壞沉浸感,會不會讓玩家覺得自己被當白癡(戰神的案例)。
最後就…全部手動按。
往好處想,手動按也可以是一種測試項目,可以量化得知到底哪些提示是不需要,哪些是必須的。
也好在我可以雙螢幕躲在後面按,玩家比較不會覺得是被工作人員提示到,甚至因為有接了 console ,基本上想打甚麼內容都可以。
不過理想歸理想,最後還是很常靠我同事現場提示。
而且雙螢幕+錄影計畫會把我的筆電燒爆,導致有 lag 發生,好險玩家沒怎麼抱怨。
關卡設計的修正與迭代
這也是我第一次充分感受到我們遊戲的 standalone editor + 雲端更新功能在實體展有奇效。
正好展出時間是從下午開始,能夠克服時差,造就了我們能夠:
- 同事站在外面招待玩家
- 我窩在裡面看雙螢幕的debug畫面分析問題,然後同步回報給開發夥伴(第二天開始改成dc實況)
- 開發夥伴在家修正關卡問題並更新上傳
- 等這位玩家結束之後立刻下載更新關卡
也好險能這樣修正,否則第一天初期的幾個遊玩過程真是慘不忍睹。
不過程式上的bug當然現場就沒辦法修,只能晚上回家一邊看錄影一邊修正。
三天下來,有破完的平均遊戲時間是 33.9 分鐘 -> 30.1 分鐘 -> 27.8 分鐘。
全部破完百分比是71% -> 75% -> 84%,剩下枝微末節的改進內容和數據可能有機會會寫成別篇文章吧。
最後還是很感謝G8主辦也很感謝友人邀請,這是我們第一次參加實體展,雖然爆幹累,但意外地有很多收穫。為我們畸形的合作開發模式注入了一劑強心針,也讓我損失了一隻xbox手把。
插曲
因為我們後台房間其實是四組共用的,而我基本上一整天都窩在裡面盯後台螢幕,所以別組的人每次一進來就是看到我這個怪人坐在地板上駝背看筆電。
應該是在第一天快結束的時候,我們後方的即刻離職開發者就問說:「嗯?你們怎麼不把外面的桌子往前移一點點,然後把筆電放在螢幕後方這樣子」
「靠,真的耶,我是白痴」