Ashley's Forum Posts

  • The events are constantly true, so every tick you schedule a new 'Wait' with all those actions after them, which probably causes all the actions to conflict with each other. Try adding 'Trigger once' to the events so it only does 'Wait' once.

  • Are you using the latest release? The latest versions already group different objects on to the same spritesheet if they are consistenty used together on layouts across the project.

    Either way, it's a common mistake to put too much artwork in to one object - we've seen a number of cases where that was to blame for unnecessarily high memory usage, so it can definitely be a bad thing. Perhaps if you group a small number of large images together that can be a benefit, providing they're always all used together.

  • Taximan

    > To save memory you can group many objects in a single sprite

    I must say that it has already crossed my mind and I'm thinking about doing this. Although that would require some major changes to my event sheets. So you really had advantages with this?

    This is actually worse for memory management. Construct can only load or unload entire objects in to memory. If lots of objects are combined in to one it forces Construct to load everything, making it likely memory is wasted. If they are kept as separate objects there is better granularity to load some but not others, saving memory.

    But there is one thing I can't find info on is the Project property Max Spritesheet Size.

    It's only available on the beta channel at the moment. We only update the documentation when it makes a stable release.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • FYI that is mentioned in the signalling server description:

    purchasing an SSL certificate to encrypt the connection to the signalling server, which improves connectivity for some devices

  • I'm afraid I'm not telepathic - the reason we have all the bug report guidelines is to ensure there's enough information to actually be able to help. If you don't provide that all I can do is guess, and if you don't like my guess, then I suppose I should insist on the full details set out by the guidelines.

  • However, some more insight into how Construct manages memory would be a great fit there.

    That's also covered in the manual.

  • See Performance Tips. This is up-to-date advice documented in the manual.

    I must note that people often make games that exceed the hardware capabilities of their device and then blame Construct. You can't do more than the hardware specifications of the device allow - no software or tool will save you from that.

  • The problem makes no sense. The trigger fires before changing the "is connected" state. I would guess this is simply a mistake in your events. I can't tell any better without more information.

  • The project is corrupt because the object "smfighter" has two animations named "Animation 10". I deleted both and it opens again - here's the recovered project: https://www.dropbox.com/s/ex33ca1sbuvch09/somari-recovered.zip?dl=0

    We definitely want to fix any project-corrupting bugs but there's nothing else we can do unless we know how it happened in the first place. If you can figure out a series of steps to create the problem in the first place, please do file a bug report.

    While working with that project I did come across another bug in spritesheet building... it may or may not be related to this case, but I managed to fix it for the next release. So you should probably wait until the next beta (r135) before continuing to work with the recovered project.

  • It looks like you define a function but never call it. So the code will never run.

  • No idea. My best guess is a third-party addon with a missing or unavailable file.

  • 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.