Ashley's Forum Posts

  • The "variadic" action/condition parameter type only ever existed for the old Function plugin. It was never documented and never intended to be used by third party developers. Now the new functions feature has been released, the old Function plugin is deprecated and therefore since the only intended use for them is deprecated, variadic parameters are also deprecated.

    As per our existing SDK support policy, undocumented features are not supported and can be changed or removed at any time. As is a widely accepted practice in the industry, responsible third-party developers should never use undocumented features. There has been a console warning logged for any addons using unsupported parameter types since October, which has given around 6 months warning. Please note as is another widely accepted practice, responsible developers should heed console warnings and not ignore them. Despite the length of time this has been warning in the console, we are giving another 3 months notice until support for variadic parameters (and all other undocumented parameter types) are removed from the SDK. In the long-term future we intend to delete the code to support variadic parameters from the Construct codebase in order to keep the engine lightweight, maintainable and easy to add the features that our customers expect.

    Developers should also note that variadic parameters are not necessary to support variable-parameter features. It is straightforward to implement the same feature differently, using a sequence of actions to add parameters, and then another action to use it. The Drawing Canvas plugin's polygon drawing actions are a good example of this. Instead of using a variadic parameter it uses an "Add poly point" action, and additional actions to draw the polygon and reset the points. This also has the benefit of providing detailed parameter descriptions (whereas variadic parameters can only show a generic placeholder), and also rules out the invalid use of providing an odd number of components that variadic parameters could allow. We advise to use this approach as a replacement to variadic parameters in your addons.

    We recognise this may cause some inconvenience to addon developers. However it is essential for us to maintain our ability to write engine internals as we see fit, with full flexibility to make changes or removals at any time, in order to avoid bloating the codebase, eliminate unnecessary maintenance work, and have the freedom to optimise the engine and add new features. This is important to ultimately provide customers with the high-quality software they expect from us. This is also true of any development platform: they all change over time, including sometimes deprecating and removing features, since it is essential to preserving the long-term health of the platform. This is especially critical for us as a small team with limited resources.

    Addon developers should remove any use of variadic condition/action parameters by July (as well as any other undocumented parameter types). Beyond that time Construct will refuse to load addons that use them. We appreciate the co-operation of addon developers and would again emphasise the importance of not relying on undocumented features, and heeding developer warnings. Although we currently have no plans to, we may well take similar action in future in order to preserve the long-term health of the platform, so developers are well advised to be aware of this process and take action sooner rather than later. We'd also like to point out that we take such action as rarely as possible, and this is so far the only significant case in the time since Construct 3's release - some other platforms are far more volatile with frequent breaking changes (for example Apple regularly add new iOS requirements that developers are expected to meet).

    Note that variadic expression parameters will continue to be supported (and we expect them to be supported indefinitely: they are documented, have a separate implementation which is significantly simpler, and other built-in features use them).

  • Ah, OK, not a major concern then. LukeW - if you still think this is important please repost a suggestion specific to the AdMob plugin, your previous suggestion read like a general engine feature.

  • Nepeo - if it's easy to add an option for this (i.e. just a dropdown that forwards a bitrate parameter to ffmpeg) it might be worth including, both because you could increase the bitrate for better quality, but also so you can actually reduce it further and save on the download size. In particular if a game is played on mobile speakers or earbuds a game could probably get away with pretty low bitrates. Maybe the range 48-160 would be reasonable.

  • That's over 30 million tiles... maybe you could leave it running for a couple of hours and see if it eventually loads!

  • Isn't it essential? How do people currently know if they should show the prompt?

  • Out of interest, can you actually hear a difference? I'd expect that unless you play the game audio through a good hifi/studio headphones, it would be hard to tell any difference.

  • Any software that puts a high processing load on a mobile device will warm it up. Processors give off heat as they work.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Actually I just checked and the Admob plugin does not appear to expose that yet - Nepeo, how are users meant to detect if they should show the prompt or not? Don't we need to expose isRequestLocationInEeaOrUnknown?

  • Yes, for the purposes of Admob the plugin can already tell you if the user needs a prompt or not. The suggestion filed appeared to be for a generic way for the Construct engine to tell you this, which is what I declined.

  • It's necessary because you can't edit the properties of something that doesn't exist. I suggest trying the Beginner's guide to Construct 3 to learn the basics of creating and editing objects.

  • Based on your earlier log it looks like it's actually loading a savegame twice - the first one succeeds and then the second one fails. Since it appears you load a savegame in 'On start of layout', and loading a savegame also triggers 'On start of layout', I would guess you accidentally made events that constantly recursively load the savegame, but (luckily I might argue) it failed preventing it getting stuck in a loop.

  • If you can't recover it using any of the tips above you can send it to me at ashleysur@scirra.com and I'll see if I can recover it. It's not always possible though, e.g. if half the project files have gone missing.

    We definitely want to fix any bugs that could cause this so if you can figure out how you got in to this situation please do file a bug report.

  • Nepeo might know (he wrote the encoder), but it looks like we use the FFmpeg defaults. You can also check the codec of the resulting files with tools like MPC-HC, which after encoding a test track shows an overall bitrate if 119 kb/s. So presumably it's aiming for around 128kbps with VBR. Opus is a modern high-quality codec and sounds better at low bitrates, so I'd guess that's equivalent to 160-192kbps AAC.

  • It's not supported in Construct 2, you need at least one instance of the object placed on a layout somewhere in the project. It's supported in Construct 3 though.

  • You need to create an instance of an object before you edit the instance's properties.