實作分享 — VR Photon Tanks (1)

本系列實作, 是以 Unity 官方常見的 Tanks 範例(同台電腦雙打遊戲), 改成使用 Photon Cloud (PUN) 的線上多人同時對戰遊戲(max 4人), 桌機玩家可以用 Isometric 45度視角來觀看以及鍵盤來操作, 手機玩家則應用 Google Cardboard 的功能, 以 VR 的方式來觀看場景以及搖桿來操作遊戲.

桌機玩家以 Isometric 45度視角來觀看, 用鍵盤來操作遊戲
手機玩家用 Google Cardboard, VR 的方式來觀看, 用搖桿來操作遊戲.

這樣做的目的, 除了能讓整體遊戲在不同的平台能有不同的面貌與操作之外, 更可以嘗試融合一些最夯的程式技術, 以最單純的設計環境與硬體設備, 來感受遊戲在 MultiplayVR 結合時, 基礎上可以做些什麼, 以及計劃未來可以加上何種遊戲元素, 讓遊戲互動更加的豐富有趣. 😃

目前我們專案中用到的軟體、版本以及所須的 Unity Assets, 如下:

  • Unity 5.6
  • XCode 8.3.2版 (iOS 10.3.1)
  • Google VR SDK 1.40 版 (GoogleVRForUnity.unitypackage)
  • Tanks! 1.3.6 版(Apr 07, 2017), Unity Official Asset
  • PUN 1.83 版, Photon Unity Networking (Asset), for Photon Cloud
  • Rewired 1.1.0.0 版, Unity Asset (此為選項).

做為此系列的熱身準備, 我們先來看看這些東西的介紹與取得方式~


Google CardBoard SDK

開發 VR 遊戲原型的時侯, 可以簡單到只用一隻手機, 不論是 iOS 或是 Android 的系統, 應用 Google CardBoard 方式, 再配上個盒子, 就可以直接建構並操作 VR 的虛擬世界, 真的是最便捷的方式了~

我們目前會用到的 Google VR SDK for Unity, 版本為 1.40 版, 下載後檔名為 GoogleVRForUnity.unitypackage , 可以在下面的網頁裡找到.

Google VR SDK 位於 GitHub 的連結, 裡面有完整的 Sample、Package,
有時間的話可以多多參考~
https://github.com/googlevr/gvr-unity-sdk

Tanks! — Unity Tutorial

在 Unity 官方教學中, 有個很著名的遊戲範例: Tanks!
它是一個在單機上執行的多人坦克射擊遊戲, 可以二個人用同個鍵盤在一台主機上一起玩遊戲, 如果以前沒看過這個教學的朋友, 可以先到下面的網頁中, 看看 Unity 官方一系列的詳細影音教學唷~

Tanks! 的 asset 可以在下面的連結中找到~

PUN — Photon Unity Networking

這是 Photon Engine 的製作團隊, 特別為了能在 Unity 上做網路遊戲開發而設計的套件, 主要重點為強化多人網路即時連線 的功能, 相容於原本的 Unity Networking, 而且網路底層全部都重新設計過, 配合在全球佈署的 Photon Cloud/Server 來做為遊戲的後端伺服器, 應用上非常廣泛.

免費版本的 PUN, Unity Asset Store 連結如下:

PUN 與 Unity 的基本設定, 我們可以參考下面的文章介紹, 裡面有很詳細的PUN 入門的操作步驟與解釋, 對於還沒接觸或者沒設定過的朋友, 請先參考並熟悉一下囉~

PUN 與 Photon Cloud 的連線建立, 則可以參考下面的文章連結, 其中還會在裡面建立個簡單的網路管理的元件, PhotonManager, 好讓我們能以最快速的方式建立遊戲室, 並且讓多人進入遊戲場景遊玩~

PUN 裡面最重要的幾個網路元件: Photon View, Photon Transform View 等, 則可以在下面的文章連結看到, 瞭解裡面的設定步驟後, 在我們的專案中就可以應用同樣的設定, 來操作遊戲裡有網路屬性的物件, 例如, 代表玩家的坦克、發射出去的炮彈等等~

Rewired — Input System (此為選項)

此套件是個進階版本的輸入系統, 可以對應到非常多的輸入設備, 像是 iOS 上的 MFi 搖桿、 Android 上的藍芽搖桿、PS 搖桿、 Touch Screen 或是 VR 輸入之類的界面, 都可以用它來做相關設定, 並且有很完整的 API 可供使用.

在我們專案中, 因為手機(iOS or Android)用了 CardBoard 的方式配置在頭上, 所以得配合藍芽搖桿 🎮 才能方便做前後左右、發射炮彈之類的操作. 而硬體搖桿設定與相關的 API 使用, 則是這個 Rewired 套件最為方便~

簡單的 Rewired 入門設定, 其官方也有一系列的影音操作, 可以參考看看~


軟體的須求大致如上所列, 而硬體方面比起一般手遊環境來說, 則是須要個相容於 Google Cardboard 的盒子, 以及在手機上可以操作坦克的 🎮 藍芽搖桿, 這些軟硬體東西準備好之後, 接下來就可以開個 Unity Project 來把它們整合在一起, 所以下一篇見囉~ 😁

如果對本篇的介紹還有些什麼疑問的話, 歡迎來我們粉絲團討論唷 😃~

粉絲團: https://www.facebook.com/photoncloudtw/

Stay Tuned!