<cite id="1ndtl"></cite>
<ruby id="1ndtl"></ruby>
<strike id="1ndtl"></strike>
<span id="1ndtl"><dl id="1ndtl"></dl></span><span id="1ndtl"><dl id="1ndtl"></dl></span>
<strike id="1ndtl"></strike>
<strike id="1ndtl"><dl id="1ndtl"><del id="1ndtl"></del></dl></strike>
<span id="1ndtl"></span>
<span id="1ndtl"><dl id="1ndtl"></dl></span>
<strike id="1ndtl"></strike>
<strike id="1ndtl"></strike><span id="1ndtl"><dl id="1ndtl"></dl></span>
<strike id="1ndtl"></strike><strike id="1ndtl"></strike>
<strike id="1ndtl"></strike>
<span id="1ndtl"></span>
<span id="1ndtl"><dl id="1ndtl"></dl></span>
<th id="1ndtl"><noframes id="1ndtl"><span id="1ndtl"><video id="1ndtl"><strike id="1ndtl"></strike></video></span> <strike id="1ndtl"></strike>
<strike id="1ndtl"></strike>
<span id="1ndtl"><dl id="1ndtl"></dl></span>
  1. 首頁
  2. 游戲 元宇宙(從 Codecity 到元宇宙:元宇宙的軟件形態會怎樣的?)

游戲 元宇宙(從 Codecity 到元宇宙:元宇宙的軟件形態會怎樣的?)

PS:作為一個技術人員,對于元宇宙的未來持觀望態度。

為了向某人證明我買 Oculus Quest 2,是為了用于正道軟件開發,而不是用于玩游戲,又或者是玩游戲。我在這周的業余時間,為 Inherd 開發小組之前構建的 Coco 研發效能分析工具,簡單開發了一個新的可交互的~~前端界面~~:Codecity。哦,不,Codecity 是一個用于元宇宙的系統重構與分析工具。

在有了這個簡單的 demo 之后,我就能向某人證明我的 Oculus Quest 2 的經費沒有白花 —— 至少有一篇文章和一個開源軟件。

在編寫了 MVP 版本的 Codecity 之后,我又雙叕一次思考起了軟件的交互形態是怎樣的?上一次相關的思考,大概是在 6 年前,當時我在玩 Leap Motion、Oculus Rift、Google Glass 等相關的設備。當時的結論是,現在還不是時候。那么,現在是不是合適的時間呢?

想法:從 3D 的 Codecity 說起

嘗試一個新的領域,自然要從擅長的地方著手,Codecity 便是這樣的一個合適的場景。我最初接觸到它的時候,是公司大佬推薦的《Your Code as a Crime Scene》一書。Codecity 是一個用于軟件分析的模式,早在 2007 就有 Richard Wettel 編寫的 codecity,如下圖所示:

Weteel 版 Codecity

在這個版本里,他對于 Codecity 的定義是:

CodeCity 是一個用于軟件分析的集成環境,其中軟件系統被可視化為交互式、可導航的 3D 城市。類表示為城市中的建筑物,而包表示為建筑物所在的區域。城市工件的可見屬性描述了一組選定的軟件度量,如 CodeCrawler 的多度量視圖。

我們在 Coco 實現了一個 2D 版本的可視化,由于其采用的是 D3.js 作為渲染引擎,結果是 2D 的,其的交互能力比較有限。為了結合上熱鬧驅動開發的元宇宙概念,便構筑出了 3D 版本的,結合 WebXR(VR + AR)的 Codecity —— 一個多姿多采用的虛擬代碼世界。如下圖所示:

PS:由于我的 Oculus 還在路上,所以我暫時不保證在 XR 下的效果。我使用的是 Firefox 上的 WebXR 模擬器模擬的,如果有小伙伴有對應的工具的話,歡迎嘗試和 PR。

Phodal's Codecity

好在于,據說 WebGL 的性能是接近于 GPU 上的原生應用程序,要不 Codecity 可能并不是那么實用,在線Demo:https://phodal.github.io/codecity/。

對于編寫 Codecity 來說,從代碼層面來說它很簡單,任何一個稍有圖形經驗的前端都能完成這樣的功能:

D3.js 簡化圖形與數值計算,通過 Treemap 生成圖形。

Three.js 構建 3D 世界,并添加可交互原型

GitHub Actions,自動化 CI 和 CD。

測試,TBD。

對于有過游戲開發經驗的人,諸如于使用過 Unity、Unreal Engine 的人來說,這樣的應用更加地簡單。唯一的問題是,它們是收費的。順便一提,我覺得這一類軟件的付費模式,在未來應該會發生一些變化,諸如于采用生態共建的方式。

有了這個 MVP(最小可行化產品),我們就進入了元世界的邊緣了。

數字孿生:將物體從物理世界復刻虛擬世界

在我們進入元宇宙之前,還需要大概地了摸索一下如何從物理世界到虛擬世界,一個非常有意思的入口點就是數字孿生(digital twins)。多年以前,這一系列相關的概念主要是物聯網領域,當時主要的入口點是設備孿生(device twins) —— 我還翻譯過一系列的相關文章。在 2017 年時,Azure IoT 就提供了設備孿生的服務,它用于:

將設備特定的元數據存儲在云中。

從設備應用報告當前的狀態信息。

在設備應用程序和后端應用程序之間同步長時間運行的工作流的狀態。

查詢您的設備元數據,配置或狀態。

Eclipse 還構建了 Eclipse Ditto 框架,用于構建“數字孿生”的軟件模式。

簡單來說,為了讓周遭的設備進入虛擬世界,我們需要對進行進行“面向虛擬世界”的建模。不論是對于構建物理世界的 3D 模型,還是物體的聯網設計,都可以通過現有的成熟的軟件構建出來。

基于這種模式,Codecity 勉強算得上是元宇宙里的代碼分析工具,將代碼的物理屬性:行數、變更頻率、層次結構等映射到了虛擬世界。唯一,還有待改進的是交互方式,以及將虛擬世界映射回代碼的“物理世界”。

虛擬世界:從平面軟件到物體建模

從某種意義上來說,我們采用的智能家居設備,便具備了一定的數字孿生的特性。還有所欠缺的是,需要這些家電在現實世界的屬性進行建模,以映射到虛擬世界中。

在這之后,我們還需要將房屋也進行建模,才能在虛擬世界中進行對應。它并非是一件容易的事情,因為我們還擁有一系列不帶任何電子屬性的家居物品,它還依賴于我們實時地對設備進行建模。這種實時性建模,會帶一系列的隱私問題 —— 當然,如果家里已經有攝像頭的另說。除此之外,它還要應對你們家的貓帶來的挑戰。

在游戲、電影等行業的角度來考慮這個領域,它已經相當的成熟了。唯一,有待研究的是,如何通過物理設備快速地對物理世界的“物”進行建模。

元宇宙:虛擬化與沉浸式

維基百科上對于元宇宙的解釋是:

元宇宙被描述一個未來的未來化和去中心化的線上三維虛擬環境。這個虛擬環境可以通過虛擬實境眼鏡、虛擬實境眼鏡、手機、個人電腦和電子游戲機進入人造的虛擬世界。

對于去中心化一點來說,我從來不抱任何的信心,哪怕是 0.000001%。舉一個非常簡單的例子,在虛擬的貨幣世界里,計算資源決定了一切。這也就意味著,誰強誰是中心。同時,從另外一個方面來說,每個一定體量的公司都會推出自己的元宇宙,所以會有一堆宇宙。而在這些元宇宙的強弱,依舊是計算資源決定了一切。直至,元世界成為了標準,成為了一種基礎設施,它便又被中心化了。

上述的內容里,我們已經對于虛擬化有了基礎的認知。與虛擬化相比,我相信元宇宙會帶來更好的設計體驗。特別是作為一個 VR 頭暈的早期 VR 體驗者,AR 反而給我帶來了更好的體驗。這大概也是 Oculus 多了兩個 hand 可以用來~~玩游戲~~體驗現實的原因。鼠標與鍵盤帶來的交互體驗,并不是友好。在玩游戲時,反而通過手柄、健身環等能帶來更好的體驗。所以,與多年前相比,我看到越來越多的“成功案例”,證明了沉浸式協作的可能性。

PS:順便一提,作為一個早期的 Leap Motion 用戶,與各類 VR 設備的手柄相比,我更喜歡它這種無設備束縛的體感控制方式。不過,它對于編程能力的要求更快,也對設備擁有更高的計算能力。

元宇宙的支點:沉浸式協作

作為群居動物的人類,協作是我們生產力的基礎。

在過去的兩年里,COVID-19 大大加速了企業的數字化進程。我們所處的軟件開發行業,出現了越來越多的遠程辦公工作,還有大量地線上會議、線上協作等。而且,多地多中心協作,也是大型企業所要面臨的挑戰。盡管,人們可以通過飛機在一天之內到達任何地方,但是這種差旅帶來的時間成本是具高的。而今,大量地實踐表明,這些差旅都可以轉變為線上的形式,唯一不足的是在協作上頗為困難。

所以,從個人的角度來看,如果元宇宙要帶來價值,那么“沉浸式協作”可能是一個不錯的出發點

回到現實:構建產生創意的技術儲備

從上述的內容里,我們大概已經闡述了元宇宙所需要的一系列技術。回到現實,我們作為一個個體,可以考慮準備一點基礎的技術作為儲備。從個人的試驗來看,一些潛在的點可能是:

游戲編程。

數字孿生。包含物聯網所需要的相關內容。

交互設計。

協作模式。

……。

所以,從一個開發者的角度來看,我們并不一定要追隨這個熱潮。只是呢,可以考慮以輕量級的 hackday 的形式,讓自己擁有一定的技術儲備,諸如于我在:

7 年前,在一次 Hackday 活動上,我參與到團隊構建的看房機器人的構建上,

5 年前,在新一次的 Hackday 活動上,我們構建了 3.0 版本的小機器人,添加了 VR 的支持。

3 年前,在一個售前的項目上,構建在線 VR 看車的 demo。

我是一個沉淀導向的開發者,所以代碼 + 文章的產出是我所覺得儲備的證明,如本文結尾所留下的一系列文章。

而從一個中大組織的角度來看,我們可以嘗試性:

構建一個試驗性團隊。從 Apple、Amazon、Google 等公司的試驗性產品里,。我見到另外一個反面的案例,可能是國內的些實驗室,過于依賴與業務結合。

持續性的結合業務探索。用小的成功作為積淀。

采用開放性基礎設施。

學習其它領域的成功案例。

當然了,收購一個團隊的成本顯然會更低。

未來的軟件形態是怎樣的?

最后,回到標題上來。

如上述,對于交互性的延伸是軟件形態的老大難問題。從某種意義上來說,可交互的設備決定了軟件的形態,而 AI 也在嘗試性地減少相關的交互。這樣一來,兩者之間的博弈會變得非常有意思。好在,這種改變只是一定范圍地,因為人還是要吃飯的。

除了上述的內容,我覺得還會有:

云即全部。

云端渲染。除此,我們在移動設備端有了越來越強大的 GPU,只是它可能不足于應對元宇宙帶來的挑戰。依賴于更快的網絡速度,如 5G,云端可以完成這些渲染,客戶端只需要作為展示性的存在

開放基礎設施。對于中小型企業,意味著:我們需要采用業內的標準、開源的工具與軟件。對于大型企業來說,則是提供一個開放的環境與生態,以及底層基礎設施的開源。與歷史上的諸多時刻相比,開放的世界里更需要這樣的開放標準。

也許,還有 6G。盡管,我還沒有用過 5G,但是我相信 6G 將針能對于元宇宙,提供更好的數字傳輸格式與算法,能高效地、智能地處理各類元數據。5G 所針對的更快地網速等諸多的特質,可以應對于元宇宙初期帶來的一系列挑戰。但是,從個人的角度來思索,因為網絡帶來諸多的不確定性,基站可能會成為元宇宙的各種核心節點。

同時,為了構建元宇宙 ,將需要更多的工作崗位,使用更多的電力。所以,與上述的結果相比,我覺得投資到元宇宙的一系列周邊,可能更具備行業壁壘,比如程序員培訓、綠色能源。

你覺得它會是怎樣的?

其它

我高中最喜歡的兩個領域,一個是 Linux kernel,一個是游戲編程。如果將這兩者相比較,我對于游戲引擎的興趣,遠大于對 Linux kernel。作為一個男孩子,開發一款游戲大概是多數人兒時的夢想。而當線上變成虛擬世界時,是不是游戲已經不那么重要了。

當然了,這篇文章的開頭并不是為了嘲諷。

Codecity:https://github.com/phodal/codecity

我編寫的其它相關的內容:

《數字孿生:在 Azure IoT Hub 使用設備孿生(device twins)》

《Oculus + Node.js + Three.js 打造VR世界》

《JavaScript 在 VR 世界的應用》

《智能家居完全指南》

相關文章
美女网站色