TackerTacker's Forum Posts

  • Can anyone think of a single other subscription based engine that doesn't have a fully featured free version?

  • You do not have permission to view this post

  • You do not have permission to view this post

  • Take a look at Tilesetter led.itch.io/tilesetter

    With that tool you should be able to generate the 47 tile variants with the tiles you already have.

  • You know, that makes a lot of sense.

    Right?! Why would you still pay for C3 if you have to learn JS anyways? Very observant, with a simple and logical conclusion.

    I wonder if more people think that way?

  • Oh wow, now those are some banger addons :O

    It really shows that they are designed by someone with hands on experience, who knows how C3 ticks, and where its shortcomings are.

    Thanks for making these, and I hope you'll do more in the future.

  • Containers do not work with families, and you need families if you want to make things generic in C3.

    If you work with containers you need to add a new dictionary for every single object which you then can't universally address because you need to perform actions on that particular instance of the dictionary.

    Group #1 shows how it does work, here if you click Sprite_A, dict_A loses health, but not dict_B.

    Group #2 shows how it should work but doesn't. If I click Sprite_A here, dict_A AND dict_B lose health.

    Here is the project file: container_data_test.c3p

    But this is just an example I threw together, and it's not about solving just this very specific case. Having the ability to store bigger data in variables would make dealing with it as easy as dealing with strings or numbers. I often lose track of what I was working on because I get distracted by needing to solve mini puzzles on how to deal with data.

    Maybe not everyone likes my solution to the problem, however basically everyone expressed that they do find dealing with data difficult. That was my motivation behind this suggestion, and starting a discussion.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • I'm not suggesting this should replace JSON/Dictionary/Array, so you will still be able to use it.

    In other engines you can store all kinds of stuff in variables, it is not some crazy outlandish idea. Construct is actually very odd in that regard that you can't even store arrays in variables.

    Also at this point I'm expected to know more different coding paradigms in this "No coding required" engine with "Game Changing Visual Scripting" than I need for an actual coding required engines.

    UI = Html + CSS

    Data = XML or JSON

    And more and more often = Javascript

  • i think there is a plugin called herostats that does all this

    I don't know of such a plugin, can you provide a link please GeorgeZaharia

  • ...dealing with JSON is not as easy in C3 as working with variables

    So you mean it doesn't bother you?

    Because I don't see how the JSON workflow is any better than the workflow with Dictionaries for example. Basically all the points I made under "Things to avoid" also apply to JSON, or not? And only half of what I mention under "Requirements" is actually possible with JSON.

  • R0J0hound made a good suggestion

    ...to be really useful it should be possible to change all the values at once easily. ...Like in many programming languages you can set a vector struct with something like velocity=vec(100,100).

    So here is a mockup of how that would look.

    Here you can see that it gives hints for the expected data, just like functions.

    And this is how it would look with the complete data filled in. Again including the nested custom data. First one is with the custom data written in directly, second one is with custom data already stored in another variable.

    Here are a few ideas how a global variable containing custom data could look like on the event sheet.

  • Suggestion for a custom data feature

    Posting the suggestion here because the forum has much better formatting.

    Here is the link to the actual suggestion board please vote for it if you like it.

    https://construct23.ideas.aha.io/ideas/C23-I-266

    Mockup of the feature in action

    Mockup of setting a value in a custom data type

    These mockups show how everything could work, and I mean COULD, I'm not hell-bent on this exact implementation.

    With the custom data feature I try to address a constant annoyance I have with C3, handling of data. Specifically handling of data that is more than just a single float/string/boolean value.

    To explain my 1st mockup, the idea is that you create a Custom Data structure with a unique name as a global identifier. You create a new custom data structure -> you set the name -> add variables -> the variables get a default value. Once you created a custom data structure it shows up as option in (instance)variables with the unique name you choose (lets say it's "my_data_type"). If you set the variable to "my_data_type" it will apply the default values you've set. Double clicking it opens a window pretty much exactly like the window where you add/edit normal instance variables, where you can edit the values of "my_data_type" (but not the actual structure/ which data types are in it with what names or their default value).

    The 2nd mockup shows how to set a value in a custom data type in the event sheet. The content of the custom data type is actually not shown in the expression window because it would clutter it too much, just the name for the instance variable that is holding the custom data. Opening up the instance variable with the custom data is similar to normal instance variables but you get a 2nd drop down to specify which value from the custom data you want.

    Requirements no matter how the final implementation ends up looking like.

    • Storing of more then just a single value in (instance) variables, a collection of data.
    • Being able to handle this data collection like any other variable, it can be easily copied to different variables of the same type ( set "my_data_1" to "my_data_2" ), it can be set as parameter in functions/custom actions ( function( my_custom_data, float, string ) )
    • Ability to create the data structure in the editor
    • Easy access to the data ( variable = player.my_custom_data.value, auto complete can suggest possible variables because the structure of the collection of data is known ( In the mockup the custom data "hero_stats" has hero_type/health/strength/intelligence/immunities ) )

    Things to avoid

    • No double picking ( pick player -> pick dictionary with UID ( player.my_data_UID ) -> do something with data )
    • No conversion of data ( variable = rgb( 255, 255, 255 ) -> variable = random number -> how do I get only red out of this???, OR dictionary -> function( dictionary.AsJSON ) -> pick dictionary -> dictionary load from JSON string )
    • No need to remember names or numbers ( like dictionary keys or array indexes, dictionary.get( ??? What's my key again?), array.get(?,?,? gotta open up the data sheet again and look up the number ))
    • No AJAX to load data

    One thing that would be amazing is nested custom data, but idk how much more difficult this makes the implementation, so I rather have the feature without it than not having it at all. I did however include nested custom data in the mockup to show how that would look like.

    One last thing worth mentioning is that there would be another way of achieving all this, if it was possible to save instances themselves in variables. I imagine that would be much more difficult to implement, but maybe I'm wrong, idk. If we could stuff Sprites into variables and be able to access their bits like "player.sprite_instance.instance_variable" then that would be even better. But I imagine that's harder, would we also be able to access behaviors on it then like "player.sprite_instance.8Direction.MaxSpeed" or things like "player.sprite_instance.AnimationFrame"?!

    Okay if you read all that you must be interested, so please go over here and vote for the suggestion.

    Vote here!

    And leave a comment with your feedback below, thanks.

  • I had time now to familiarize myself with the custom actions some more, I really love them. I found some things that I think would further improve them.

    #1

    I think the extension functionality of the custom actions would be much easier to see, and follow its logic, if there was an icon here when extended.

    maybe even -> (extends) [ico] item pickup

    [edit] #2 was fixed in the latest Beta version.

    #2

    The A key should rotate the blue object A

    The B key should rotate the yellow object B

    which it doesn't, both keys rotate both objects.

    I guess it's because I rotate the object family, but since I call the custom action explicitly from object A/B, I would expect that only the one I call rotates.

    A/B object test project download:

    https://cdn.discordapp.com/attachments/637830595778445322/1097172566680023090/custom_action_suggestion_AB_demo.c3p

    I can't use this feature for this type of general purpose functionality with the way it works right now, which is unfortunate, since it could help me reduce code complexity in my projects.

    Here is a more real world example:

    A simple action to update UI text with a little color flash animation to get the players attention, alerting them that something has changed.

    The family

    and I call them like in the A/B example directly via their objects.

  • You do not have permission to view this post

  • The SteamDB engine list is unfortunately only an educated guess, it isn't a guaranty that all these games were made with Construct, same for any other engine SteamDB is listing.

    So it can be a good starting point for further investigation, but I would not blindly put up a game on here without confirming that it's accurate.