Ashley's Forum Posts

  • So if I'm correct the RAM usage is MUCH higher than if every object type had its own spritesheet, as in C2. This is probably why the game is crashing all the time when exported with C3.

    You can customise the spritesheet size to help manage the tradeoff here. Do you have actual measurements to indicate the difference?

    FYI automatically generating spritesheets are extraordinarily complicated and have many subtle tradeoffs. I have worked on this extensively for years and there are a lot of surprising results. It depends entirely on the project and specific images being used. Spritesheeting can actually reduce memory usage thanks to power-of-two packing, can reduce the download size, improves runtime performance, and usually significantly improves loading times. However it comes at the cost of reducing texture memory management granularity. C3 does arrange images together based on their usage across layouts to try to mitigate this.

  • Splitting spritesheets in to individual images will actually increase the download size.

    Suppose you have 20 frames of the player sprite, and the player's head is the same in every frame. A spritesheet image will compress away to nothing the 19 copies of the identical player's head as identical to the first, making the file smaller. If they are in separate images, then each file must store a full copy of the player's head - even if compressed, you'll have 20 copies of the same thing.

    In other words, when all the images are in the same file, image compression can remove similar parts of the image across frames. So you're hoping that tweaking the image compression format will more than outweigh the effect of bloating the download size by splitting everything in to individual images. It's not clear that this will be effective.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • It's hard to help without a link to the published game on the web. Usually it's a misconfiguration with the server - the first thing to check is the browser console (press F12).

  • When does your iOS development/publishing certificate expire? Maybe you just need to renew it.

  • If you use "wait" in a loop, then by the time the next action has run the loop has finished, so the loopindex expression won't work.

  • I'm not clear exactly what you're asking, but it sounds like you might want to use the 'Select all in project' option when you right-click an object in the Project Bar.

  • Can you identify where it's injecting a script, what it's injecting, and why it's breaking the Android export? If so we may be able to harden Construct against antivirus software that is breaking things. Otherwise I think it would be best to report it to Kaspersky as some overzealous injection that breaks things.

  • I think you misunderstood. I meant: use functions to change the animation. Then you don't need 'trigger once' to try to figure out when the animation changed; it changes in your function. I didn't mean to call functions in the events with "trigger once".

  • Moved to 'Your creations' and deleted two other duplicate posts. Please do not cross-post in the forum.

  • It looks like you're trying to do some work the first time a new animation plays. It would probably be easier to call a function whenever you want to change the animation, change the animation in the function, then do some extra work in that function after the animation has been changed.

  • Just use the 'Set response binary' action before the request.

  • blob: URLs only last for the duration the browser window is open. That is irrelevant to this process though, because you immediately load it in to a Binary Data object and send it to the server.

  • Moved to C3 forums.

    You should avoid converting to base64 if you can - it's slower and uses more bandwidth than the binary (blob) equivalent. Any good server should be able to handle binary data directly.

    So the approach I'd recommend is:

    1. Take a canvas snapshot (either runtime or Drawing Canvas)
    2. Use AJAX to load the snapshot URL in to Binary Data
    3. Post the Binary Data to the server

    If you really can't figure out how to load binary on the server and are willing to use a less efficient approach, the Binary Data object can also convert to base64.

  • Unfortunately iframes on iOS just don't properly support scrolling. We looked in to this in issue 2435 but couldn't figure out a decent workaround. I think the only solution is for Apple to implement proper iframe support on iOS.

  • Nobody's reached out to us, and I don't think they will. Some good points have been raised already: it looks like it's aimed at AAA games, particularly the kind of games that are a 50GB+ download and require a $2000 PC to play. With Stadia you can still get to play such games on a cheap low-end device, and without having to wait for a colossal download. Construct 3 already excels at making lightweight, high-performance HTML5 games, which still load fast and run well even on cheap low-end devices. So it's already great for that kind of casual gaming. Putting that behind a cloud game streaming service would likely actually make it a lot worse, as Keyo pointed out:

    Why in the world would they allow the streaming of a Construct game if the streaming would easily surpass the game download size itself in seconds?