Niantic分享如何構建設計世界規模AR平臺
Niantic正在開發一個世界規模的AR平臺,並旨在幫助AR開發者快速輕鬆地建立自己的遊戲,無需面對一系列令人生畏的技術挑戰。Niantic Real World Platform是這家公司核理念的技術體現:鍛鍊,探索和社互動動。所述原則在移動客戶端表現為一組Java伺服器庫和Unity C#API,而這項技術是《Ingress》,《Pokemon GO》,即將發行的《Harry Potter:Wizards Unite》,以及未來產品中的核心伺服器和客戶端引擎的基礎。
Niantic的平臺負責人戴安娜·胡(Diana Hu)和平臺副總監愛德華·吳(Edward Wu)日前分享了關於世界規模AR平臺的設計,以下是筆者的具體整理:
在2018年12月,我們宣佈了Niantic Beyond Reality開發者大賽,邀請開發者加入我們併為Niantic Real World平臺開發令人難以置信的AR體驗。我們已在2018年6月預覽了這一平臺的AR對映和計算機視覺功能,而從那時起,一系列的團隊向我們詢問了這個平臺將能如何幫助他們,併為成功應用我們的技術繪畫了潛在的廣闊圖景。在這篇博文中,我們將探討Niantic所認為AR體驗正在前進的方向,以及我們根據這一預期而構建的技術堆疊。
為了幫助解釋說明,我們首先來暢想一個無處不在的可穿戴計算世界。在未來,AR裝置可以在真實世界和虛擬世界之間無縫融合我們所有的感官。這種自然的硬體將能增強我們在遊戲,工作和社交方面的日常體驗,可以隨時隨地地予以使用,並通過低延遲5G實現實時聯網。對於這樣一個未來,你又會構建什麼樣的體驗呢?
首先,我們設想這個未來具有內在的共享性和社交性。在Niantic,我們已經看到共同遊戲對玩家參與產生的巨大影響。玩家反饋道,除了遊樂之外,他們同時發現遊戲帶來了結交朋友和構建社群方面的益處。在這個未來,共享式擴增實境體驗將能提升這種益處。要做到這一點,AR的互動必須做到感官自然。數字化將遵循類似於物理的規則,從而令我們的大腦產生無法區分的幻覺。當達到這種平衡時,玩家就能沉浸在這種神奇的逼真世界中,並享受自然無縫的快樂(你可以參閱《Codename:Neon》,這是我們用於演示這一點而開發的原型)。技術的實現一如預期,並遵守著物理定律。例如,《Codename:Neon》的玩家可以從地面的白色顆粒中獲取能量,而它們都是共享資源。所以如果一個玩家拿到了白色顆粒,其他玩家將無法提取能量。
第二,我們認為AR世界是一個異構的環境,能反映出我們地球的多樣,豐富和美麗。自然,這吸引著我們同時探索真實世界和虛擬世界,而用於構建虛擬體驗的資料應該緊密地與現實結合在一起。以《Pokemon Go》為例,當真實世界下雨時,遊戲將出現相應的情景。感官體驗應該彼此對應,因為這樣可以推動著我們以一種連線的和有意義的方式來發現這個嶄新的AR世界。
第三,我們認為虛擬世界可以促使我們進行活動鍛鍊。利用人類運動和休息的自然節奏,我們可以建立出引人入勝的體驗,邀請我們活動起來並確保AR和地理空間體驗以主動有意的速度展開。例如,《Codename:Neon》是第一種鼓勵玩家在大型開放空間(如公園)移動的AR遊戲機制。《Ingress》和《Pokemon GO》同樣如此,步行里程是一種MMO資源,為激勵玩家探索社群或城市開闢了眾多可能性。
我們為滿足上述目標而開發了什麼樣的技術呢?為了令我們的體驗存在於單個虛擬世界中,我們需要能夠實現大規模的單個例項,一個可實時查詢地理空間的環境,並允許共享地理空間物件的建立和變異。因此,我們平臺的核心是實時地理空間儲存,索引和服務引擎,它管理著開發者能夠控制的全球地理空間物件。但由於我們設想的是世界規模的單一AR遊戲,其需要整合每一個人的現實,我們對技術方面的投入主要是水平可擴充套件性並同時維持單一世界例項,重新思考如何在水平可擴充套件的Kubernetes容器技術和NoSQL非規範化資料儲存的基礎上實現伺服器授權式的遊戲,而非過去MMO通常所基於的單例項關係SQL資料庫。《Pokemon GO》完全基於這個平臺構建,並且在單一,一致的遊戲環境中實時支援數百萬玩家,而數億的月活躍資料已經證明了這一點。
另外,在最初開發《Ingress》的過程中,我們發現使用程式生成或抓取的內容難以實現一個看起來真實且具體的遊戲世界。這樣做會產生一種認知失調感,演算法敏感的高亮位置在實際上卻平淡無奇。因此,我們利用了全球數百萬最有趣和最易訪問的地點所提供的綜合資料集。隨著工具鏈載入並根據後設資料標準將相關位置到遊戲場景之中,玩家在過去六年中的遊玩正不斷提交資料和更新資料集。因此,這個資料集對基於我們平臺構建的體驗至關重要,可以激勵使用者探索真實世界,並從一個地方走到另一個地方。
這些功能是通過一組移動客戶端Unity API進行管理,後者可以對映至高效能的原生外掛,可實現真實地圖資訊,以及地理空間遊戲物件的高效能渲染和樣式化。遊戲中最不直觀的程式碼部分可以因而對服務可擴充套件性和客戶端效能產生最大影響,而我們發現解決這一問題的關鍵是維持玩家位置與周遭遊戲世界狀態之間的實時聯絡。因此,我們致力於構建一個直觀的API,當玩家在世界各地移動時查詢和快取地圖和地理空間物件,它能夠處理器中的複雜性,並允許開發者編寫世界規模的單例項實時多人遊戲,從而允許其專注於在遊戲設計中尋找樂趣,而非分心應對一系列令人生畏的技術挑戰。
最後,我們為實時多人AR體驗建立了一套完整的API,將智慧手機作為控制裝置,以及瀏覽虛擬世界的門戶。我們專注於解決計算機視覺,網路,以及遊戲原型設計工具中的難題,從而確保開發者能夠主要專注於構建體驗。我們的技術優化了實時AR,實現了數十毫秒的點對點多人延遲。遊戲的流暢執行需要以60fps渲染,每一新影像以約16ms顯示,所以我們渲染玩家的實際真實位置。這意味著當在多人AR遊戲中使用我們的技術堆疊時,你可以看到朋友正站在哪裡,而非單純的大致位置。我們同時在客戶端庫中內建了先進的計算機視覺演算法,以實現更優秀的終端使用者體驗,及更快地同步和追蹤多人AR。所有這一切都支援跨平臺應用,使得開發者能夠在幾秒鐘內進行迭代。
在結合在一起的時候,我們的技術平臺可以幫助你快速開發出令人難以置信的世界規模AR體驗。從黑客馬拉松到早期的遊戲原型,再到我們即將推出的AR遊戲《Harry Potter:Wizards Unite》,我們一直都在踐行使用。但我們知道,這項技術同樣可以賦能世界各地的偉大創意者和開發者。如果你希望測試我們的平臺,請訪問官網並註冊https://niantic.dev/。我們非常樂意幫助你開發出令人驚歎的作品。
來源:映維網
原地址:https://mp.weixin.qq.com/s/v1P9XjG6N0w9c6m1yk5nzQ
相關文章
- 藉助Unity AR Foundation構建跨平臺AR應用Unity
- 平臺介面建設規範
- 如何構建UI元件設計規範?UI元件
- Google 如何設計與構建超大規模的軟體系統Go
- 構建dubbo分散式平臺-maven模組規劃和平臺功能導圖分散式Maven
- FLINK 在螞蟻大規模金融場景的平臺建設
- [平臺建設] HBase平臺建設實踐
- CMP雲管理平臺該如何構建?
- 大資料分析平臺如何構建大資料
- 用Vue構建一個github“視覺化大資料平臺”-GitDataV,設計開發分享VueGithub視覺化大資料
- 如何低成本,快速構建企業 Wiki 和團隊知識分享平臺
- springboot mybatis 後臺框架平臺模組設計方案Spring BootMyBatis框架
- 如何構建高效自主的容器雲交付平臺?
- 如何構建智慧監控預警管理平臺?
- 網易考拉規則引擎平臺架構設計與實踐架構
- SaaS架構:開放平臺架構設計架構
- Docker 構建多平臺映象Docker
- Docker構建多平臺映象Docker
- 技術分享| 淺談排程平臺設計
- 鵝廠如何構建大型基礎網路平臺
- 企業如何構建內部開發者平臺?
- vivo 實時計算平臺建設實踐
- Android工程模組化平臺設計-講稿Android
- 外鏈建設平臺:選擇合適平臺,快速建設外鏈
- 低程式碼平臺前端的設計與實現(四)元件大綱樹的構建設計前端元件
- 宜信智慧監控平臺建設實踐|分享實錄
- 大資料平臺架構設計探究大資料架構
- 前端⼤規模構建演進實踐前端
- 如何構建設計語言系統
- 目前的低程式碼開發平臺市場規模如何?
- 雲音樂輿情平臺建設雲音樂輿情平臺建設
- 伴魚基於 Flink 構建資料整合平臺的設計與實現
- 構建dubbo分散式平臺-maven構建根專案分散式Maven
- AI雲平臺怎麼構建AI
- 開發也能構建UI元件設計規範UI元件
- 談PaaS平臺建設:如何應對企業架構多元異構資源的挑戰架構
- springboot 後臺管理模組架構設計方案Spring Boot架構
- 業務規則引擎平臺如何降低程式設計師工作量? - brcommunity程式設計師Unity