Build 295.10 - Release Version

Welcome to our brand new Clickteam Community Hub! We hope you will enjoy using the new features, which we will be further expanding in the coming months.

A few features including Passport are unavailable initially whilst we monitor stability of the new platform, we hope to bring these online very soon. Small issues will crop up following the import from our old system, including some message formatting, translation accuracy and other things.

Thank you for your patience whilst we've worked on this and we look forward to more exciting community developments soon!

Clickteam.
  • hello, i currently have a problem with the rope physics object, i want to change the starting angle via code but i couldn't find a way, i asked on discord and apparently you can change the direction of the object but it does nothing. It was always like this? or is a bug? i would love if you could change the starting angle or even the angle in runtime instead of the direction or changing the number of elements of the rope via code :)

  • Hello, I've encountered a significant issue with the physics engine. It appears that at higher frame rates, the behavior becomes erratic and objects start to slow down. It seems as if the timer mechanism might be misconfigured or experiencing issues.

    In an attempt to work around this problem, I've experimented with setting display factors and related parameters to very low values. However, this introduces a new set of challenges, requiring adjustments to speeds, gravity, and other factors. It's far from an ideal solution and adds significant inconvenience to the development process.

    I hope this feedback can be taken into consideration for future updates. Thank you for your attention to this matter!

  • This is actually an old issue I encountered, not only once, but multiple times with different projects, basically they work fine on Windows, Android, and even iOS, but HTML5 they usually break in a weird way, there appears to be fastloop\foreachloop\object selection differences that breaks these systems

    I never really reported them because to this day I don't know what is the main cause(s) of the problem, but something is definitely off
    So for example, this is a simple raycasting engine I made last year, doesn't even use child events (because I didn't have it at the time) exporting to windows and android it works fine, but HTML5 instantly breaks, and I don't mean about it rendering white, I know RGB coeff is not implemented in HTML5, but I mean the core principles of it are not working for some reason..
    Please login to see this attachment.

    Windows \ Android:
    Please login to see this picture.
    Please login to see this picture.

    HTML5:
    Please login to see this picture.
    Please login to see this picture.

    Game/App developer, artist and a community contributor.
    You can support my work on: Please login to see this link.

  • In my recent game i've released Oblitus Casa 2.0, the tunnels (very resource intensive) have had fluctuating behavior with the image compression on different types of gpus.

    If it means anything this game has tons of animation frames to simulate 3D without any rendering, and ive cut down on frames as much as possible.

    This is the usual memory pattern
    AMD/GEFORCE - 500-550 mb
    INTEL INTEGRATED - starts at 500, increases to 3000 mb and then softlocks itself.

    I have a feeling something must be wrong with the way assets compress on intel integrated, and I would appreciate deeply if this issue was looked into and fixed, because this has alienated almost the entirety of our audience since most of our players play on intel integrated.

  • In my recent game i've released Oblitus Casa 2.0, the tunnels (very resource intensive) have had fluctuating behavior with the image compression on different types of gpus.

    If it means anything this game has tons of animation frames to simulate 3D without any rendering, and ive cut down on frames as much as possible.

    This is the usual memory pattern
    AMD/GEFORCE - 500-550 mb
    INTEL INTEGRATED - starts at 500, increases to 3000 mb and then softlocks itself.

    I have a feeling something must be wrong with the way assets compress on intel integrated, and I would appreciate deeply if this issue was looked into and fixed, because this has alienated almost the entirety of our audience since most of our players play on intel integrated.

    I could be wrong, but if I remember correctly, it used to be that graphics would need to be uncompressed in VRAM before they could be used, and the ability to use them while still compressed in VRAM was only introduced relatively recently with newer technologies. It may be that this feature is available only on newer Nvidia/AMD architectures, and not Intel graphics. If so, then this would be a hardware limitation that Clickteam can't do anything about.

    Please login to see this link.
    My Fusion Tools: Please login to see this link. | Please login to see this link. | Please login to see this link.

  • Can we get an update to the Preload Image Function for Actives so that I can replace a preloaded image?

    For example, if I preload an image, and then replace that image, the Preload Image function should probably replace whatever is preloaded.


    Ultimately, my game uses character files and imports images extracted from a zip. Those images are exported to a temp folder, but the images themselves have the same filename and because of this, Fusion won't re-preload the image. I can work around this by creating additional temp folders, but I figured I'd request this regardless.

    ~2 blu 4 U too HaNdLe~

  • I can't remember if I asked about this before but one thing I'd find useful is the possibiity to link a specific sound to an animated frame, so instead of having to add the code, for example "Animation walking is playing" + Animation frame = 5 (Footstep sound) the footstep soundeffect is already linked in the animation editor

  • Yves
    Sorry to pester, but I wanted to ask again about the plausibility of adding a feature into the "Data Elements editor" to import and overwrite samples with exact same file names.

    For example, I want to export all samples using the feature added in v292.0, then run an Audacity batch script to lower the dB volume of each sample and save over the files, then import the newly revised samples to overwrite what's in Data Elements. The reason for this is my samples are mastered a bit high and don't leave quite enough headroom in the volume for many samples with music playing simultaneously, thus the audio is clipping. Since I have hundreds if not thousands of samples, doing this one by one to import the revised sample will be time-consuming, so I don't want to do it unless I know this feature request is not possible.

    In the future, I have learned to load all samples externally to avoid this. :)

    Please login to see this link.

  • Add a function to activate/deactivate event groups via expressions(comparing expressions and group names).


    But why?


    Yves In the past, loops didn't disrupt the order of actions; now, they are executed at the end, which breaks the compatibility of my old game code. Please add options for advanced users to choose whether loops should disrupt the order or not. I know they disrupt the selection, but I prefer to have disrupted selection over the order of action execution. The best solution would be to remember the selection and restore it after returning from the loop. This way, the loop wouldn't disrupt the selection or the order of events. Something like a stack for variables in programming language functions, they have a variable stack. Here, a stack for object selection would be useful.

    Another issue is the lack of the ability to select using AlphaCoef. Please add a condition to compare with AlphaCoef. Currently, with many objects of the same type, it's necessary to assign it to a variable for selection to work.

    Example(It only works for a single object; it breaks without selection for multiple objects.):
    * Map_Tile: Visible is on
    + AlphaCoef( "Map_Tile" ) > 0
    Map_Tile : Set alpha-blending coefficient to AlphaCoef( "Map_Tile" ) - TRANSP_SPEED( "Map_Tile" )

    * Map_Tile: Visible is off
    + AlphaCoef( "Map_Tile" ) < 255
    Map_Tile : Set alpha-blending coefficient to AlphaCoef( "Map_Tile" ) + TRANSP_SPEED( "Map_Tile" )


    Example fixed by using val TRANS_VALUE:
    * Map_Tile: Visible is on
    + TRANS_VALUE of Map_Tile > 0
    Map_Tile : Sub TRANSP_SPEED( "Map_Tile" ) from TRANS_VALUE
    Map_Tile : Set alpha-blending coefficient to TRANS_VALUE( "Map_Tile" )

    * Map_Tile: Visible is off
    + TRANS_VALUE of Map_Tile < 255
    Map_Tile : Add TRANSP_SPEED( "Map_Tile" ) to TRANS_VALUE
    Map_Tile : Set alpha-blending coefficient to TRANS_VALUE( "Map_Tile" )

    Edited once, last by aa2953b4 (October 14, 2023 at 5:32 AM).

  • But why?

    I can imagine some uses for it. You could use it to make simpler and/or more dynamic code, similar to how you can use expressions for fastloop names. For example, instead of doing

    If enemyShoot=1
    If $graphicSettings = "Low"
    ---activate group "enemy particle effects Low"

    If enemyShoot=1
    If $graphicSettings = "Medium"
    ---activate group "enemy particle effects Medium"

    If enemyShoot=1
    If $graphicSettings = "High"

    ---activate group "enemy particle effects High"


    you could simply do this:


    If enemyShoot=1
    ---activate group "enemy particle effects "+ $graphicSettings


    Also, if you cut or delete a group, Fusion will automatically remove all "activate..." or "deactivate..." actions that point to that group; they won't come back even if you hit undo. Being able to use expression names could be used as a form of insurance against this problem, as the actions would be undeletable.


    Another issue is the lack of the ability to select using AlphaCoef. Please add a condition to compare with AlphaCoef. Currently, with many objects of the same type, it's necessary to assign it to a variable for selection to work.....

    You can do it now:


    Please login to see this picture.


    You need to use the "Compare Expression to a value" condition:


    Please login to see this picture.

    Please login to see this link.
    My Fusion Tools: Please login to see this link. | Please login to see this link. | Please login to see this link.

    Edited 2 times, last by Volnaiskra (October 14, 2023 at 7:20 AM).

  • Your first example has nothing to do with what mine should do. Unfortunately, 'compare an expression to a value' doesn't perform object selection in this case(I've tried this before.), and the exact same problem arises. In my case, the objects are supposed to disappear at the same time, but they start to disappear at different times, and when one disappears, the rest stop vanishing, and you can still see them, but they become somewhat transparent. They should vanish completely. It seems that if one object reaches a value of 255, the action for others that haven't reached AlphaCoef = 255 is considered achieved. And it doesn't matter whether I use 'compare expression to a value' here. Unfortunately, the effect is the same. Only using an object variable for object selection helps fix the issue.

    Let's say I have 200 items in a frame with a qualifier called 'Item.' When I click, I want it to disappear from view. If I click a few rapidly before the previous one disappears, an error occurs, and the items clicked later will only partially disappear.

    Edited once, last by aa2953b4: Some more info (October 14, 2023 at 1:00 PM).

  • Well, you made a feature request for a condition that tests for alpha coeff with scoping. My example demonstrates that this is a feature that already exists. And if you've tried this condition already, that means your problem is caused by some other issue. Without seeing an mfa, it's hard to guess what the problem is. But from your description, it sounds like maybe you need
    to use for each loops. Post an mfa if you want more help.

    Please login to see this link.
    My Fusion Tools: Please login to see this link. | Please login to see this link. | Please login to see this link.

  • I don't want to argue, but your example doesn't use scoping with an alpha coefficient; it uses a 'pick one object' approach. You should select the object using the alpha coefficient value, not with 'pick one object.' That way, I would consider it functional. You're just setting the alpha in action.

    For now, I will settle for a solution with a variable. I only want to point out that something with 'Compare Expression to a value' doesn't work in some cases.

  • I don't want to argue, but your example doesn't use scoping with an alpha coefficient; it uses a 'pick one object' approach. You should select the object using the alpha coefficient value, not with 'pick one object.' That way, I would consider it functional. You're just setting the alpha in action.

    For now, I will settle for a solution with a variable. I only want to point out that something with 'Compare Expression to a value' doesn't work in some cases.

    Please look at event #7 in my previous screenshot, highlighted in yellow:

    Please login to see this picture.


    It selects objects by using their Alpha Coeff. The rest of the example, including the "Pick one" events, is simply constructed to prove that it does so with correct scoping.

    In case it's still not clear, let me explain the example:

    -There are 7 actives on screen
    -3 of them have had their alpha altered and their AltVal called "newScale" altered
    -In the yellow highlighted event (event #7) we select these 3 actives by their alphaCoeff
    -We then scale those selected actives according to their "newScale" altVal.
    -We can see that it worked. Not only did only the actives with AlphaCoeff > 0 get scaled, but each of those actives was scaled using its own "newScale" altVal. In other words, we selected actives based on their AlphaCoeff and were successfully able to both read from the correctly scoped actives (by reading the correct "newScale" value from each) and affect the correctly scoped actives (by setting each of the 3 actives using its own "newScale" value). How do we know all this? Because of the 3 altered actives, the biggest active is also faintest (hence it clearly has the AlphaCoeff of 220 and the scale of 4) while the smallest active is also the least faint (so it clearly has the AlphaCoeff of 100 and the scale of 2).
    -In other words, we have successfully selected and scoped actives via their AlphaCoeff. The fact that each active is reliably selected and scaled according to its own unique altVal, as shown in the screenshot, is evidence of this.


    I'm confident that if you post your MFA (or preferably a simplified version of it) then I or someone else can fix your code. If "compare expression to a value" isn't working (don't use "compare 2 general values" by the way - that's not the same and won't work), then like I said before, it's probably because you need to use a forEach loop.

    Please login to see this link.
    My Fusion Tools: Please login to see this link. | Please login to see this link. | Please login to see this link.

    Edited once, last by Volnaiskra (October 15, 2023 at 8:55 AM).

  • Maybe tomorrow I'll record a video with an example, but it did work for the new project. However, in the previous project, I used this in global events. I haven't tested whether it has any connection or something else with the error, but nothing else should affect the game code.

    Please login to see this link.

    As you can see, I'm using 'compare an expression to a value' in this case, there are no other objects on the board using group zero and there are no more events calling to group zero or those objects. I use group zero only to mark through this code for objects that are supposed to disappear or reappear. I've deleted all instances of setting the 'visible' flag to 'off/on' throughout the entire code, and the issue remains the same.

    I'm confident that if you post your MFA"
    I can't really do that; I have a signed confidentiality agreement for the code.

    Edited 7 times, last by aa2953b4 (October 15, 2023 at 10:01 PM).

  • Maybe tomorrow I'll record a video with an example, but it did work for the new project. However, in the previous project, I used this in global events. I haven't tested whether it has any connection or something else with the error, but nothing else should affect the game code.

    Please login to see this link.

    As you can see, I'm using 'compare an expression to a value' in this case, there are no other objects on the board using group zero and there are no more events calling to group zero or those objects. I use group zero only to mark through this code for objects that are supposed to disappear or reappear. I've deleted all instances of setting the 'visible' flag to 'off/on' throughout the entire code, and the issue remains the same.

    I'm confident that if you post your MFA"
    I can't really do that; I have a signed confidentiality agreement for the code.

    You've got a mistake here, which is probably causing your problem:


    Please login to see this picture.


    Instead of testing for AlphaCoef < 255, you test for 0 < 255. Since 0 is always less than 255, this condition will always be true, so it will always select all available Group 0 instances.

    Please login to see this link.
    My Fusion Tools: Please login to see this link. | Please login to see this link. | Please login to see this link.

  • I was copying the code quickly to show an example, which is why there's this small error. Fixing this line doesn't change anything. I remember having the same issue in another project as well.

    * Start of Frame
    + Group.0: Visible is on
    Group.0 : Set alpha-blending coefficient to 0

    * Start of Frame
    + Group.0: Visible is off
    Group.0 : Set alpha-blending coefficient to 255

    // Show obj

    * On loop "@Obj_Show"
    + Fixed value of Group.0 = SELECTED_OBJECT_ID( "SPECIAL_VALUES" )
    Group.0 : Set IN_TRANSITION to 1
    Group.0 : Set Visible on

    * Group.0: Visible is on
    + IN_TRANSITION of Group.0 = 1
    + Group.0: AlphaCoef( "Group.0" ) > 0
    Group.0 : Set alpha-blending coefficient to AlphaCoef( "Group.0" ) - TRANSITION_SPEED( "Group.0" )

    * Group.0: Visible is on
    + IN_TRANSITION of Group.0 = 1
    + Group.0: AlphaCoef( "Group.0" ) = 0
    Group.0 : Set IN_TRANSITION to 0
    Special : Start loop ON_APPEARING_ENDS( "Group.0" ) 1 times

    // Hide Obj

    * On loop "@Obj_Hide"
    + Fixed value of Group.0 = SELECTED_OBJECT_ID( "SPECIAL_VALUES" )
    Group.0 : Set IN_TRANSITION to 1
    Group.0 : Set Visible off

    * Group.0: Visible is off
    + IN_TRANSITION of Group.0 = 1
    + Group.0: AlphaCoef( "Group.0" ) < 255
    Group.0 : Set alpha-blending coefficient to AlphaCoef( "Group.0" ) + TRANSITION_SPEED( "Group.0" )

    * Group.0: Visible is off
    + IN_TRANSITION of Group.0 = 1
    + Group.0: AlphaCoef( "Group.0" ) >= 255
    Group.0 : Set IN_TRANSITION to 0
    Special : Start loop ON_DISAPPEARING_ENDS( "Group.0" ) 1 times

    Fix:

    // * Start of Frame
    // + Group.0: Visible is on
    // Group.0 : Set BLEND_CONF to 0
    // Group.0 : Set alpha-blending coefficient to 0

    // * Start of Frame
    // + Group.0: Visible is off
    // Group.0 : Set BLEND_CONF to 255
    // Group.0 : Set alpha-blending coefficient to 255

    // // Show obj

    // * On loop "@Obj_Show"
    // + Fixed value of Group.0 = SELECTED_OBJECT_ID( "SPECIAL_VALUES" )
    // + BLEND_CONF of Group.0 > 0
    // Group.0 : Set IN_TRANSITION to 1
    // Group.0 : Set Visible on

    // * Group.0: Visible is on
    // + IN_TRANSITION of Group.0 = 1
    // + BLEND_CONF of Group.0 > 0
    // Group.0 : Sub TRANSITION_SPEED( "Group.0" ) from BLEND_CONF
    // Group.0 : Set alpha-blending coefficient to BLEND_CONF( "Group.0" )

    // * Group.0: Visible is on
    // + IN_TRANSITION of Group.0 = 1
    // + BLEND_CONF of Group.0 <= 0
    // Group.0 : Set IN_TRANSITION to 0
    // Special : Start loop ON_APPEARING_ENDS( "Group.0" ) 1 times

    // // Hide Obj

    // * On loop "@Obj_Hide"
    // + Fixed value of Group.0 = SELECTED_OBJECT_ID( "SPECIAL_VALUES" )
    // + BLEND_CONF of Group.0 < 255
    // Group.0 : Set IN_TRANSITION to 1
    // Group.0 : Set Visible off

    // * Group.0: Visible is off
    // + IN_TRANSITION of Group.0 = 1
    // + BLEND_CONF of Group.0 < 255
    // Group.0 : Add TRANSITION_SPEED( "Group.0" ) to BLEND_CONF
    // Group.0 : Set alpha-blending coefficient to BLEND_CONF( "Group.0" )

    // * Group.0: Visible is off
    // + IN_TRANSITION of Group.0 = 1
    // + BLEND_CONF of Group.0 >= 255
    // Group.0 : Set IN_TRANSITION to 0
    // Special : Start loop ON_DISAPPEARING_ENDS( "Group.0" ) 1 times

    Edited once, last by aa2953b4 (October 16, 2023 at 6:44 AM).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!