Everade's Forum Posts

  • Unfortunately the example project from NormalMapExtended doesn't account for scrolling. However that doesn't meant that the effect isn't working, it just means that you will have to adapt your code to keep light position at bay.

    I would recommend using my improved version of the NormalMapExtended addon called "NormalMap32". It is in every aspect a little better than NormalMapExtended, is also better documented, and the example project accounts for your mentioned issue.

  • + A overlaps B

    + OR: spacebar is down

    -> destroy A

    As it is, pressing Spacebar takes absolutely no effect, because it picked 0 instances during the overlap check. And if there are overlaps, only the overlapped ones get destroyed. Conclusion: "Spacebar is down" condition is redundant / non-functional.

    But yes, your other example works as expected.

    if (A.x > 500 || A.y < 500 ){

    }

    I guess it's what it is, just doesn't feel consistent. But i have a better understanding that picking over-complicates it in the backend.

    At least i made myself a little reminder:

    "OR" stay within the same event block unlike "ELSE". And everything within the same block remembers picks.

    Which is i guess, the core principle of events as Ashley mentioned.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Then there's also backwards compatibility: we can't just change how thousands of existing projects work...

    For backwards compatibilty rename the current "OR" to "ANY" as you suggested yourself and create a new true "OR".

    To prevent any confusion, trigger a one-time pop-up the first time someone uses the new "OR", to inform users what changed so they know they need to swap to "ANY".

    Or if you're so keen to not rename it, call the new one TOR, *OR or whatever. Isn't as clean but at least we get the actual logic.

    And everyone's happy.

    Although events picking without mentioning picking could still get confusing. But that's nothing new. A tiny tooltip icon indicator on each event that picks ur unpicks might come in handy, but that's a different topic.

  • You do not have permission to view this post

  • I struggled with this for years — thinking it was a bug — until finally realizing that the OR statements inform ALL picked instances even if ONE statement is true.

    Exactly this. Just instead of being bothered for years i looked for a workaround and never looked back.

    They should implement a true or condition and keep their weird one as backwards-compatibility hidden just like they did with the old functions plugin.

    Until then i will continue acting as if there's no OR condition available. :p

  • So you're saying that you created 4 individual sprite objects, 1 for each task?

    Yes, you can create 1 sprite object with different animation frames instead. If that's what you're referring to as "parent".

    Set Animation Speed to 0, and create as many animation frames as you want.

    You can then set the animation frame of the sprite instance on your layout for each of your tasks.

    That way you can have X individual graphics, which only uses 1 sprite object.

  • Hey there.

    The settings for the light effects are configured on the Normal Map (family or layer), rather than on a light object itself.

    However, the example file demonstrates how you can use event sheet coding to "attach" these light effects to a light object using events.

  • Indeed, actual pain. Not due to the aesthetics (pink being broadly disliked by the masses either way), but because it's a rather harsh contrast especially in dark mode.

    Hope we can get a color swap, revert, or at least some contrast tweaks.

  • All these checks occur only once at startup and do not affect performance in any way. The performance is affected only by the opening of the high score table with the behavior of Tween. It doesn't matter how to attach objects, in code or in the editor - it's the same thing!

    Yes it does affect cpu utilization. No it's not the same thing. Yes only on start of layout, just as i've described.

    You said "when i open it", so i wasn't sure if you mean the layout or when triggering the tween. Either way, it should be fairly easy to check if the "tween" is the issue, so just replace it with a different method and compare it.

    I can't reproduce any performance issues on decent hardware with your given example.

  • This topic seems to pop up a lot lately.

    construct.net/en/forum/construct-3/general-discussion-7/engine-performance-174186

    construct.net/en/forum/construct-3/general-discussion-7/help-editor-randomly-lagging-173900

    I can confirm that i ran into the exact same issue multiple times. Although not lately, simply because i didn't work on my project for some weeks.

    However i have a much smaller project with less than 2000 events/actions and 120 objects. Nothing fancy, and i still had 5 seconds lags when selecting (double click) js- or moving event blocks.

    64gb of ram btw.

  • Remove all "for each" conditions. They're redundant in this case.

    Also don't forget that you're running many collision checks with "is overlapping", which is very cpu intensive. Instead, create your UI hierarchies directly in the layout.

    That way, you can get rid of the entire hierarchy setup on runtime.

    And you can disable "collisions" on all sprites. All this only helps for performance issues during start of layout though.

    If you actually have performance issues when clicking the buttons, maybe try a different variant to animate your UI instead of "Tween".

  • Keep in mind that it's a 2D effect, but yes it could possibly work.

    The examples shown above are all 2D.

    I've no idea how Construct handles 3D in the backend and i'm not interested enough into Construct's basic 3D implementation to dig into it.

    Feel free to test it out yourself.

  • Release - NormalMap32 v1.9

    • Added Normal Map Angle parameter to support rotated and/or rotating normal maps.
    • Added light max id parameter to keep shader iterations in the WebGL2 variant as minimal as possible. Which further improves performance if you are not utilizing all 32 lights.

    These new features shift all parameter IDs by 2, meaning that existing projects need to be adjusted.

    New example project to showcase the new features is available for download.

    Rotating Example

  • NormalMap32

    Download from itch.io

    Download from construct.net

    Description

    NormalMap32 allows you to create and control up to 32 colored point lights that interact with a 2D normal map texture. The result is a simulated 3D lighting effect.

    What Is A Normal Map?

    Normal mapping is a texture mapping technique used for faking the lighting of bumps and dents – an implementation of bump mapping. Each normal map pixel represents the direction in which the sprite's pixel is facing.

    How Does It Work?

    You have to create OpenGL/WebGL compatible normal map sprites for each 2D sprite you want to apply the effect onto. This normal map sprite is used as a foreground effect that needs to be placed on top of the original 2D sprite background.

    You can create Normal Map sprites either automatically using Normal Map Generator software, or draw them by hand. The NormalMap32 effect needs to be applied to each normal map sprite you've imported into Construct 3. Light sources are then defined within the parameters of each normal map sprite effect.

    Please note that a light source object is not a requirement, but it's a convenient way to create dynamic lights within your game, as shown in the fully documented example project.

    Examples

    Performance Considerations

    Applying the effect to lots of individual normal map sprites can be costly. It is recommended to apply the effect to a single layer instead. Set Max Light ID to the lowest possible value for enhanced shader performance.

    Notice

    NormalMap32 evolved from the NormalMapExtended addon. Compared to NormalMapExtended, NormalMap32 offers more functionality and less complexity in an overall enhanced package.

    Features

    • Supports WebGL1, WebGL2 and WebGPU.
    • Up to 32 simultaneous RGB light sources per normal map.
    • Linear, quadratic or mixed light falloff.
    • Distance clamping for spot light effects.
    • Supports flipped and rotated normal maps.
    • Global ambient RGB light.

    Tagged:

  • Thanks for the swift fix!

    Although the links are correct now, there are no actual 4 pages, it shows always the same items.