Mikal's Forum Posts

  • Procedural transparent warp effect, ported andrewray's effect from shaderfrog.com/app/view/708 to C3.

    Addon with example.

    Created using the excellent c3IDE plugin development tool.

    Tagged:

  • Note that to handle larger xSkew values, you may need to increase the transparent areas around the sprite image, otherwise the shadow will clip. This _does_ have performance implications, it creates a larger sprite to render (even if the majority of the added area is transparent.)

  • Great work, updating my older plugins will so much easier now, much appreciated.

    Nepeo Ashley - can we get this post pinned in this forum? It's as essential as Blackhornet's C2C3 converter for C3 plugin / effect creation.

  • Use note, when mirroring sprite, also mirror 'xkew' to match, otherwise perceived light source will incorrectly feel like it's switching from left to right or right to left as mirroring occurs.

  • Check out this behavior:

    construct.net/en/forum/extending-construct-2/addons-29/behavior-easystarjs-96215

    Eren just ported a c3 runtime version (yay Eren, support them on their patreon :)

    patreon.com/posts/easystar-js-for-25711114

    There are actions to add directional conditions per tile (e.g. which side(s) are ok to enter):

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Ported the color shadow version of chrisbrobs C2 effect, added a slight X skew to control shadow a little.

    DropshadowColorSkew Addon

  • Give me a Pixel Thanks for the encouragement!

  • Quick porting notes:

    • Deal with spritesheet (normalize UV for shader calcs and denormalize UV before shader fetch. Using srcOriginStart and srcOriginEnd)
    • Change iTime to seconds
    • Use decimal for iResolution (and pass through as a parameter). I don't full understand how this impacts the shader, but must be in range of (0-1)
    • Flip uv.y (but must done using normalized spritesheet formula, not simple 1.0 - uv.y)
    • Set fragCoord = vTex;
    • Set gl_FragColor = fragColor;
  • This is a fun procedural effect, but currently uses a lot of GPU resources, so it might be more for tech demos than actual game development. Perhaps someone else can take the shader code and optimize it for game dev?

    Based on this glsl shader code and blog post.

    Effect creating using the excellent c3IDE which now has good effect support also.

    Addon comes with an example project, play with the parameter values, sprite noise image and see what kind of interesting cloud flyovers you can create.

    Flying over the clouds of Mars:

    Addon Page

  • It probably should take only thirty minutes or so of changing and testing, but because I did not create the effect, I had to figure out what it was doing, so that took longer. It really depends on the effect complexity and assumptions.

  • I ported chrisbrobs Dropshadow from C2 to C3, see example below. Also works with animation frames during runtime.

    Addon

    DropshadowColorSkew Addon

    General C2->C3 effect porting notes.

    • These notes mostly apply to effect distortions which modify the uv coordinates or sample the background not directly under the current pixel being rendered.
    • The c2 uniforms pixelHeight and pixelWidth have been replaced by vec2 pixelSize.
    • When converting, I remove the above uniforms and add 'float pixelWidth = pixelSize.x;' and 'float pixelHeight = pixelSize.y;' to the top of the new shader code.
    • C3 textures are usually placed in sprite-sheets, while in at least preview mode, C2 used one sprite-sheet per texture, so the UV coordinates for a particular C3 texture/image do not range from 0-1, like they do in C2. Instead the entire C3 sprite-sheet a texture is included in ranges from 0-1 and particular C3 texture is packed within that range with other textures.
    • To help with this, some new uniforms are added: srcStart, StartEnd srcOriginStart, srcOriginEnd.
    • Read the below SDK docs to for more details on these uniforms, but generally, they show the start and end UV coordinates of the current texture within the overall sprite-sheet it's contained in.
    • Be wary of converting hardcoded numbers like 0.0, 1.0, 0.5 which are meant to indicate the top of the texture, bottom of texture, middle of texture. If they are used to indicate these aspects of a texture, replace them with the new uniforms (or formulas using the new uniforms.)
    • The normalize formula can help with converting 0-1 ranges in C2 to similar ranges in C3 for uv coordinates.
    • For example to find the 0-1 range of the current UV, use: 'mediump vec2 n = (vTex - srcStart) / (srcEnd - srcStart)'
    • An example conversion just required adding srcOriginStart, srcOriginEnd uniforms, converting vTex to a normalized value: mediump vec2 vTexN = (vTex-srcOriginStart)/(srcOriginEnd-srcOriginStart); , replacing vTex with vTexN in the rest of the code and 'denormalizing' when samping the foreground using srcOriginStart and srcOriginEnd: lowp vec4 front = texture2D(samplerFront, mix(srcOriginStart, srcOriginEnd, frontUV));
    • Another example from Dropshadow, a parameter uniform 'Rescalefactor' was passed into the effect which indicated in the range from 0-1, when to start applying the Dropshadow on the sprite. However since the texture for the sprite was in a sprite-sheet, an absolute value is not appropriate, instead, the following formulas were used to calculate a normalized Rescalefactor based on the image's location in the sprite-sheet.
    • 'float srcHeight = srcOriginEnd.y - srcOriginStart.y;', 'float normalizedRescalefactor = Rescalefactor*srcHeight+srcOriginStart.y;'

    See uniforms and more hints for C3 in the SDK documentation:

    construct.net/en/make-games/manuals/addon-sdk/guide/configuring-effects

  • Looks like fun with good characters (though I cannot read the game screens, I can translate the description.) Good luck with it.

  • Nicias I just checked and it has the c3runtime files with what looks like reasonable code, if you are still having problems, contact eren (the author.)

    github.com/erenertugrul/construct-plugins/tree/master/ported_plugins/behaviors/rex_moveto

  • Headbang Games - I know this is a bit old, but just to mention, yes the current solutions for Steamworks integration rely on Greenworks. So that limits the updates to the api, however, for the *.node files, we started doing local compiles against newer versions of Electron (e.g 4.1) and now Armaldio has done some CI compiles and is providing prebuilt libraries for 4.1. The process is now also more automatic. I also created an extended Greenworks plugin that works with this - that has more features. The electron flow is under development, but Armaldio is making quick work of it and it's getting very mature, making the process more and more smooth.

    Addon:

    construct.net/en/make-games/addons/244/greengrinds

  • Nicias - that is the point of the link on top, go to the link and search for 'moveto', you will find the treasure you seek.