上傳 Godot 的 HTML5 遊戲至 itch.io 執行時報錯
最近心血來潮參加了 Godot TW Jam #5,這屆的主題是遺忘,因為主辦方忘記提早舉辦主題投票了,在非常接近 20 號的時候投出來的結果就是 "遺忘",我本來想說要上傳一個空白的專案,但後來想想還是藉這個機會練習一下 Godot 好了。
最後花了一堂上課時間做了個小遊戲,遊戲的玩法就是要根據畫面的提示按下對應的方向鍵,而每個回合都要重複前面回合的按鍵順序再補上當前回合新增的按鍵,我自己嘗試大概可以玩到第八輪左右,再長就背不下來了。
然而在上傳專案的時候,我發現沒辦法順利執行,會出現以下錯誤:
The following features required to run Godot projects on the Web are missing: Cross Origin Isolation - Check web server configuration (send correct headers) SharedArrayBuffer - Check web server configuration (send correct headers)
記得之前參加 DIY Game Jam 做湖中女神的時候也有遇過,但因為時隔已久,解決方法早已經被我遺忘,所以我就跑去再查了一次,並且打算這次要寫下來幫助自己記憶。根據錯誤訊息上網查了一下,只要在遊戲的上傳設定中勾選 SharedArrayBuffer
support 就可以正常執行了,官方也有寫一篇貼文來介紹這個 feature。
如果我理解沒錯的話,使用 SharedArrayBuffer
可能在某些情況下造成安全性問題,因此現在瀏覽器都預設禁用了,需要透過 header 明確的啟用這個功能。如果不希望使用這功能的話,似乎在匯出專案之後也能做一些修改讓遊戲不需要這功能 1,然而在 Godot 4 目前似乎是做不到。2