Release the source code for Clickteam extensions?

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.
  • Will the source code for any existing extensions be released as we approach the release of Fusion 3? There are many changes I'd like to make but I'm unable to make them without rewriting entire extensions.

    Now that there's an official extension manager automatically downloading and installing extensions from a repository, I don't see any harm in having branches of extensions that add features that Clickteam does not feel are necessary or useful. Specifically this section in the extension SDK documentation:

    "We have included fully functioning objects as examples, for you to inspect the code.

    Simple Data Buffer
    Simple Text
    Simple Picture
    Simple Control"

    Why aren't more objects included with the extension SDK? While I understand the reason that the entire program is not open-source, I wish that we could modify all (some?) of the existing Clickteam extensions. For instance, there's no way to implement Append$() in Fusion without recreating every object that handles text.

    Is this something that's feasible?

  • Any news on this? Who would people talk to if they were interested in fixing extensions?

    Thanks!


    Extensions that currently need fixes or improvements:

    Edit Box
    -add text manipulation (all runtimes)
    -fix color problems (Android)
    -demarcate lines in multiline edit boxes (all runtimes)

    Combo Box
    -add text manipulation (all runtimes)
    -delete multiple lines (all runtimes)
    -fix color problems (Android)

    List
    -add text manipulation (all runtimes)
    -delete multiple lines (all runtimes)
    -fix color problems (Android)

    String
    -add text manipulation (all runtimes)
    -fix special character drop-off problem (all runtimes?)

    Active
    -add transforms (Windows)
    -add text manipulation (all runtimes)

    String Parser
    -add text manipulation (all runtimes)

    Joystick Object (Please login to see this link. but the license says that we can't distribute what we fix. Really, Clickteam? What logic is there in releasing the entire Android runtime if you aren't going to allow people to improve it?) and the Keyboard/Mouse Object
    -consolidate Input objects...call it the "Input Object" (all runtimes)

    Player Object
    -remove entirely (all runtimes)

    Active System Box
    -add text manipulation (all runtimes)
    -fix special character drop-off problem (all runtimes?)

    Sound Object
    -remove all references to "music" and "sample.: Replace with "Sound." (all runtimes)

    GET
    -add SSL support (all runtimes)

    Button object
    -allow text to be centered for checkboxes (all runtimes)

    Joystick 2
    -fix parameter fields (Windows)
    -fix button assignments/triggers/analog sticks for XBox controllers (Windows)

    Array object
    -shrink (all runtimes)

    Edited 9 times, last by Snail (February 4, 2015 at 9:44 PM).

  • I'd like to fix Blowfish & AESFusion on more platforms.
    Thanks for bringing this up Snail.

    Jeff, is there a way? ..I know Jamie is terrible busy with Fusion 3. These objects are not that popular, but I'm willing to do it myself if possible.

    Please login to see this link.

  • These are more than runtime changes, which, as far as I'm aware, Fernando only does (and only does for Android). I've already added these to the Android versions where I can by repurposing some crap that I'm never going to use in some extensions. But I can't do that on Windows. So for new actions, expressions, etc., they have to be implemented in the Extensions version in addition to the runtime versions. This is one reason why I would like to have public branches of these extensions so that if someone needs something that can only work on Windows, they can use that branch. As it is, we're limited to the weakest abilities of each runtime with few new features ever being added.

    If anyone has ever wanted to use Append$(), Prepend$(), etc. on Android, I can help you with that. :D

    Imagine a world where you have these actions for all of your strings:

    Set string
    Append string
    Remove string
    Set string encrypted (string, encryption method)
    Append string encrypted (string, encryption method)

    And where you can use GET on servers that use SSL. Or where "Upon pressing a key" is actually useful. And where all of the old legacy crap has been removed ("zones," for instance).

  • Quote from Jeff

    I would encourage you to talk to Fernando and have have him intergrate the fixes into the runtime.

    I mentioned the Please login to see this link. earlier today and Fernando declined to fix it. Does it affect me? No, but why do you have a gatekeeper when the code is already open-source? :? The gatekeeper isn't Fernando; it's Clickteam's policy not to allow fixes/changes/branches to what's already open-source code.

    In this case, my solution works much better for Brashmonkey than Fernando's solution. I'm sure that Fernando's is fine for most people and may work much better in other situations, but this is exactly why I would like to have the ability to have public branches of extensions. If my solution is what someone needs, am I supposed to tell that person to make the changes himself or herself since it's kind of sort of open-source?

    For anyone wondering who hasn't seen what I'm talking about, the entire Fusion 2.5 runtime is open-source on Android. However, this is the license for every file:

    Like I said before, I already added a bunch of runtime-only features that I've needed or wanted but I can't actually get them in the edit time extensions because those aren't available anywhere. So I'm left repurposing useless functions with much more capable ones but then I can't share those improvements with anyone.

  • I think Chris Branch proposed a more open-source approach to extensions during CC12. It's a shame that never came to fruition.
    It would definitely be ideal with an Unreal-like approach, where anyone buying a license for Fusion also gets GitHub access to the source. That has worked very well for them, judging by the number of external pull requests they get every day.

  • Just my personal view here, but allowing official Clickteam extensions to be altered and put out there to the public sounds like a support nightmare. No matter how clearly you point out that it is non-official, people will not read or heed these warnings and would come to us with complaints and bug reports and so on. This already happens for 3rd party extensions so I'm almost certain it'd be worse in this scenario…

  • My thought too.

    What if you could view the source of the extensions in Fusion and modify them in your .mfa, so the changes are always local to the application? You could possibly overlay a small ! onto the extension icon, to advise people 'this extension has been modified'.

    If the program itself points out which lines of code were added/tweaked by the .mfa author, then users are less likely to seek Clickteam support on them, just like sharing a Fusion made example/widget.

    Obviously there's a huge amount of infrastructure to add onto Fusion to allow this, but it might be a good long-term stretch goal to help it's users with the pain of 'This extension does everything I need except x! looks like i need to scrap it and find something else'.

    Please login to see this link.

  • I also support this idea. I am often limited to some features which would only required 30min coding to enhance the extension and increase the effenciency of the code.
    If we consider that only the extensions displayed in Extension Manager are supported, there is no need to add warnings or such things which are not read. But it would allow users to try and adopt modified version of an official one.
    However, it would required a better versioning than the current trend where almost all extensions have no corresponding version.

    Damien

  • The initial setup that you are talking about is the most time consuming part on my side.
    It is also not really a good habit to reinvent the wheel when already the core functionalities are in an existing extension.
    I always prefer to optimize an existing extension than create a new one. Without this philisophy, we can have 10 times almost the same extension. For example Pixel Object which have several variations with each its limits and bugs.

    Damien

  • I respectfully disagree about it being a support nightmare. The inclusion of the official extension manager provides an obvious, central location for all users to download the official versions of all extensions.

    As a test, perhaps Clickteam could try releasing several of the less complicated objects to start with and see what happens? I'm thinking something like the String object since all competing programs already have text functionality.

    I'm keeping that list updated in my post of changes or features I want to make in existing extensions. Imagine if I had to rewrite an entire extension to add something as simple as Append$() to it! XD If people need the Append$() action, they would have to look on my website to download it, so I'm not sure why new users would be doing that at all. Append$() is extremely specific in what it does in a way that almost nobody would ever need it (either because setString$() works well enough or because they don't have long strings), so I can't see brand new users complaining about something like that.

    If the bigger objection were that we would see thousands of branches of extensions pop up, I have two answers to that. First, I'm not sure what the problem with that is. The official extension manager means almost nobody who started using Fusion after it appeared knows how to manually add extensions. Additionally, if Clickteam found some really popular features in these branches, they would have the ability to implement those features on their own official extensions without having to spend the resources doing it themselves. That's a huge benefit and the benefit is for everyone. Second, do you think there are that many people who want to make their own extensions? :O If so, what are you doing, Clickteam? These people want to make your products better! Give them the resources to do that. :D

    Additionally, you mentioned that we should create our own extensions from scratch. However, Please login to see this link. of why I disagree with that entirely. iOSC was working on an iOS extension and then encountered a problem in December of 2014. No answer from Clickteam in December. In January, there was still no answer from Clickteam. Finally, at the end of this month, iOSC fixed his own problem but there was still no answer from Clickteam. If you want us to do that, then we need the resources available to us. I'm proposing the resources should be over here --------->. Currently they're here -.

    Thanks for the thoughts! All the best,
    Snail

  • Hi clickteam and all clickers! I agree with Snail not with all, but with many about, that some extension need publication as open source via Git Hub or on other repositories! This is scheme used authors of Unreal Engine 4 by Epic! This is great 3D engine with integrated Blueprint Visual Scripting system, very powerful and easy for not programmer users! Many years ago Epic license own engine only big teams and corporations not for indie! Because their engine not needed open source for all users license, corporations witch uses Unreal Engine ( for example 3 version ), written own extensions for this software! Now Epic team create great update, this update is the absolutely new software with new UI, new scripting system, new next gen graphics engine! This is all price by $19 in month, you can pay only one time and used this engine to long as you want and pay 5% royalty after first $3000 revenue in quarter! For students this engine coming free! I think, that this politically will be right and profitable. Clickteam make very great and powerful IDE, but this software needed many improvements and if clickteam can not doing it, this is can be doing others users! Thanks for your answers!

  • I agree. I'm not a coder myself, but I can definitely see the advantages of making Clickteam's extensions open source. Why not? Just think about the possibilities. What if you created a section on the ClickStore for verified third-party extension updates? There are so many extensions which, while they work, are archaic and could do with some changes to become so much better. I hear what you're saying about alterations causing problems for support. That's why I mentioned utilising the ClickStore. Verify third-party forks of your extensions and allow those onto a ClickStore section. Make it clear that you won't support extensions obtained elsewhere.

    Please login to see this link.

  • I agree with everything that Snail has said.

    There is no reason for me to have to create a new extension when all I want is to add features to an existing one. I can really only see good things. The logistical nightmare that Simon is foreseeing is unrealistic. If there is a problem with an extension we wouldn't need to wait weeks to months for a reply and instead can fix the extension ourselves. When modified extensions have been proven stable and (more importantly) better than the extension manager list then they can be merged into it.

    This philosophy seems so simple and obvious to me that it's a wonder it's not already the standard.

    Please login to see this link.
    Please login to see this link.

  • I think there is another approach possible. If you know how the runtime data structure is setup, you can in most cases modify most of what an extension does via another extension, only issue is that you can't really fix bugs. Thus you remove the issues of support, as they would be 3rd party extension. I think there already are some extensions that operate this way, e.g. irrlitch and onu.

    And if I remember correctly, you can look at the flash source and see how the runtime data structure is setup ;)

    For adding text manipulation this way would work good I think.

    But I agree in most cases having the whole source is the best option, if you can prove your programming talents and trust, I am sure CT will hire you to add what you need. And some of them are not extensions, Active & Sound object, they are deep magical things from the inner cave where Dragons lives. >:D

    And most of what I have said could be super wrong as I have not touched the extension SDK since before Fusion 2.5.

    Jean Villy Edberg

  • Just throwing my views on this. It would be great having many extensions go open source, for the reasons like adding new functionality and sharing the code with other "clicker coders" who may do even greater things with it.

    Although I see this will start off a bit complicated for Fusion as it stands on 2.5. I'm thinking the additional code added from such new features would add overhead to projects that may not utilise these features. If Fusion was able to only include bits and pieces of code required, then this wouldn't be a worry.

    If Clickteam were to work in an open source fashion, as in, create a repository for some/each extension and use something like a Git system for committing and accepting patches, then I see this as a valuable asset to what is already a very supportive community.

    If support sounds like a problem, then perhaps Clickteam should consider a more open approach to documentation. A Please login to see this link. sounds like a great idea. I've seen many spelling errors and outdated pieces of documented features that sits there.

    Clickteam is a business after all... Just look at Android (AOSP), Chromium (base for Chrome) and Red Hat (used on servers) -- popular projects which utilise open source. Money can still be made, if that's the incentive to keep things closed.

    Please login to see this link. - The encyclopaedia written by clickers, for the community.
    Please login to see this link. | Please login to see this link.

  • Quote from lh37

    Clickteam is a business after all... Just look at Android (AOSP), Chromium (base for Chrome) and Red Hat (used on servers) -- popular projects which utilise open source. Money can still be made, if that's the incentive to keep things closed.

    Building on that, I think "open-source can't make money," "open-source devalues the product, and "open-source lowers the quality of the product" are all common misconceptions. In the game engine realm, Unity, Unreal, Construct Classic, and GDevelop are all examples of 100% open-source engines. (UDK has some source-code available for its extensions and plugins, I believe, though the engine itself isn't open.) I don't feel that Fusion needs to go that far, but having more resources available to the community would be a huge benefit for the company.

    Edited once, last by Snail: Corrected reference to UDK (February 12, 2015 at 5:01 PM).

Participate now!

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