Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Hey there! Yes, there are indeed some special conditions that must be met. SharedArrayBuffer is required for the application to work because it’s multithreaded. Browsers require secure context and cross-origin isolation for SharedArrayBuffer to be available. To establish secure context and cross-origin isolation your server must serve the following headers:

  • Cross-Origin-Opener-Policy: same-origin
  • Cross-Origin-Embedder-Policy: require-corp or Cross-Origin-Embedder-Policy: credentialless

MDN covers a lot of this: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer#security_requirements

I also wrote an article about creating the web shell for Bosca Ceoil Blue and some of the challenges, where I also discuss parts related to the secure context: https://humnom.net/thoughts/676e811c-bosca-for-web-better-landing-page.html

Note that Bosca Ceoil Blue doesn’t have any server-side logic, so it doesn’t really matter where it’s hosted from. So if you just want to use it, the version that I provide is fine. But of course feel free to spin up your own, and if you have any more questions, let me know!

(+1)

Thanks for that info, I eventually got it working!

To simplify things for anyone else trying to do this with a server running Plesk this is how I got it working:

1. From the Plesk administrator page (not logged in as client) go to: Domains -> Yourdomain.com -> Hosting & DNS -> Apache & nginx

2. If using nginx add the following to the Additional Nginx Directives section at the bottom of the page and hit apply:

add_header Cross-Origin-Opener-Policy same-origin;
add_header Cross-Origin-Embedder-Policy require-corp;

2b. I didn't have to do this step but I think if you're using just Apache you can instead add the following to Additional Apache directives mid-way down the page both in the HTTP and HTTPS sections:

<IfModule mod_headers.c>

    Header always set Cross-Origin-Opener-Policy "same-origin"
    Header always set Cross-Origin-Embedder-Policy "require-corp"

</IfModule>