Playing Game on Interactive Canvas (Google Hub)

0 favourites
  • 8 posts
From the Asset Store
Template for making an interactive book or a simple story book
  • Hi - I'm trying to create a game that loads on our Google Hub (locally) using their Interactive Canvas and was wondering if there are any good resources describing the Bootstrap process/code for Construct 3 games when exported to HTML 5?

    The first error I'm getting on Interactive Canvas is from the offlineclient javascript:

    offlineclient.js:1 Uncaught DOMException: Failed to construct 'BroadcastChannel': Can't create BroadcastChannel in an opaque origin

    I likely don't need offline support, but before I start hacking away at the bootstrap, I was hoping to find some documentation or discussion of what it's doing. Alternatively - if there are options to configure the build somewhere, I'd love to hear more about those.

    Thanks!

    - Unnur

    Tagged:

  • HTML5 exports require a web server to run, and it sounds like that context is not a web server, so it probably won't work.

    It's not an officially supported platform, but you could try the Playable Ad export instead. That's designed to run as a self-contained file without the use of a web server.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Thanks for the quick response - it's not a server issue, it's a client one. I can play the game just fine if I load the game I made in Chrome (even in an anonymous window). The issue is when I try to play it on my Google Hub (it's like an Echo Show, but from Google rather than Amazon)

    The "web browser" equivalent in a Google Hub will only render certain simple web page. It does support HTML5 and WebGL, and can for example render games made with Phaser, GDevelop and some simple ones from PlayCanvas, but I can't get it to render my tutorial implementation made with Construct 3.

    Some restrictions on Google Hub include that you cannot open any modals or popups, and you can not access the WebStorage API. I strongly suspect that the initial issue I'm running into is related to the web worker trying to open a popup window or something similar, but I'm having trouble modifying the bootstrap to bypass that. What I really need is to be able to radically simplify the bootstrap and keep it to just the basics of the game and display.

    Is there a very simple export option somewhere? Or an export option that makes it easy for me to strip out any extra bootstrap and keep just the basics? I'm a new user and have not wanted to pay $100 only to find out that this won't work (so I can't play with all the export options myself).

    I'm happy to pay for a year license if it works - of all the engines I tried yesterday, this one was really easy to use. However - if I can't output a stripped down, simplified game that I can easily host and run anywhere, then that somewhat defeats the purpose for me.

  • I am stumped... I found the option to turn off WebWorkers in the UI and advice to turn off offline play in a forum thread (remove 2 related files). I did both of these, and when I play this build in Chrome, I see a message that makes it seem like I've succeeded:

    [C3 runtime] Hosted in DOM, rendering with WebGL 2 [Intel(R) HD Graphics 615] (standard compositing)

    However - in the Google Hub simulator, I'm still getting Uncaught DOMExceptions (listed below) and a black screen of death. After seeing this error, I do not see the "Hosted in DOM..." message from C3 runtime, so I suspect something is going wrong after this... It also seems like main.js shouldn't be trying to construct a Worker if I've checked the option to not use them? Any thoughts?

    main.js:5 Uncaught (in promise) DOMException: Failed to construct 'Worker': Script at 'https://ugtest1.netlify.app/scripts/dispatchworker.js' cannot be accessed from origin 'null'.

    at f.CreateWorker (https://ugtest1.netlify.app/scripts/main.js:5:5468)

    at self.JobSchedulerDOM.Init (https://ugtest1.netlify.app/scripts/main.js:9:552)

    at f._Init (https://ugtest1.netlify.app/scripts/main.js:5:4300)

    at new f (https://ugtest1.netlify.app/scripts/main.js:5:2575)

    at ugtest1.netlify.app/scripts/main.js:11:125

  • As I said, the HTML5 export is not designed to work in these circumstances.

    Did you try the Playable Ad export option like I suggested?

  • I wanted to, but it's not available in the Free edition and there's no subscription option other than the $100 up front (as far as I can tell). I didn't want to pay $100 just to find out that it doesn't solve my problem and I can't use this platform... I'm happy to pay the $100 if this platform works, or sign up for one month and cancel if it doesn't, but $100 is a lot to pay for something I end up finding out I can't use.

  • You can pay monthly. It looks like you're citing the annual prices.

  • Buenas buenas,

    Acabo de probar la op**

    I just tried the Playable Ad export option and it was able to run it.

    I have yet to bride the Interactive Canvas API to the c3_callFunction, I'll post (or edit this) after doing this.

    Thanks Ashley for saving me from wasting my time deleting random files

    ---------

    I made the bridge with almost no trouble. It is a very simple script that has to be added in the html, I'll post the one I used for this fast test, but it could be tweaked to be almost perfectly generic, and leave all logic inside Construct without the need to update the script anymore

    window.addEventListener('load', () => {
     const commands = {
     TIRO: (data) => {
     self.c3_callFunction("tiro", [data.angulo]);
     },
     REINICIAR: (data) => {
     self.c3_callFunction("reiniciar");
     },
     }
    
     const callbacks = {
     onUpdate: (data) => {
     try {
     if (data) commands[data[0].command.toUpperCase()](data[0]);
     } catch (e) {
     console.error(e);
     }
     },
     };
     // called by the Interactive Canvas web app once web app has loaded to
     // register callbacks
     window.interactiveCanvas.ready(callbacks);
    });
    
Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)