Mikal's Forum Posts

  • You are rocking it! Love all the contributions.

  • Could move over to capacitor instead of cordova, also accepts cordova plugins.

  • Is there a way to limit what plug-ins a behavior can be added to? For example working on a 3D Physics behavior, right now I only support 3D Shapes (not Sprite, Tilemap, etc.)

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Thanks for this.

    I hope it is useful to others too :)

    I imagine other addon devs just were not aware it was possible (e.g. didn't read the docs about it.)

    DiegoM - I replied in the github issue about sending the updated addon, which I would appreciate seeing, but no worries if it is a pain to do.

  • Ok, sounds good Ashley, I will take a look.

    A general comment on the ACE mechanisms and response handshake behavior, I'm going to look at creating a more generic response for success/error, do it does not need to be done for every action (adding a success/error condition for each action gets tedious from my greengrinds experience of extending greenworks), so I am thinking of having one success/error condition per addon with perhaps a drop down for which ACE it is and an optional parameter (so an "On <action-combo-drop-down> <parameter> success" condition).

  • Just getting a feel for the new Webview2 and C3 C++ 'SDK' from the steam addon github repo, I added a new set of ACEs for getting a user stat (action, trigger, expression), the JS is relatively straightforward, passing messages to the plugin extension.dll which in turns call steam dll, then on result / callback send message back.

    The JS functions handle async requests. This was just extending and building the plug-in and c++ extension with some new source. The only build gotcha I had was to make sure all the dll and header files for the Steam SDK are from the same source (I replaced the ones that were checked in to make sure they were all consistent with SDK 1.57 which I downloaded.) In terms of passing messages and values back and forth, do need to be aware of potential type mismatches between JS support and C++ support (see the 64-bit userId).

    I was doing basically copy and paste to add in the messaging and C++ steam calls in the extstension and recompile to add in the functionality.

    This was just a test of changing the existing example, will not release it. I am hoping that Ashley creates a companion plug-in template that is clean, so can start adding some classes of companion addon steam functions. If not will take a look at making a companion template using the webview32 steam addon as a start. Very thankful that Ashley released the source for this.

    I am not sure about the future of webview2, but this implementation for Steam with webview2 looks like a promising start. The overlay didn't really work that well in terms of appearance for me (compared to nw.js / electron, I know Ashley has been investigating that).

    Ashley - do you expect to create a template for a companion app, or should we roll our own (I am not in a rush.)

    Finally another big thanks to Ashley for making this available for us to work with and build from.

  • Thanks for the reply Ashley, I generally agree, though if you do fallback to nw.js and native node instead of webview2, I think electron is worth a look as an nw.js replacement (for its better native node support and steamworks.js support).

  • Ashley,

    I applaud your work on webview2, definitely an interesting export possibility (especially as your epic and steam work come to fruition and hopefully macos support soon becomes available.)

    I did see a reference on the Discord community that you are still also working some on nw.js, looking at NAPI issues with nw.js. I have run into similar issues with nw.js, difficult to get native binaries working with nw.js. I am referring to this discussion: groups.google.com/g/nwjs-general/c/5KAAGsjEALg

    On the other hand electron has been more stable for activities like this (using NAPI and native binaries with node across versions) and I have seen folks use electron for publishing html5 games, including on Steam. For example, in this case they use steamworks.js (rust based library which creates node binaries and js to allow html5 games to work with steam.) It also uses NAPI, so fewer version issues over time.

    github.com/ceifa/steamworks.js (which in turns use napi-rs to have a napi interface to node)

    So, just a suggestion, but it might be interesting to look at electron instead of nw.js for export (in the past a community member was creating a build system for electron and C3, that some games used to release to Steam (in those days they were using Greenworks as an interface to Steam)

    I imagine an electron addon may also be needed, but at least a lot of the nw.js addon functions are now possible using normal web sdk (e.g. file access).

    Another somewhat interesting package for both nw.js and electron is koffi.dev/, I have had some success using this to use js to interface directly with the steamworks dlls and do Steamworks init and get user info, though it seems like they are some issues with calling certain dll functions, probably because I am still figuring out the details.

    Note: Electron on MacOS still does not support Steam Overlay (same as MacOS nw.js).

  • FYI - the update to support this should come in the next release cycle:

    github.com/Scirra/Construct-bugs/issues/7349

  • Diego Is this something you can look at?

  • Is there editor preview support for timelines for 3rd party addons with new properties?

    I am following these addon instructions: construct.net/en/make-games/manuals/addon-sdk/guide/timeline-integration

    I added new parameters like xAngle, yAngle, zAngle (I set the plugin properties to interpolatable: true)

    I added these functions to both editor and runtime instance.js:

    SetPropertyValueByIndex(index, value) {

    GetPropertyValueByIndex(index) {

    When I test it, it works well during runtime.

    It does not work when in editor (e.g. for timeline preview, the fields do highlight yellow), when I run the timeline in the editor, the new fields do not change and I do not see the above two functions called when in editor with timeline preview.

    Taking a quick look at the editor source, I don't see any code calling the above functions. Is it done another way in editor, do I need to add different functions for editor or elsewhere in the editor instance.js?

    If you need an example let me know, I can post the project and send an itch key for the addon.

  • Great work and really well reasoned argument about 3rd party addons, nicely said.

    I will definitely get both of these.

  • Added pointer to simple example in readme (uses spine 4.1)

    github.com/gritsenko/c3_spine_plugin/tree/master