Ashley's Forum Posts

  • As ever the best way to deal with performance questions is rapidly mock something up and take real measurements. This will help you identify what the real problems are rather than speculating.

    I think with a large open-world style game the main issue you will come across is managing GPU memory efficiently. It would be all too easy to just load in hundreds of megabytes of textures for all the content and end up with really high system requirements. You'll need to make careful use of C3's memory management actions. Splitting content across layouts is a good idea if you can, since the C3 engine will then handle per-layout memory management for you (and it will also tend towards having fewer objects).

    Other than that, make sure you enable "render cells" for efficient drawing on large layouts, especially on layers with mostly static instances. Then, providing most of the far-away content is static, the engine is highly scalable (i.e. more or less able to work in constant time regardless of how much more content there is in the layout). If you have far-away objects moving or having events tested on them, this will consume more CPU time, but then this is entirely within your control as a game design issue and not an engine issue.

    One useful performance approach for open-world style games is to use overlap conditions to reduce the set of objects to run events on. Suppose you have 5000 instances spread across a huge layout. Normally a single event on that object will have a high CPU overhead, since it must test all 5000 instances. However you can take advantage of the efficiency of collision cells to reduce this. If you make a large invisible rectangular sprite as large as the area you want to count as "nearby", and then pin this on the player, the condition "is overlapping NearbySprite" is very efficient since it uses collision cells to reduce the instances to check against. In other words it won't check all 5000 instances - it will only check against nearby instances and then filter those down to the ones overlapping NearbySprite. Then you can add more conditions to the event, and the rest of the event runs efficiently only taking in to account nearby instances, without ever having to iterate everything in the layout. (If you're worried about the performance of collision checks, they're pretty fast, and in this case the main point is to improve the algorithmic efficiency, i.e. reducing the number of instances processed.)

    You can then extend this to a single "X is overlapping NearbySprite" event and all the rest of your logic for X in subevents beneath that. Then you have an efficient way to only run events for objects that are nearby - the amount of CPU time won't increase no matter how many far-away instances are added.

    I don't think anything else will prove to be as significant as those points. In particular using folders has zero impact on CPU usage, and the GPU rendering performance only relates to what's on-screen, so is naturally scalable regardless of the size of the layout.

  • It sounds like this bug in the Instant Games platform.

  • Make sure you log in to Construct 3 with the same account you paid for.

    If you still have trouble please contact supportgks@scirra.com for more help.

  • The project uses images which are too big. E.g. Wolvus has a 5339 x 3006 image. This is larger than the maximum texture size on many devices, so the project will fail to load on those devices. Make sure all images are 4096 pixels or less in size.

    This happens often enough that the next release of C3 will warn you when exporting with such large images.

  • There are images over 4096x4096, which is larger than the maximum texture size on most mobile devices. E.g. Buildings has a 5664x3264 image.

    This seems to happen often enough that I added a warning when exporting with images over 4096 pixels big in the next release.

  • Which version of C2 are you using?

  • If you decide you want to upgrade contact us at supportxts@scirra.com and we'll sort something out.

  • BTW if you're only using the C3 runtime, this bug fix in r133 is probably relevant:

    C3 runtime: playing audio now immediately counts it as playing as it did in the C2 runtime (previously there was a short delay before 'Is playing' became true)

  • Did you try updating the Android System Webview and Chrome apps, like it suggests?

  • Web pages don't provide an exit option. If the user wants to close the page, they simply close the tab or browser window.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • After around 6 years on Steam, as part of our wider plans to phase out Construct 2, we will be removing Construct 2 from sale on Steam on January 31st 2019.

    Existing customers will be unaffected. We will continue to support existing C2 users on Steam, and maintain the software with updates, on equal terms to the standalone version as we have done over the past 6 years, until C2 is fully retired. This only removes the option for new customers to purchase from Steam.

    Construct 2 will continue to be available on the Scirra Store for the time being. This announcement only affects the Steam version of Construct 2. At this time we do not have any further news about when C2 will be retired. However customers should note that Construct 2 was first released around 8 years ago in 2011, and will be retired in future, so we recommend that any new customers purchase Construct 3.

  • It looks like a bug. Please file an issue following all the guidelines. (We need all that information to be able to help.)

  • I meant arbitrarily, not randomly. It's not about when you use it, it's about the circumstances in which you use it.

  • Only playing if "Is tag playing" is not true should cover this. I don't understand why it wouldn't work, it should do. Maybe file a bug if that doesn't work?