Like, what does swapping out index.html in the game settings have to do with changing a page with GM?
It allows you to customize what belongs in the space that's normally blank outside the main game canvas. Normally this is done by exporting once, bringing the resulting index.html back in as an Included File, setting it as the index.html in GGS and then editing that included copy.
Do I really need an extension to make a series of 'pages', which are really just GUIs in GM and display them?
If you're just building GUIs and screens in GM, then just use objects and rooms within GM. For a game that just needs somewhere to sit, having it as a single-page application isn't a problem.
Do I need an extension to control (send a signal) from an HTML menu outside of the runner to switch a page inside the runner?
If you want simple buttons outside the main canvas, use
clickables or edit them into the index.html. It probably won't be responsive if you do it with clickables, though.
I get that JS doesnt talk to SQL. You mentioned http_request(), is this the core GML function needed to make GM talk to webpages?
http_request() is the main way for GML to make requests to server-side HTTP-based APIs, not other client-side elements on the page.
HTML5, CSS, browser-side JavaScript, and the HTML5 export on GMS are examples of client-side technologies. PHP, Node.js and Rails are examples of server-side technologies. So stop thinking of "talking to webpages" as a singular skill or category. You do not talk to client-side elements the same way you talk to server-side elements, and you need to know which side you are dealing with before making a move.
Hey, Websockets seem really cool! does GML have functions to use them?
WebSockets isn't built into GML, but I've written an extension that provides a GML interface of my own to it. A link to it is in my previous post.
You seem really smart and capable Frosty, and clearly you are accomplished, but your answer just raised a lot more questions and didnt really point to the GML functions, or parts of the manual one would need to read. You make it seem like you would have to 'write an extension' to do much of anything in GM, which defeats the purpose of using GM to do much of anything. Im more confused now than when I started. Again, you seem really smart, but your answer was too good, maybe if I was better at GML/GM they might have made sense, as is I haven't the foggiest idea what you are talking about. I just wanted to make some screens in a <canvas> on a webpage so I could use GM's features and code to build some little websites and website pieces.
I really don't know what to make of this statement from you. On one hand you seem to be reassuring me that it's still a cordial conversation, and on the other hand you seem to be accusing me of obfuscating the information on purpose. I'm not, I'm being straight with you as to what's involved.
You're going to need to write and use extensions a lot because you insisted on interacting with a lot of things outside the main canvas. That's mediated through JS, not GML. If you're willing to bring them into the canvas, you don't need anything that isn't already standard GML, just do buttons and text the same way you would in an otherwise native project. If you need them outside the canvas, look up
clickables or learn some basic HTML5 and JS to edit the index.html. Scripts starting with
gmcallback_ remain unobfuscated and can be called from external JS on the same page.
For interactions with server-side resources,
http_request() and Websockets (which my extension can access) are the main entry points from GML. If you then decide to write your own API, learn a web programming language or framework like PHP, Node.js or Rails. If you decide to integrate with an existing API, read its documentation and work out what requests it accepts.
Everyone who has worked out the HTML5 export has at least a basic web development background. They know what's OK and what's banned on browsers and how to adapt APIs for their own use. You just need to give up this hope of doing it all in GML and start learning what's needed.