Oculus Home背后:軟件開發(fā)與重構
如果你不知道如何使用,那么戴上虛擬現(xiàn)實頭顯又有什么意義呢?
本文引用地址:http://www.ex-cimer.com/article/201609/296719.htm虛擬現(xiàn)實的興起意味著大家足不出戶就能去到熱帶小島,或者是在太空中射殺外星人。但在這之前,他們需要一個接口,可以讓他們輕松與虛擬現(xiàn)實應用進行交互的接口。
這個接口必須要易于使用,反應及時,跟大家熟悉的屏幕按鍵和菜單類似。這也是為什么一家名為Envelop的初創(chuàng)公司在最近推出一個類似微軟Window系統(tǒng)的虛擬現(xiàn)實用戶界面的原因。
但就算是像Oculus Rift這樣銷售虛擬現(xiàn)實頭顯的大公司,制作這些新的用戶界面也不是一件容易的事情。在圣何塞舉辦的Facebook年度工程會議上,Oculus的軟件工程師Khoi Nguyen講述在這一過程中所面臨的挑戰(zhàn)。
原來的Oculus Home主頁面加載很慢,很多漏洞,并充滿著冗長的代碼。
原來的Oculus主界面加載速度很慢,比較拙劣。后來他們又從零開始設計,盡量確保所有東西都能流暢地運行。Nguyen解釋說,用戶界面的設計并不一定會造成用戶的流逝,反而是軟件部分需要徹底翻修。
Nguyen雖然有過游戲開發(fā)的經(jīng)驗,但并不太精通制作像Facebook或谷歌那些用于同時容納數(shù)百萬用戶的大型工程架構。他承認,自己并不熟悉大型互聯(lián)網(wǎng)公司經(jīng)常使用的一些先進開發(fā)工具和數(shù)據(jù)處理引擎。
Oculus Home的第一個迭代依賴于幾個軟件服務,而他的團隊卻不能對其進行更新。他解釋說,更新一些舊的軟件服務會不可避免地破壞其他服務。
這些漏洞并沒有完全摧毀用戶界面,但確實對性能表現(xiàn)造成了影響。
例如,在頭顯中加載Oculus Home這樣簡單的任務會花費更長的時間,這是因為軟件之間的沖突和過時的軟件造成的。因此,Nguyen的團隊想出了一個技巧來轉(zhuǎn)移人們的注意力,不讓用戶過分關注這個延遲。
當頭顯啟動的時候,主頁面會正常地出現(xiàn)在用戶的顯示屏中,但它會慢慢淡出并消逝在黑暗之中,然后再次出現(xiàn)在視線之內(nèi)。
但Nguyen表示這種做法是不對的。因為他們制作的用戶界面很混亂,最終他們只能寫一些冗長的代碼。
Nguyen說:“代碼很快就變成了意大利面。在最后變得并不好吃。”
由于過多地復制和粘貼代碼令到他們很難對用戶界面進行更新和優(yōu)化,這是軟件開發(fā)的另一個問題。
不過,這個用戶界面還是可以運作,仍然可以進行下載并運行虛擬現(xiàn)實應用。直到Facebook在2014年以20億美元的價格收購Oculus之后,Nguyen和他的團隊才得以利用這家大公司的資源來重新設計Oculus Home。
他的團隊使用了兩個Facebook的開源或者說免費軟件工具React和Flux來打造用戶交互界面。他們也打造了可以高效重復使用的開發(fā)者組件。這些定制的軟件構件可以讓他們?yōu)橹黜撁嫣砑有碌墓δ?,就像瀏覽虛擬現(xiàn)實應用時出現(xiàn)在用戶屏幕上的文本框。這減少了可能會讓用戶界面加載緩慢的混亂代碼。
另外,Nguyen和他的團隊設計了一個更高效的方法來儲藏記錄所有變化的數(shù)據(jù),例如當用戶在主頁面滑動瀏覽應用時或決定運行某個應用時所發(fā)生的變化。基本上,這個虛擬現(xiàn)實用戶界面已經(jīng)規(guī)劃好,他的團隊可以更好地理解一個軟件的變化對其他其軟件所造成的影響。
在之前,他們很難記錄這些變化,這導致像軟件消耗過多計算機系統(tǒng)資源這樣問題的出現(xiàn),從而造成加載過慢或軟件漏洞。
重新設計Oculus Home用了數(shù)個月的時間,并于2016年3月16日正式亮相。重現(xiàn)編寫的軟件可以讓他們更容易檢測并修復問題。他說自己“有信心可以進入任何的文檔中,并知道出現(xiàn)了什么問題。”
評論