Posting this detailed analysis on behalf of another Construct 2 user:
I ran a few test specifically for this issue. Here are some of my findings. Please note, these are not concrete and should not be used to say what exactly the cause is. yet, they are meant to aid in trying to determine what the issue is and how to mitigate it. This is not to say the issue is with Windows, Construct, or a graphics driver but yet to show there is some sort of issue. What the root cause is, I am not sure. What the fix is. I am not sure. Who is responsible to fix it, I am not sure. But what I do know, is there is an issue and it is out of the users power to find the root cause and how to mitigate the issue. This is by Constructs design (closed source, no debug tools, no advanced settings that can change). As such, Scirra would have to step in to help, in order to move forward towards a fix.
Software is also complex, so I would doubt it is one issue specifically but a combination of things (ie: it very well could be Construct because of X, Windows because of Y, and graphics because of Z. As well, there are probably endless solutions too). I only say this (even though it really should not need to be said) so there is no misinterpretation and no one can say X, Y, or Z is to blame. As I will state later in this post, it is too early to even try to pass blame. One simply cannot say "It is categorically windows" at this stage of this bug. This would be like me blaming my power supply is at fault without solid evidence and ordering a new one for my computer because it won't turn on, without checking the power cable, all plugs are attached, and even the breaker is not tripped. Until then, it is wrong to state the power supply is what needs to be replaced and is a costly mistake. That is what I am looking for as a first step, the why. Not who is to blame, but why is this happening. Without that, no solution can be found at all.
Captured a video of this laggy issue today:
You will notice a couple things:
- Drawing the opened image is so slow, you can see the background "wave" in
- It takes the image toolbar a bit to load
- The properties of the object, actually waits for the image toolbar to load before the properties can load (which has a delay also)
I also ran fresh installs of 2 Windows Machines:
Windows 10 version 1511 build 10586.494 (roughly July 2016 build, so over 2 years ago)
Windows 8.1 Pro, version 6.3 build 9600 (almost 4 years ago).
Important to note, when I in the following mention Windows 10 (W10) or Windows 8.1 (W8) I am not implying this exist for every machine. I am only stating this is what I had observed on my machine.
- W8 was a lot more snappy. Things felt quicker. in general
- W10 suffered many slowdowns that W8 did not
- Deselecting images was painfully slow in W10, pretty fast in W8
- Switching tabs in W10 were laggy, freezing, and unreliable. Did not get this in W8
- Creating new Objects was fast in W8 versus W10
- Right clicking objects to remove them was painfully slow in W10, instant on W8
- Having a large layout open, but inactive (working on another tab) made W10 super sluggish and laggy. Almost no effect in W8.
Lastly, the object refresh Construct does was noticeably slower in W10. For example, when you delete an object you can visibly see the editor go through all remaining objects properties. I have no clue what this means, just something I noticed.
In short, it appeared to me that anything related to objects, menus, and windows was much slower in W10 compared to W8. Sometimes, to the point of freezing in W10 compared to W8 being so fast, you cannot tell the machine had to do anything to load what you are seeing.
This was tested on r250 and r232 (aug 2016 version). There was a bit of difference in W10. Some things were faster. some things were slower. but, it was no where near as reliable as running it on W8.
For example, opening the image editor appeared faster, but deselecting was slower (when comparing r232 vs r250). I did not go too in-depth with this because there are too many factors for someone like me to really determine anything without proper tools.
I do believe, solely based on this test:
- One cannot say for sure windows update caused this. It is entirely possible, but not proven
- It is safe to assume, meltdown is not the issue
- It is safe to assume, a recent windows update is not the direct cause
- There is a good chance it is isolated to Windows 10 (note: this is very different than saying Windows 10 caused it. I am simply stating it might be isolated to Windows 10, I am not implying what the cause is. This is needed to try and narrow down the root cause, instead of going on a wild goose chase. AKA, you don't need to waste time trying to debug Windows XP)
- Not enough data is available to say if certain Windows Updates caused or improved Construct. It is entirely possible it plays a factor, but it would only be a piece of the puzzle at this point in time.
- Not enough data is available to say for certain if certain Construct versions caused/fixed certain issues. Like Windows, it is a piece of the puzzle that is unknown. It is entirely possible and not off the table based solely on these test in this post.
I believe there are some important steps to move forward:
As a user:
We can only really buy a different machine and hope it works or, move onto a different platform altogether. Construct is not open-source and provides absolutely no tools or settings for users to tinker with (ok, there are 1 or 2, but nothing like other software that allows users to tinker it specific to their machine).
As the software maker:
1) There is an issue, this needs to be recognized. It is not to simply say, x is at fault, or it is because of y. We are not there yet. Step 1 is to recognize some users are having issues.
2) Now that the issue is recognized. Can you reproduce it? If yes, great, we can move onto 3. If no, then more investigation is needed. Until you can reproduce it, you cannot debug it and you cannot say which system(s) or parties are causing the issues.
3) Now that it is known there is an issue and you can reproduce it, it is time to dive into the issue. Find out what the root cause(s) are. It is possible there are multiple, so one thing at a time might need to be tackled. For example, starting with why deselection takes so long.
4) A root cause has been found. Now, how can it reasonably be fixed or made better. Can you make a work around, do you need to approach intel, microsoft, or some other party? Is it faster or more reasonable to do x or y. Or, is it looking to be absolutely impossible to fix at this point for various reasons.
5) resolution. If it was fixed, horrah! If not, users need to be aware of the issue and what causes it.