Colludium's Forum Posts

  • Mikal - great demo!

    I think that 3d example uses real time mesh deformation to edit the shape of rigid bodies.

    For particle groups, I can't think of a way of actually deforming an elastic group by adjusting the particle joint strengths and/or lengths. When the group is created the particles are created in an even spread and bonded to their neighbours in pairs and triads. The engine then tries to maintain neighbour positions by using the Elastic Strength or Spring Strength system values to attract them towards each other. You can edit those system values but they are global, so it's not possible for the connections on each particle to be edited individually.

    To change the shape of an elastic group on collision, I think you're limited to deleting the particles at the impact site (via circle, aabb or shape query).

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Tombas - that is awesome! I hope the conversion is not complicated and you enjoy the new features.

  • newt - Which behaviors would you be interested in directly loading this way? The game-save jsons only contain obscure numerical editor references to the object's behaviors (editor id number) - so the only way to identify a particular behavior in this plugin would be by checking the names of the saved keys. I don't think I have it in me to figure them out for all of the possible behaviors due to a mild lack of interest, but if there are one or two that are worth supporting then I'll give them a look.

  • Hi Tombas - This is a totally new plugin, built from scratch with a version of Liquidfun that I modified myself using Emscripten. When I made Box2D+ I made a bunch of mistakes and poor decisions that became part of the internal workings, all of which I avoided this time around - so LFJS is much tidier and more efficient internally (it contains all of the Box2D+ features and more, apart from the image-alpha-scan-to-shape functions). It will only work in Construct 3 using the c3 runtime - are you looking to migrate over from c2 or have you already made the move? I was considering making a version for c2 a while ago but it would involve a lot of hard work - because c2 is the legacy software, right now I don't feel it's worth the effort.

  • -deleted-

    But if I actually delete this post then the other copied post also disappears...

  • Ashley - Thanks, I just wanted to make sure that I hadn't missed something obvious in the manual. If this were possible then a behavior could allow an object's saved-state to be loaded into it during edit time (move the object's position / set its size and rotation, load a tilemap's tile setup, etc). Not a major feature, but something that was being discussed elsewhere in the forum.

  • newt - Editor hooks would be amazing but I don't see any progress in that direction by the team, so I expect it will be a long way off, if it ever happens.

    This loader plugin will support the standard behaviors, so now I've done a basic save for the main objects I now have to experiment with each one to learn its specifics... This'll take me a few days and I'll post a progress report when I'm done.

  • This State Loader behavior allows you to paste-in json strings of a saved object to override the object's initial parameters at layout start time. It works with Sprites, Particles, TiledBackgrounds and Tilemaps. Unfortunately I don't believe it is possible (yet?) for the layout editor properties to be changed at edit time, so there is no update of object position etc in the editor.

    Additional feature. As I tinkered with tilemap I thought it would be useful to add support for a Tiled tilemap json save. Any compression option is acceptable, and (as above) the tilemap will be updated at the start of the layout.

    Properties:

    State Json: the object save as.json string.

    Set world state: choose whether the world info parameters should be loaded (position, angle, etc).

    Set runtime state: choose if the runtime parameters should be loaded (frame, particles, etc).

    Tilemap tiles json. Load the tilesJSON from a save of tile status.

    Tiled json. Load a Tiled output json (multi-layers compatible).

    Tiled layer name. The name of the layer to load into the tilemap object.

    I've also added an action so that Tiled json strings and/or alternative layer names can be set during runtime. Final bug testing is ongoing and this should be ready very soon.

  • Mikal - I love that example! I feel inspired to make something using my own plugin!!

  • Thanks Mikal - I think I'm going to have to do some experimenting...

  • I suspect that behaviors are sandboxed so they cannot access the object they are appended to when in the editor, but I'll ask in the hope that I am wrong. Is it possible for a behavior (editor instance.js) to access the parent object's IWorldInstance?

  • newt - you only added a pseudo-warm-up method - did you forget to add the other features using events? :p

  • Performance is a good question and it depends on what you want your particles to do...

    Presently, the performance on my i5 laptop for the demo above with Arnie has 450 particles, each with 8 animation frames with bounce off solid enabled, and it uses 3.5 ms to control all of the particles each tick. Not a lot, but a lot greater than zero... I'm about to look at a render version of the plugin that has the same properties but only has one image (like the standard Particle plugin). Performance should be much better, but animations will not be possible. Swings and roundabouts...

    Fade in - not sure. I don't want it to be possible for particles to last for ever if fade-out destroy is selected but particles only fade in. Let me ponder this one.

  • In c2 it is possible to draw a quad of texture1 onto texture2 by using:

    glw.setRenderingToTexture(renderToTexture);
    glw.setTexture(textureToPaste);
    glw.quad(...args);

    Is this possible / supported in the c3 sdk? Thanks.

  • I guess it depends a little bit on what you want to do with your programming. I've tried python and c#, dabbled in cpp, but my favourite remains JavaScript.

    Some of the reasons why I like it are that browsers have many features you can access (like files API) so it's easy to make something useful, you can easily debug your code using the console and there are literally hundreds of good sites to learn from. If you want a good tutorial to start with then try free code camp. It's where I started and I think it's excellent.