oosyrag's Forum Posts

  • For instance with your mouse example, it feels like checking whether the mouse has moved would be slower to figure out than just setting the object to mouse position? Or barely a difference?

    That was an overly simplified example, and in that case there wouldn't really be a difference that mattered.

    For a more practical example, see this project I put together for another thread: dropbox.com/s/v56jw51ktwd70mj/bfsfloodfillexample.c3p

    If event 2 ran every tick (following the mouse, since its a highlight) with the heavy flood fill algorithm behind it, it would be significantly inferior to only running upon changing tiles.

    Basically I try to avoid running actions at all if not required (they won't actually do anything). If it's just one action, then whatever. But if its more, it can make a massive difference. It's very easy

    normally to overlook this, because of the fact that there's no discernable difference between "Event runs, nothing changes" and "Event doesn't run, nothing changes" (unless you start losing significant framerate, as would be the case in the flood fill example). But in the first scenario, the cpu could be doing x amount of work in the background, even though there are no visible changes.

  • construct.net/en/make-games/manuals/construct-3/plugin-reference/ajax

    construct.net/en/make-games/manuals/construct-3/plugin-reference/binary-data

    The AJAX plugin is actually the key here.

    Binary data

    The AJAX object can receive resources as binary, and also post binary data, using the Binary Data object. This is also useful to fetch local resources like canvas snapshot URLs or video recording URLs, and load them in to a Binary Data object to do something else with them, like save it to storage or upload it to a server.

    Set response binary

    Use this action before a Request action to read the response in to a Binary Data object instead of returning it as a string in the LastData expression. This allows for non-text resources like images to be fetched and processed directly.

  • You may be able to save the image binary into a global variable (to be saved with the built in save/load) or a local storage key. If not, you could at least save the path of the chosen image as a variable/local storage to load again next session.

  • Your OP said you needed to generate a set of nonrepeating numbers. That's what the permutation table does. And you were talking about letters.

    Your second post has nothing to do with either of these things, and is not specific enough to build any particular solution without answering the issues mrcgkh raised.

  • Some recommendations for cpu:

    Any event that can be triggered, should be triggered.

    Avoid running anything every tick, even though it seems like it might need to. For example, setting something to the mouse position every tick. This can be optimized by setting it to the mouse position only when the mouse moved from it's previous position instead.

    Narrow the scope of every event as much as possible, especially in loops or for each element, to act upon only what it needs to act upon.

    As for memory usage, that memory article scirra.com/blog/112/remember-not-to-waste-your-memory covers it pretty well. Generally speaking you don't want to even get near the limit of available vram of your target system. If you need to exceed that amount, use layouts to break up and manage memory usage.

  • Create a permutation table size 26 with the advanced random plugin. Associate each letter with a number, 0-25.

    construct.net/en/make-games/manuals/construct-3/plugin-reference/advanced-random

  • No, there is not.

    But there may be other methods to achieve the end result you desire.

  • I notice you seem to have a lot of trouble with saving your projects, from your previous threads.

    Most people do not have trouble doing so, so it is hard to know how to help you with the limited information you provide.

    What platform/browser are you running on?

    Were you able to save your project before?

    Are you able to save any project, via different methods and websites? (Try dropbox or local save)

    Did you make any changes between when you were able to save and were not?

    Are you using any addons? Which ones?

  • It is a fairly common question.

    godotengine.org/qa/18559/how-to-add-commas-to-an-integer-or-float-in-gdscript

    forums.unrealengine.com/t/add-thousand-separator/43710

    stackoverflow.com/questions/721304/insert-commas-into-number-string

    It's solved by regex already, so it's not something that engine developers normally go out of their way to specifically add in after already supporting regex.

    Also, while it can be difficult for a beginner to think through it, it wouldn't be hard for an experienced developer to put it together in half an hour with the math tools provided, which you can then utilize. That's all libraries and behaviours and plugins are in the programming world: people who have put together ready to use code so you don't have to yourself.

    I personally had some difficulty because I ran into exceptions and cases where my approach would break or not work, due to my unfamiliarity and lack of research on how other people did it before trying to tackle the problem. But programming can always evolve. I'm thinking of I can clean it up, turn it into a function with parameters, and make sure there aren't any buggy situations, I could probably submit it as a feature request and get it added as an expression. (Alternatively make it an addon, copy and paste able function/event, or JavaScript library, ect.)

    Now that I actually look and research a bit, of course it's already been done before. stackoverflow.com/questions/1990512/add-comma-to-numbers-every-three-digits

  • dropbox.com/s/v56jw51ktwd70mj/bfsfloodfillexample.c3p

    Here is an example of a flood fill based method. Note that this particular implementation is exponentially inefficient as the range increases, I didn't look into optimizing or if there is a better algorithm.

    It also doesn't take into account obstacles or terrain movement cost, but that would just be one extra step. Currently each step subtracts 1 from your range. If you had terrain costs, you would subtract (1+terrain cost at the destination tile) instead. Impassable terrain could simply be represented by a really high cost tile.

    Edit: Made a couple minor tweaks by adding a couple conditions that should improve performance significantly.

    Edit 2: Reference if you're interested in further reading: redblobgames.com/pathfinding/a-star/introduction.html

  • I thought this would be a fun and quick little exercise. It wasn't and now my brain hurts.

    dropbox.com/s/magdetkf8l5yrpn/numbertobeautifiedstringexample.c3p

    Note that this breaks when dealing with really large numbers. The editor itself breaks too, so I don't know if its a bug or a hard limitation.

  • Use a spritefont instead of the text object.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Refining the scope of a problem by narrowing it down to its core, and presenting it in a clear an concise manner makes a huge difference. This is true for both bugs and suggestions.

    As I've mentioned elsewhere, the responsiveness from the developers is mind bogglingly superior to any other software I've used, yet people seem to complain all the more for it due to increased expectations here.