Can extensions be used in free games (say: posted on GameJolt)?

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.
  • I'm using lots of extensions for my projects and I want to know if publishing them on sites like GameJolt is fine. If not, do I have to ask for a permission? And is this on a case-by-case basis? If so, how can I check which extensions does it affect?

  • I am pretty sure that all extensions that you find through the extension manager are completely free to use. If you download an extension from elsewhere you'd have to see if it comes with a note saying that you need a licence to use it commercially. If you are unsure you about an extension that you didn't find in the extension manager, and can't find information on the extension developer's website, you could contact the creator of the extension directly. Most extensions come with contact information.

  • I couldn't find any information on the Select Object, though. Since it isn't in the extension manager, any info on that?
    EDIT: No, not even contact info.
    EDIT II: Dynasoft seems to have left the Clickteam community, and posted the source code to his extensions (look: his biography). Hence I'm assuming it's fine to use it. I contacted him just in case.

  • "Select object" can mostly be "circumvented" today,
    thanks to the power of foreach's and "pick object in reference to..." actions

    What are you using it for, specifically? (only if interested in this argument.. X))

    On the general question,
    I've asked in the past if all Extension Manager extensions were already checked as being "free for any use" in the past
    but got no general reply, so I guess you'll have to check case-by case.

    To be sure I mostly use just very few of them and I've checked their license.

    a selection of my Fusion examples can be found Please login to see this link.

  • Don't know about performance frankly,
    but if you can describe exactly the way you're using it now
    (or still better post a stripped down example only showcasing the situation)
    ..generally an extensionless solution can be found

    *generally* X)
    (still never encountered a situation when I absolutely needed select object in CTF2.5
    but of course, can't be blind-sure..)

    a selection of my Fusion examples can be found Please login to see this link.

  • In the 'About' section of Objects you can see who the author is and who the copywrite belongs to ( usually contact info here as well ).
    If copyright is Clickteam i assume its ok to use it.

    How can i change username and display name?
    Please login to see this link.

  • Basically a leaderboard. Grab value A from 10 or so objects with different values and sort them (+names, internal IDs, and other alt values). Those value A's go up to hundreds or even thousands. Would that be possible?

  • Sure!
    First thing I can think of, would be adding all the 10 objects to the same qualifier
    then firing a foreach loop on them and adding those values to:
    A) an array (faster but requires additional code for sorting)
    B) a list object (very slow - but it auto-sorts, suitable if you do these sortings not on a "always" basis)

    Only problem would be that "name" - if you talk about the object "name"
    (the one you can set in the frame editor with "rename")
    afaik there's no way to get that without the "select object" or "create object by name" extensions
    (but the latter is from Andos and is certainly free for any use)

    a selection of my Fusion examples can be found Please login to see this link.

  • Let's get some things straight:
    1. Those objects are just duplicates (so no qualifiers).
    2. "Name" isn't an object. It's an alterable string.

    I currently do it every 25 frames at 100 fps - it's pretty laggy, your method seems better. Sorting an array seems easy with fastloops (since I also have to display stuff). I'll test it out and report back ASAP.

  • Since you're tweaking,
    I throw in another idea, maybe not useful:
    if you had just to store only one value,
    you could use an active object's alt values (should be twice faster than the array, but the array is pretty fast anyway)
    and another active object's alt values to sort
    but then you would have to give your objects a numerical ID to match the values index

    i.e.

    0 100
    1 244
    2 231
    3 45
    4 457

    first number being the object ID AND alt. value index,
    second number being the object's alt. val. A

    then sort them through another active object's alt values with fastloops

    but then would need an extra operation to pick the name etc.

    a selection of my Fusion examples can be found Please login to see this link.

  • Reduces overall app's performance by approx. 20% (at side-by-side, leaderboard update every frame). For 20 objects: 400 loops + ForEach vs 20 loops with Select Object. My app also uses the Select Object exactly 24 times more, so it's not worth it now.
    EDIT: Probably implemented that in an eye-gouging-worth way, but still. Replacing 20+ expressions is a time loss I can't handle.

  • There are probably ways to optimize it.. 400 loops seems much,
    probably used for sorting I guess?

    Another couple ideas you could try:

    1) internal list, has auto sort (both ways) and is waay faster than standard list, and is free for any use
    (Please login to see this link.)

    2) you could use the "Layer object"
    sort by alt. value A
    (don't know if this is applicable - will make objects oddly one in front of the other if they overlap?)
    then simply retrieve first 20 by firing a fastloop 20 times, retrieving first 20 sorted elements,
    and retrieving their fixed value from the layer object:
    lyrGetLevelFV( "Layer object", "loopindex")


    (sorry, don't want to make you lose time testing, just find this argument interesting)

    a selection of my Fusion examples can be found Please login to see this link.

  • Don't know how this thread went from general extensions to sorting, but it's something, I guess.
    I'm going to take the "if it ain't broke, don't fix it" route. I've got more important things on my head right now. Account system, FTP server for easy updating, multiplayer, handling sync, adding features... the list goes on. I also should be in bed by now, so goodbye, for now.

  • Yeah, that's a good route for sure.

    Goodbye and goodnight!

    Sorting example with internal list to make good dreams XD:

    Please login to see this attachment.

    (also uses string tokenizer, but could be avoided,
    seems to cause negligible framedrop in moderately crowded scenarios - 200 objects in the example,
    and it's executed once per frame, 60 FPS, not every 25 frames, so I guess would be faster?)


    sorry for derailing this thread
    just because there were few info available on select object licensing,
    and seems discontinued from some time
    but maybe you can get in touch with the author
    - going silent now :)

    a selection of my Fusion examples can be found Please login to see this link.

  • I got in touch with Dynasoft and said it's fine.

    I'll look into the MFA. If it's easy enough to implement and improves framerate then I'm in.

    I'll look into other ways to optimize my code, since it would be less time consuming anyway.

    EDIT: As I finished writing that, I fixed my performance issues. I was updating a visible string on a loop, causing massive slowdowns. Now I'm writing the leaderboard to an invisible string, and after the loop ends I update the visible leaderboard once.

Participate now!

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