Next Fusion update looks amazing

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.
  • Linear Interpolation and exponential functions already exist through the Easing Object. There are other curves like elastic, bounce and others.

    You can get the signal by doing a / Abs(a). But surely an internal function that indicates the signal would be welcome!

    And other suggestions would also be very welcome! I've been waiting for years for Fusion to provide these functions natively hahahaha.


    Yeah I'm aware easing object has these and it's one of my favorite extensions so having some of its commonly used functions built-in would be amazing

    The more functions fusion has built in the better as it will reduces the overall complexity of code, avoids duplicated code
    and lowers the amount of knowledge required to use other people’s code which is great for beginners.

  • I agree that some more native expressions would be very helpful. For example, I need to convert from one range to another so frequently that I found I needed to build an Excel Spreadsheet for the purpose. I type the min/max numbers into it and it spits out an equation I can paste into Fusion. But being able to just use a native expression like Remap(>Value<, oldMin, oldMax, NewMin, NewMax) would still be so much more convenient!

    I use a / Abs(a) a lot too. But it can quickly bloat your expression and make it hard to read. Here's a particularly ugly one from my code:
    ( Y( "sprykeCollision" ) - YActionPoint( "omniEnemyCore" ) + 30 * OnCeiling( "omniEnemyCore" ) ) / Abs(( Y( "sprykeCollision" ) - YActionPoint( "omniEnemyCore" ) ) + 30 * OnCeiling( "omniEnemyCore" ))

    This certainly would be a bit easier to read:
    Sign( Y( "sprykeCollision" ) - YActionPoint( "omniEnemyCore" ) + 30 * OnCeiling( "omniEnemyCore" ) )


    Though having said that, I don't want to detract from the fantastic list of new additions that v294 is already bringing!

    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.

  • It really does look good. I'm so pleased you've finally found a way that lets us make a template frame to merge with our game level frames. That is a game changer. The other new features look excellent too.

    Andy H @ Please login to see this link. - Please login to see this link.
    Retro Gaming @ Please login to see this link.

  • Could someone explain the advantages of instances value feature? I've never been familiar with ForEach and multiple instances, it's not clear to me if this functionality will make this kind of thing easier.

    Tap And Go! released on Google Play Please login to see this link.

  • Could someone explain the advantages of instances value feature? I've never been familiar with ForEach and multiple instances, it's not clear to me if this functionality will make this kind of thing easier.

    The main difference is that you can assign a different value to separate instances at edit-time.

    Let's say you have 10 guys on the frame, and you want 7 guys to display the "walking" animation and 3 guys to display the "sleeping" animation. You could make an alterable value called "sleepy", and tell Fusion to play the "sleeping" animation for any guy who has the altVal "sleepy = 1". But that wouldn't help much, because if you choose one of the guys in the Frame Editor and change his "sleepy" value to 1, it will change it for all of the guys, so all of them will be sleeping when you run the game. So you need to somehow tell Fusion which are the 3 guys who you want to be sleepy. You'll have to figure out a way to isolate those 3 guys without touching the other 7 guys, so maybe you'll need to do something like if a guy's X position is greater than 250 but less than 400, and a guy's Y position is greater than 200 but less than 350, then play "sleeping" animation. Then, assuming you got the X and Y positions correct for your guys, they'll be the only ones sleeping when you run the game. But if you decide to move one of the guys on the frame, then you may need to update your code to correctly isolate those three guys again.

    With the instance value, it will be simpler. You just find your guys in the frame editor and give them all a unique instance value of, say, 99. Then you just tell Fusion if a guy's instance value is 99, play "sleeping" animation. And no matter if you move the guys around later, or add more guys, the same 3 guys will always be sleeping, because they'll continue to have their unique instance value of 99 that you set for them.

    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 got it! Thank you for this explanation Volnaiskra.

    I hope CT implement an "this object has multiple instances" option someday ^^'

    Tap And Go! released on Google Play Please login to see this link.

  • Absolutely love the include frame feature. It will save me countless hours. I'm curious: what happens if a frame includes another frame, which also includes another frame. Will this become Clickception or is there a limit to how many frames can be nested?

    Also, I don't suppose we have an idea of when this update will be released?

  • But you don't need a for each to count instances lol
    You can simply have compare two general values condition and check if the count of the object is greater than 1.

    A For Each loop is only necessary when counting SELECTED instances, not all of them.
    But the new update will also have a Count Selected instances, so that will make things easier.

  • He's not talking about counting instances. I'm not sure what he's referring to, but I don't think it's anything to do with counting.

    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.

  • Finally ;D I really wanted the following:

    • Value reordering
    • Include another frame option
    • Instance value expression

    All the updates are great, can't wait to test them, do you know if flip sprite will be now supported an all platforms ?

  • Can someone give a real world use for the "include another frame" option?

    The base frame option combined with global events is quite useful. This seems to be in a similar vein, but you can only pick one frame to include correct?

    I understand what it does (includes items and events?) but can't think of a significant practical application in which there isn't an alternative method?

  • Lets suppose you have multiple levels, each in a separated frame, you then add a pause menu, a inventory... Now you have to update all your frames that should have this.
    Or you have global various objects that are used by Global Event editor, or that should be present on all your frames, you would then have to copy and paste these on all your frames...
    Include Frame will allow you to include all objects, layers and events from another frame with a single click. And if you update the frame that is being included, the changes will be applied to all frame that include it.
    You can have a chain of include frames, so a included frame can include another...

    Imagine that you have a game with a hundred levels, you might get away with events by editing behaviors of a global object or Global events, but if these make references to objects that are not present on all frames that should use it, these events would get disabled, so instead of tedious work of copying and pasting multiple times and making sure everything is consistent and correct, you can simply select which frame to include on all frame properties.

    The only way it could be improved from this, would be having the ability to include multiple frames in one, and maybe selecting multiple frames on the list and applying the same properties to all of them, like we do with multiple objects.
    Maybe in the next update after this one we'll have this :)

  • The only way it could be improved from this, would be having the ability to include multiple frames in one, and maybe selecting multiple frames on the list and applying the same properties to all of them, like we do with multiple objects.
    Maybe in the next update after this one we'll have this :)

    I have suggested day one it release but Simon said "No, this is not the way it has been designed".
    You can find the log on discord.
    X)

  • Does anyone know if there will be any way of differentiating between objects that came from the "included" frame, and those that exist natively on the current frame? Or if there'll be a way to exclude certain objects from being "included"?

    I'm trying to figure out how I'm going to use the "include frame" feature, and it's proving to be a bit tricky. I have 2 main frames in my game - They are basically the Engine frame and the Level Editor frame, but let's call them A and B. I frequently add new objects to B, and I would love for them to automatically be included in A. However, B is also my base frame, so I put objects there that I'll need to reference in Global events. Many of these objects are used on both A and B, and would end up being duplicated if I included B in A. Having duplicates of these objects could cause problems, especially since some of them are extension objects.

    I'm wondering if there'd be a straightforward way to prevent these objects from being duplicated into A, without having to resort to dealing with them one by one (eg. unchecking "create at start" on all of them, then having to create each one manually in the code). Or without having to create a new frame C that only contains those objects that are used by both A and B (that would fragment my workflow and require me to jump around between 3 different frames - it would probably create more work than it saved).

    Maybe each object could have a "don't include this object in other frames" checkbox that forces it to stay on the host frame only? Or perhaps a "don't include this object if it already exists" checkbox that guards against creating duplicates?

    Something that would probably help my problem would be if the base frame automatically included all objects from its included frames. Currently B is my base frame, because it contains lots of objects that are used in B and also need to be referenced in global events. But I've also put lots of objects in B that are only actually used in A, but also need to show up in global events. If I could make A my base frame instead, and the global events would be able to reference objects both from A and the "included" B, then I would no longer need to keep these duplicates in B. But I'm assuming that this is not how it'll work. I assume that the included frame is a feature that only kicks in at runtime, while the base frame relates to edit-time.

    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.

Participate now!

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