您可輕鬆的在本機測試即時遊戲的開發版本,自動進行發佈作業,並與團隊分享建置。本文件會詳細說明以下步驟。
即時遊戲體驗中最重要的部分,便是在玩家玩遊戲之前和之後加入的原生重疊。為了協助簡化開發及測試流程,我們允許開發人員從本機伺服器執行遊戲,從中大致掌握玩家在我們平台上看見的遊戲畫面。您只需要先完成幾項相關設定,便可透過我們的內嵌測試播放程式完成此作業。
由於我們的內嵌測試播放程式是在 facebook.com
網域下運作,因此只能透過 https
提供。若要在透過 https
提供的頁面內嵌內容,內嵌內容也必須透過 SSL 提供。以下步驟將詳細說明如何設定可提供安全內容的 localhost
伺服器。您可運用多種解決方案啟用此行為,以下提供其中一種方法。
> $ npm install -g http-server
openssl
建立私密金鑰和憑證。您必須完成此步驟才可以執行安全的本機伺服器。> $ cd path/to/my/game/ > $ openssl genrsa 2048 > key.pem > $ openssl req -x509 -days 1000 -new -key key.pem -out cert.pem # Fill out necessary information
# Starts to serve via HTTPS, with cache disabled > $ http-server --ssl -c-1 -p 8080 -a 127.0.0.1 Starting up http-server, serving ./ through https Available on: https://127.0.0.1:8080 Hit CTRL-C to stop the server
https://localhost:8080
後,便會開始執行遊戲。注意:您必須至少存取一次,因為可能需要接受瀏覽器的安全警告才可以繼續操作。如果發生這種情況而您跳過此步驟,遊戲將不會載入。
例如,在 Chrome 上,您可能需要存取 chrome://flags/#allow-insecure-localhost
並啟用「允許從 localhost 載入的無效資源憑證」以移除警告。
透過安全連線從 localhost 提供遊戲後,您可將遊戲內嵌至我們的播放程式。將瀏覽器導向以下位置:
https://www.facebook.com/embed/instantgames/YOUR_GAME_ID/player?game_url=https://localhost:8080
您便可看到即時遊戲播放程式開始執行遊戲,如圖所示:
注意:您必須至少在 fb.gg/play/YOUR_GAME_ID
玩過一次遊戲,內嵌播放程式才能正常運作。
此時您應該能夠從在本機伺服器執行的遊戲,使用即時遊戲 SDK 的所有功能。
為了安全起見,我們僅支援您使用 localhost
網域,在內嵌測試播放程式進行測試。
在特定內容中,您可以從本機伺服器執行遊戲。若要從本機伺服器執行,請按照前述說明步驟使用內嵌播放程式。然後,您可以利用 FBInstant.context
方法(例如 switchAsync()
、createAsync()
和 chooseAsync()
)切換至不同的內容。
這樣可讓您實際上在對話內容中從 localhost
玩遊戲,同時測試是否正確傳送內容更新。
即時遊戲內容是以 Facebook 基礎架構所代管,因此您不需要自行管理或使用第三方服務代管遊戲內容。遊戲可供測試後,請將所有遊戲檔案封裝成單一 .zip 檔案。請注意,index.html
檔案必須存放至此封存的根目錄,而不是任何子資料夾中。您可運用以下任一方式上傳套件組合:
若要上傳 .zip 檔案,請點擊應用程式主控板中「即時遊戲」產品的網站管理頁籤。然後,點擊上傳版本,便可將 .zip 檔案上傳到 Facebook 代管服務。
接著,建置會開始處理檔案,通常幾秒之內便可完成。當狀態變更成「待命」時,應用程式已準備好進入製作階段!
或者,您也可透過圖形 API 呼叫來上傳套件組合。如果您擁有自動部署系統,這是極為實用的作法。首先,您必須從網站管理部分要求存取上傳權杖,方法是點擊頂部的「取得資產上傳存取權杖」按鈕。
從對話方塊取得權杖後,您可提交下列呼叫到我們的圖形 API 以提交 .zip 檔案。請注意,我們使用的是影片子網域(我們刻意這麼做,因為該網址的設定允許接收更多上傳項目)。
curl -X POST https://graph-video.facebook.com/{App ID}/assets -F 'access_token={ASSET UPLOAD ACCESS TOKEN}' -F 'type=BUNDLE' -F 'asset=@./{YOUR GAME}.zip' -F 'comment=Graph API upload'
接著,您的遊戲便會正常的顯示在已上傳的套件組合清單中。您可使用此呼叫來整合至現有的建置系統。
請注意,Facebook 代管服務設有多項限制,以下羅列幾項重要限制:
請參閱網站代管文件瞭解詳情。
若要在製作階段環境中測試上傳,必須先針對製作階段為建置進行分段。請點擊「★」按鈕,便可讓建置進入製作階段。
您的製作階段建置將會是供每個遊戲玩家使用的建置。為了在不影響現有玩家基礎的情況下測試製作階段中的更新,可以對建置進行分段測試。這會讓建置僅供應用程式的開發人員和測試人員使用。
注意:請勿使用「建立測試版應用程式」按鈕為遊戲建立測試版應用程式,分段測試建置才是處理即時遊戲的方法。
在製作階段備妥建置後,請一律測試該製作階段建置,而不是測試在目前本機伺服器中執行的建置。您可以使用下列其中一種方法測試製作階段建置。
若要在動態消息中分享遊戲,請點擊分享遊戲部分的分享按鈕。這麼做可讓您在動態消息中分享遊戲,並從任何介面(桌面版、iOS 版或 Android 版)測試遊戲。
在 Messenger 的「即時遊戲」清單中,您和團隊成員(在應用程式中受指派為「管理員」、「開發人員」或「測試員」角色的用戶)應該都有所有建構中遊戲的清單。這份清單的名稱為開發中。您可藉此在 Messenger 中測試遊戲(無論遊戲是否已發佈)。
如果遊戲有相關聯的粉絲專頁,您也可以產生可分享的連結。如果您有設定 Bot,這個連結會將用戶導向與您 Messenger Bot 的對話,且系統會自動開啟遊戲。如果您沒有設定 Bot,這個連結會將用戶導向您的 Facebook 粉絲專頁,系統會從該專頁自動開啟遊戲。無論是何種方式,點擊連結的用戶應該都能立刻玩遊戲。
現在您已瞭解如何測試與發佈遊戲,請在提交遊戲前,核對正式上線檢查清單:即時遊戲正式上線檢查清單。此外,請參閱最佳作法章節,查看遊戲設計和更新的相關建議。