Ashley's Forum Posts

  • Yes, please always provide a .capx. Too many times we can't reproduce the issue from the information provided, often because the problem is more complex than you think, so we just won't look at reports without a .capx.

  • Closing as not a bug. Triggers do not fire in the order the events are shown in the event sheet. In this case 'On down arrow pressed' fires, then 'Every tick' sets both variables back to 0.

  • Should be fixed in the next build. Also improved the "Bookmark" column to say the first condition text, e.g. "System: Start of layout" instead of just "Event".

  • Import your videos as project files.

  • There is not a central store for ordinary Windows desktop apps. Traditionally they have all been self-published (like we self-publish Construct 2). However the Windows 8 store allows you to list desktop apps, but they won't be visible to anyone on XP/Vista/7.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • You could try using Construct 2 as the front-end, with WebSockets to communicate with your backend.

    WebSockets don't quite cut it for real-time connectivity (where latency is a significant concern, such as in "twitch" shooters). I think it might be OK for a slower-paced RPG providing you have high-quality, geographically placed servers like Bombermine does (which uses WebSockets as well AFAIK). WebRTC solves that since it supports UDP instead of TCP, but that may be a way off wide support, especially on mobile.

  • This thread is 2 years old! Since it was posted we have fully implemented exactly what you are asking for - a full state save/load. See How to make savegames. You might also want to check out the Persist behavior.

  • This is already on our todo list.

  • This will quickly be forgotten if you leave it just on the forum. We've got a whole Tutorials section of the site for things like this, you should post it there as well.

  • Ah yes, I forgot to mention this in the export-time optimisations tutorial, but it's not usually a significant saving. At export time, C2 counts the colors to determine if images will fit in to PNG-8 - but it also checks if the color values can be losslessly converted to a lower bit-depth texture in memory. We generally say all images are decompressed to 32-bit ARGB in memory, and this is indeed generally true. However if an image has a fully opaque alpha channel, it marks it as 24-bit RGB instead of 32-bit ARGB. This potentially allows the driver to save 25% of the memory by skipping the alpha. However I think most memory-constrained devices only support 16 or 32-bit textures, so in practice this will still turn in to a 32-bit texture in memory, and the driver will add an opaque alpha channel anyway.

    It's also possible C2 will notice the image fits in to a 16-bit format, like 1-5-5-5 ARGB, or 5-6-5 RGB. This reduces the memory usage by half, and can actually render faster too (since less data is involved). However it's usually pretty rare for images to be able to be marked as a 16-bit format, since C2 only does so when it's truly lossless. A single pixel that can't be losslessly represented by, say, 5-bit values instead of 8-bit values, means the image must be encoded back to 32-bit ARGB - and this happens at the level of an entire spritesheet.

    It's also possible to use compressed texture formats. These are like simple forms of JPEG with light compression ratios that are handled natively by the GPU, so the texture can actually be stored and directly rendered from a compressed format in memory. This can save loads of memory, but has several problems: there is still not one compressed texture format that all GPUs support; some formats are patented and we would not be able to ship encoders with Construct 2 games; most of them are lossy, so will slightly tarnish artwork (like low quality JPEG settings); some of them don't support alpha; and so on. It's possible one day these problems will be solved, and we'll add compressed texture support to exported projects, but again this will probably only happen to images in the project and not images loaded from a URL (since C2 can pre-process them).

    A much more important saving is memory use: a 130x130 image loaded from a URL is not spritesheeted, so is probably placed on a power-of-two surface in memory at 256x256, using about 4x as much memory as necessary. If the image was in the project, it'd probably be spritesheeted in a way that wasted much less memory.

    Construct 2 works really hard to both compress images to be as small as possible, and save as much memory as possible, using all sorts of tricks. Every time you load an image from a URL, you are missing all of those optimisations. If you make heavy use of loading images from URLs, you can end up with a significantly less efficient game than if you had everything imported to the project as object images.

  • Do you mean like the Dictionary object's 'For each key'? (It just iterates an object's properties rather than an array, but the code would be very similar, and has an expression to get the current key.) Check the source code to see how Dictionary does it.

  • Are you running Windows 7 N? That doesn't come with the AAC encoder (even though it's Windows 7).

    Alternatively, have you accidentally put Construct 2 in to compatibility mode to run as if on an older version of Windows?

  • The 'reload files from disk' feature isn't designed to do this. It only re-loads images already in the project folder, and doesn't keep any references to where the files were originally imported from.

  • Moved to website issues, might be a problem with the new server.

  • It releases tree.jpg from memory. There would be no point in keeping it!

    I would still recommend you actually use images in objects rather than loading from URLs. Construct 2 can't preload images loaded from URLs, so you're liable to jank, and external images don't go through a number of great optimisations at export-time, some of which also save memory (e.g. spritesheeting, WebGL format tagging, etc.)