Hey, lovely game and graphics. If I may ask: How did you prevent Adventuron from going full-screen on game start? I couldn't figure out how to stop mine from immediately jumping into fullscreen, but I notice some other Adventuron games on itch are able to do it
meseta
Creator of
Recent community posts
Yep, I didn't put any code in to avoid getting stuck in walls, that would have taken minutes I didn't have.
Some details on the Daleks game are here: http://www.nonanone.com/Daleks/ but this is a 2010 re-make of the 1984 classic which you can actually download here: https://macintoshgarden.org/games/daleks. loosely speaking, it's also a wave survival game, theres' no win condition, just more and more Daleks every wave. I was planning on adding waves and day/night cycles, where surviving NPCs would feed you food (so incentive to keep them alive), but that would have overscoped it.
Ah, I see. This is due to the transparent background mode. Unlike Chrome browser, this plugin had the background set to transparent, which allows you to overlay the rendered data over GM layers (something you can't do with some other browser plugins).
However, in some cases this causes ghosting (exactly the same issue when you don't set GM background layers). I think this can be fixed by clearing the buffer between frames if you don't want transparent rendering. I will explore this later.
I don't recommend starting up and shutting down chromium. I haven't figured out all the memory leaks. However, you can achieve the effect by just leaving the chromium instance running in the background, and show and hide the browser rendering window. This is also a faster way of doing it as you don't incur the speed penalty of having to start up and shut down the browser every time; and chromium doesn't take any CPU when it's not rendering (when you don't run the chromium_step() function).
I've uploaded a demo of how to do this called gm_chromium_1.2_instance_demo.yyz
Unfortunately this would not, as the Chromium Embedded Framework DLL that it uses is Windows only. While CEF could also be built for Mac and Linux (I don't have the experience to do that, but could assist anyone who does), unfortunately it is not available for Android.
I have seen some other extensions that provide a web view for Android though.
Unfortunately, it looks like Chromium will return an http code for each thing that is loaded, so while it may return a 200 code for a successful load, it may also return multiple different values (including 0) for the various things it loads. Each time you run the chromium_get_last_http_code() you'll only get the last code returned, which may be the 200 for the page, or it may be 0 for one of the things it loads along with the page. Unfortunately there doesn't see to be a good way to make absolutely sure everything is correctly loaded using this method.
I've posted an update, it now has the chromium_set_string() function that will load HTML directly onto the page. You probably want to set the dummy URL as about:blank.
As transparent rendering is turned on, you may need to make sure a background color is set. There are some odd effects here I haven't quite worked out yet relating to this transparency.
Regarding CPU usage: unfortunately in order to have chromium render frames in the background and send the data over to Gamemaker via a buffer, it can't take advantage of GPU rendering, and so CPU usage is high. There's no way around this other than to have Chromium pop up as an on-screen overlay (or borderless window) placed exactly over the game, this method is used by some other Chromium GM extensions, but this method does not allow layering or shaders.
I have found a workaround for this issue: setting Chromium to single-thread mode will allow it to work in the IDE; albeit at a lower performance. I've added a chromium_create_test() function that will launch it in this mode. I've also added a scr_demo_check_if_ide script to the demo project that can be used to determine whether the game is running inside the IDE, so you can decide whether to launch the chromium_create() or chromium_create_test() functions (see demo project for implementation details)