Ashley's Forum Posts

  • Chrome's quota is usually based on a fraction of the available hard drive space, but it's set the quota at just 300mb, which suggests there is very little hard drive space left. For comparison my system says I have a 146 GB quota. The only other thing I can think of is are you using private browsing/incognito mode or some equivalent browsing mode? That imposes a really small quota to avoid web pages abusing storage. If not then I'm all out of ideas - maybe try a different browser...

  • That's very little quota you've got there and yep, you're using most of it. Are you sure you're not running out of hard disk space?

  • I'd point out we've documented how to get started with the Cordova CLI which covers a few of those points, and some other points don't appear to be solved by your tool either.

  • Look in Construct's About dialog, it tells you your storage quota and how much is in use there. What does that say?

  • I do think people should be encouraged to try scripting for cpu intensive tasks like this.

    Just be mindful that many people choose Construct specifically not to code, so won't be interested - as Fengist already stated.

    When we added the JavaScript coding feature several people also raised the concern that they'd no longer get useful help on the forums since people would tell them "just use code". That's something I'm keen to avoid, hence the separation of the forums.

  • Have you tried freeing up storage space like it suggests? Maybe you need to delete old NW.js versions from the version manager.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • the Construct 3 build system still needs improvement.

    What improvement do you think there needs to be to Construct 3's build system? It looks like it already covers everything this tool does.

  • A .c3p file is just a zip file of a project folder. So you can rename .c3p to .zip and unzip it, or zip a folder and rename it to .c3p to make it a project file again.

  • This is the Construct 2 bugs forum. Please report Construct 3 bugs here following all the guidelines: https://github.com/Scirra/Construct-3-bugs

  • Could you file a bug and include all your system information?

  • Just to clear a few things up...

    Construct runs each tick like this:

    1. Run the events to completion
    2. Run any waits that have expired
    3. Draw the screen

    This means if you have a long-running loop in your events that takes 5 seconds, it gets stuck on step 1. Since the engine is tied up in an event loop it never gets as far as checking if any waits have expired, nor does it get to draw the screen - so you can't show any progress during a loop.

    This is exactly how many other programming languages work, including JavaScript - for example if you add a "click" handler on a button for a web page, and in that handler run a loop that takes 5 seconds, the browser never gets as far as redrawing the screen (or running any timers), and so the web page will appear to hang for the user. It's a common architecture since everything has to be done in a series of steps, each step is not interruptable (otherwise you get bugs involving half-baked states), and it's largely done on the same thread (since multithreading large and complex programs is extremely complicated and highly error prone). So the way Construct does this isn't at all unusual.

    The ideal solution is to actually run the work on another thread, but Construct doesn't support that yet, given the extreme complexity of the feature and questionable feasibility - see this blog I wrote a few years ago on Why do events only run on one core? Therefore the next-best solution is just to run the work in chunks, so the engine has the chance to periodically continue to the other steps needed to run a tick, including drawing the screen.

    An obvious way to do this is to run a fixed number of iterations, like 100000 per tick. However this isn't ideal since on very fast systems it will complete the work early, and sit idle while it waits for the next tick, meaning it doesn't complete as fast as it could; and on slow systems that amount of work could still be enough to make it noticably slow.

    So really the best approach is to do work for an amount of time. So you'd break up work in to chunks of 15ms, for example. This means fast computers get more work done per tick, and slow computers just take longer, while also allowing the possibility to reach 60 FPS if everything else is fast. But! 'Wait' events don't run during loops, so you have to use a timer value that can update during a loop... and in Construct, that's the wallclocktime expression. So you should save that time at the start of the loop, and then repeat until wallclocktime is greater than startTime + 15ms.

    Also...

    In Delphi, there's a repeat:until loop which is a lot like a while.

    As I pointed out in the thread you linked to, this is supported in Construct. A 'While' followed by another condition is equivalent to 'Repeat until condition false'.

    The difference between those is, in a while loop, if the condition is met anywhere in the middle, the loop breaks.

    Almost every programming language I've ever heard of only checks loop conditions upon repeating the loop - so this would be an unusual design if it is the case. The reason most languages only check conditions upon the repeat is that if they can break *anywhere* inside the loop, it makes it extremely slow, since it has to keep doing "is condition false" checks after every single statement, which can be a lot of extra work. So that design would basically make it impossible to write efficient loops.

    Also newt or anyone else who says "just use JavaScript" - that is not really helpful in this forum. There is a separate scripting forum for people who want to use JavaScript. In any posts outside of that forum the assumption should be they are working only with events and only want help with events.

  • You can retrieve the Color property of an object with the ColorValue expression.

  • I would really discourage the use of 'Wait' for building logic like this. 'Else' is definitely the correct way to go. 'Wait' is only when you intentionally want to delay something by a period of time, such as firing a laser half a second after pressing spacebar. Since 'Wait' breaks the normal sequencing of events, if you use it in lots of places for general-purpose logic, you'll probably end up with nightmarish problems where actions and events are all running in an unpredictable order and you can't figure out how to get things in the right sequence.

  • One question Ashley is there any reason not to include wrapping in the plug itself?

    Yeah, that's a good point, I'll see if I can add that in.

  • You can use the desktop download and save the project as a folder, which can be used with source control.