Mikal's Forum Posts

  • You are welcome, it sounds like you came up with a good solution.

    If you are interested in C3 encryption, check out this C3 project from macube:

    drive.google.com/file/d/1gZczxGAyAcZQMlCFbAQCEggiMKlllozw/view

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • It sounds like it's too much work, but if I was worried about easy/simple manipulation of text files I would do some light encrypt/decrypt in C3 (determined hackers would get around this.)

    My plugin is for Steam, so it saves to Steam cloud, not typically good for mobile (I would use Playfab for mobile, but there are many other options out there.)

  • Just a warning, depending on local storage to stay the same in nwjs could cause problems (this is what has happened in the past with nwjs upgrading/changing local storage): construct.net/en/forum/construct-2/general-discussion-17/change-web-storage-directory-108793

    Since you are using nwjs (or something similar), how about saving your data (via JSON or dictionary to text) to a file that you directly control into the users directory under your game name or some other known location which will only have the files you want. You can then point Steam at this directory to backup. You can use the nwjs plugin ACEs to write files to the directory of your choice, you can also create directories, etc.

    construct.net/en/make-games/manuals/construct-3/plugin-reference/nw-js

    (My Greengrinds Steam plugin also has methods to save directly to cloud, but I don't think that's necessary in this case.)

  • Nice plugin, I hate doing UI and this is saving me.

    Bug report / fix for Dialog condition isOpened (always returns true.)

    Currently:

    	isOpened(){ return true; }
    

    Possible fix:

    	isOpened(){ return this.isOpen; }
    
  • Looks great, nice work!

  • Runtime 'camera' tilt available also:

  • A new effect to have fun with - SpriteStack shader. A different approach to Sprite Stacking, one sprite w/ effect instead of a stack of sprites. Fun collab with hcatarranaus. Based on work from Securas2010 on Twitter.

    Details here:

    kindeyegames.itch.io/spritestack-c3

  • Nice work, looks great! Thanks for the animation tool, I might play with this a little bit with the FQZ example Andre and I did. I agree in general it's fun to explore and learn with this type of stuff, not quite sure where it's going yet.

    One interesting example that could work with this might be doing something like Donkey Kong Country Returns in C3/C2 do this with 2d tilemap of environment 2d platform behavior and then 3d render of the character pinned to the player sprite and enemies with just per character self sort (e.g. characters cannot intersect geometry, they just do layers, which is fine for DKC style.)

  • Just piling on here, c3IDE & developer mode is the bestest!

    My only wish is that it supported Mac :), that being said the author added a great feature, so I can have a node server on my Mac monitor/serve the c3IDE compiled files on my Parallels Windows VM which is running c3IDE.

    It's really nice.

    Also the c3IDE server is set up not to cache, so c3IDE plugin updates are available on C3 reload.

    On the Mac side I am using nodemon/node/express as my server, which restarts on changes to my plugin dir, so it's also always up to date on C3 reload (no cache issues.)

  • This worked very well, thanks for the nice interface / feature.

    Sped up perf by around 30X versus calling a C3 Event function from C3 JS scripting to access the plugin ACEs.

  • Ah, I think I am beginning to understand... I need to extend IWorldInstance w/ weakmap of functions I want to expose to scripting and register with:

    GetScriptInterfaceClass() {

    return self.IMyPluginInstance

    }

  • How can we call or (expose to call) 3rd party plugin methods from Scripting, similar to how we can call methods for plugins like Sprite, Text, etc. from scripts.

    I have used methods to work around this like call C3 event functions from script, but I benchmarked this and calling a C3 event function from Script has a higher performance cost for my project which drop performance below 10fps. I also benchmarked calling a function with no events and the action of just calling the empty function was also fairly heavy.

  • Diego

    The scene graph features are great, the additional ACEs and the new editor support.

    How do you suggest to 'clone' a Scene Graph at runtime. For example if I have the Skeleton model setup in the editor once, with parent child relationship and placement, during runtime, how would I create another version and place it somewhere else? I would hope that I could create a new Scene Graph based on the particular root instance (perhaps through UID, or some other picking, like an instance var, etc.)

    Since scene graphs can have multiple instances of the same object, it does not seem like Containers work for this (we have tried and I have not yet seen a successful implementation using containers, especially with multiple instances of the same object in the Scene Graph.)

    Any suggestions or ideas, or is this a new feature request?

  • Ashley Here's another usage of the new Mesh Points w/ the C3 Spine plugin.

    I added a SpineBBoxGetPoly expression which returns poly points in JSON format of named slot/bounding box attachment. Using with C3 Sprite Mesh to creates a very accurate Collision Bounding Box in C3.

    SpineBBoxGetPoly expression returns poly points in JSON format array of named slot/bounding box attachment. Use C3 JSON object to parse and use points. The points are returned in top level JSON array [x0,y0, x1, y1,…]

    This is just a simple bbox with angles and stretches, but we could make a bounding box which actually followed the spikes on the sword, nice feature Scirra!

    The yellow / pink / blue box is a C3 Sprite w/ mesh points.

  • Add SpineBBoxGetPoly expression returns poly points in JSON format of named slot/bounding box attachment. Use with C3 Spine Mesh to create a very accurate Bounding Box in C3.

    SpineBBoxGetPoly expression returns poly points in JSON format array of named slot/bounding box attachment. Use C3 JSON object to parse and use points. The points are returned in top level JSON array [x0,y0, x1, y1,…]