Toby R's Forum Posts

  • One last thing, idk if I'm overthinking but is making a sort of "global" preloader possible? Kind of one preloader layout using MM_Preloader that works dynamically for whatever layout you switch to after it.

    So let's say you run "layout 1" > then go to "preloader layout" > it preloads the next "layout 2" and switch to it, then you go again to "preloader layout" this time preloading "layout 3" and so on. Hope it makes sense

    What I'm wondering is if it's meant to be used making many loader layouts between every regular layouts (like LAYOUT 1 > LOADER 1 > LAYOUT 2 > LOADER 2) that needs to be preloaded or it can be reused in some way.

    Yes it is absolutely possible and recommended. There's an action "Add all objects from layout (by name)" which can take a string variable (layout name) as a parameter. With this one you can make a generic preloader layout as you described above.

    Actually there are two ways of achieving such generic preloader. One is by making a separate preloader layout. And the second approach is by making a layer dedicated for preloader global. With such layer you just need to set the visuals only once.

    I'd recommend the approach with global layer, it will work faster in certain cases. Note that separate layout for preloader will work, but it's a double layout transition so C2 will release assets of Layout1 from the memory and then load all assets from Layout2 with preloader. While with global layer approach common assets for Layout1 and Layout2 will not be released/re-loaded.

  • Sounds great

    And even more flexible with the lazy preloading functionality, but couldn't show some lag on the current layout while preloading and running events at the same time?

    Thanks for your time, I'll buy the plugin very soon

    Lazy preloading works best with many yet small assets, then there's no lag at all. If there are some big assets then the lag can occur indeed. Still there are some workarounds.

    Let's say that you have just two big assets and all the rest is quite small. Those two are background layers for instance.

    So at the beginning of current layout you can make a short regular preloader for just those two objects (add object to preloader manually), and then start lazy preloading of the next layout while playing the current layout. Preloader does not double load the asset so the backgrounds will be ignored in lazy preloading since they are already in memory).

  • Hi CrK

    MM_Preloader does not use any third party library. It also has a lifetime warranty. I just haven't updated the description yet .

    No need to add any Github or Cocoon plugins. It works straight away on every platform.

    BTW there's v1.3 already available with "Lazy preloading" possibility (preload next layout while playing curent one). I should update the desciption soon with details.

  • Hi Guys, I've updated the first post of this thread. Globals 2.0 has just been released.

    == UPDATE - New extended version ==

    Globals 2.0 is now available in Scirra Store (note that Globals v1.0 is still and will remain free).

    Globals 2.0 is an extended version of Globals plugin with the following extra features:

    • Compatible with Globals 1.0
    • Save/Load variables to System storage
    • Save/Load variables to LocalStorage (or any other place by export/import JSON)
    • Reset variables
    • Can be used as a "struct" data object

    For more details and the video please visit the Globals 2.0 store page.

  • Globals 2.0 — Now for sale in the Scirra Store!

    https://www.scirra.com/store/construct2-plugins/globals-20-3682

    <h3>What you buy here?</h3><div class="deshr"></div>

    • Globals 2.0 plugin for C2 which is an extended version of free Globals plugin (read more below).
    • Capx with implementation example (see screenshots/video).

    <h3>What is Globals plugin?</h3><div class="deshr"></div><p>Please read this thread (if you use Globals 1.0, you most probably read it already) and the short article which is linked there before you purchase this plugin to undestand the purpose of Globals plugin: scirra.com/forum/plugin-globals_t186117%3C/p%3E%3Cp%3EIf you just need a brief info, please see Features section below.</p><h3>Installation</h3><div class="deshr"></div>

    • Just drag & drop c2addon to C2 editor

    <h3>Compatibility</h3><div class="deshr"></div><p>Globals 2.0 is fully compatible with Globals 1.0. This means that you don't need to change anything in your existign projects which use Globals 1.0. All you have to do is just install Globals 2.0 and it will override the free version.</p><h3>Features</h3><div class="deshr"></div><p>~Globals 1.0 & Globals 2.0~</p>

    • The same features as native globals (and more!)
    • Has boolean type variables (not possible with native globals)
    • Doesn?t pollute the variables listing
    • Doesn?t pollute the event sheets
    • It is possible to group variables (not possible with native globals)
    • It doesn?t affect memory nor CPU usage

    <p>~Globals 2.0~</p>

    • Can be used as a "struct" data object
    • Compatible with Globals 1.0
    • Save/Load variables to System storage
    • Save/Load variables to LocalStorage (or any other place by export/import JSON)
    • Reset variables

    <h3>Warranty</h3><div class="deshr"></div><p>This plugin does not rely on any third party libraries (not even jQuery) so it will never get outdated or broken. Lifetime warranty.</p><h3>Alternative</h3><div class="deshr"></div><p>This plugin is an extended version of Globals 1.0 plugin which is free. If you don't need Save/Load/Reset features or simply want to try the free version first, you can download it from here: scirra.com/forum/plugin-globals_t186117%3C/p%3E%3Ch3%3EAdditional notes</h3><div class="deshr"></div><p>Please read the F.A.Q. before using this plugin.</p>

    Use this topic to leave comments, ask questions and talk about Globals 2.0

  • Hmm it could be that NW.js is treated as the same host (same IP) as the one you're trying to connect to, while Chrome preview starts it's own "server" and has it's own IP.

    I am not sure how NW.js preview is treated from this perspective. It could also be related to some Chromium args like "--disable-security" or something.

    And It's possible that AJAX works differently for NWjs. It may actually search for the file locally.

    Can you check what will something like this log to the console both in the Browser and NWjs?

    It's interresting that it works in NWjs. I'm curious what's behind it. Ashley is this maybe something you would know from the top of your head?

  • Is there any error message in the browser console when it fails?

  • I'm not sure how MSI Remote Server works, but if it runs on Apache then you can use .htaccess file with the following content:

    <IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
    </IfModule> [/code:hcuh4vqk]
  • I18N (translation plugin) — Now for sale in the Scirra Store!

    https://www.scirra.com/store/construct2-plugins/i18n-translation-plugin-3679

    <h3>What you buy here?</h3><div class="deshr"></div>

    • I18N Plugin for C2 that lets you easily implement multi-language support in your app.
    • Capx with implementation example (see screenshots/video).
    • Example JSON file (translations) included in the capx.

    <h3>What is I18N?</h3><div class="deshr"></div><p>"Internationalization (sometimes shortened to "I18N , meaning "I - eighteen letters -N") is the process of planning and implementing products and services so that they can easily be adapted to specific local languages".</p><h3>Installation</h3><div class="deshr"></div>

    • Just drag & drop c2addon to C2 editor

    <h3>Compatibility</h3><div class="deshr"></div><p>I18N plugin is JSON based which means it is compatible with browser, mobiles (also Canvas+), PC, and every other platform.</p><h3>Features</h3><div class="deshr"></div>

    • Translate all the text-based objects in the layout with one action "Translate all",
    • Translate single object
    • Check if particular translation exists in JSON
    • Load translations (JSON) directly from a string, local file or remote file (update translations without a need of updating your app)
    • Nesting/categorizing translation keys (e.g. "menu.options.sound_on")
    • All translations in one place (file)
    • No limits in regards of text, languages, nesting
    • Console warnings in case of any issues like missing translation for particular language

    <h3>Plugins support</h3><div class="deshr"></div><p>Translate All action automatically scans and translates all the common text-based objects like Text, SpriteFont, SpriteFont+. </p><p>Any non standard text-objects can still be translated with I18N.Get("key") expression.</p><p>If you'd like me to add any other plugin support for Translate All action, just let me know by sending me an email.</p><h3>Warranty</h3><div class="deshr"></div><p>This plugin does not rely on any third party libraries (not even jQuery) so it will never get outdated or broken.</p>

    Use this topic to leave comments, ask questions and talk about I18N (translation plugin)

  • 12 steps to do in various places just to get the ads working? How come you find this easier than using some Admob plugin? With Cocoon it's literally just about to add the plugin and trigger the ad with one action. Then in Cocoon panel just install ads plugin with one click on "Install" button. That's it.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • It's actually very easy to just scrape the game from a URL and simply replace the assets. But changing the code (even if not minified) is indeed a serious challenge which I doubt anyone will bother to do.

  • Depends on the platform you can use built-in login system of GooglePlay, AppStore, Steam, Facebook, etc. If you however want a custom login then you'll need a PHP/MySQL system (programming knowledge required here).

  • I set it up years ago so can't remember exactly and probably things have changed anyway. But one of my customers had the same issue recently (like a month ago) and it worked fine after he set up his payment details in AdMob. I don't know the details if he had to wait a day or not, but if it works with test AD unit then it's surely the case with payment details.

    So yeah wait a day or two and if it still won't work then double check your settings in AdMob. If it won't work still then I'd contact AdMob support.

    Shortly saying if it works with test ADs then technically in project everything is fine.

  • You can use Browser.Log() to log data into console and then watch it after export (F12)

  • Do you have your payment method properly set up for Admob account? Google won't start showing ads until they validate your bank account.

    Try with test ad units, those work even if you don't have payments set up https://developers.google.com/admob/android/test-ads