ArcadEd's Forum Posts

  • No tiled backgrounds, this is just by exporting the game and looking at the sprite sheets that are created and seeing how I could reduce the size of them, or eliminate some all together. Like my FRENZY example earlier, all 4 images were 256x64, which I figured would fit on a 256x256 spritesheet, but they don't. By reducing each sprites size to 254x62, they were all able to fit on a 256x256 sheet, saving precious memory. Hope that makes sense.

  • Wow, just by making these slight changes the value in the debugger (which was 103mb during gameplay) is down to 65.

    When I get back to my mac I am going to check it out and see how much changed. YaY!

  • I might try ejecta again and see, I haven't used it in a while, mostly because it was iAd only. For this app, I might actually use iAds so it might work out.

    However I am getting far with optimizing. It's good to note that you do need a 2 pixel buffer for the image sheets. I had all of my graphics set to a power of 2 (256, 512, etc). This actually causes more sprite sheets than needed. If I reduce size of all of them by 2 pixels, I can squeeze more on each sheet, creating less total sheets.

  • By removing all the dead space from around my animations I was able to clear up another 6 1024x1024 images . Isn't optimizing fun. Really makes me appreciate how amazing C2 is and the work and thought Ashley has put into the exporting process. You probably don't get enough credit for the behind scenes stuff like this, and it's pretty freaking impressive.

  • Also, I keep hearing about crosswalk, but that is not an option for IOS, correct?

    What is the go to solution for iOS right now that has memory management? Is it Ejecta?

  • Thanks Ashely, I do understand that CJS loads up everything at once. Which is fine, a majority of my project is the main game anyway, there isn't much that would take advantage of the layout by layout loading anyway. If I got as good of FPS in crosswalk as I did in CJS, I might consider switching.

    Thanks for the answers and I will work it from there. I'll keep trying crosswalk to see if it improves for me.

  • I tried that and it didn't work, maybe more than one pixel is needed? But yeah, seems like a good approach. Little by little .

  • So I made a few changes, essentially getting rid of 4 of the 1024x1024 pngs and the memory usage when from 203 to 190. A step in the right direction for sure.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Does the transparent space in each sheet not matter towards memory usage? I'm curious because I have several sheets that all the images would fit on a 256x256 sheet, but instead is using a 512x512.

    I'm sure it's just for some reason that I don't understand, and will once this thread is done .

    Here are a few where the images would fit on a smaller sheet.

    The frenzy one for example, each image is 256x64. All 4 should fit in a 256x256 sheet, right?

  • it might not be thats just what i assumed because i noticed on every mobile export ive done (android,Windows Phone,IOS) but not when i test in the browser

    also i just thought where are you looking at memory use in xcode because i now when the app loads is when it has its higher mem use then it goes down and and if your looking at the wrong place you might be looking at that peak usage and not what it is using?

    I'm using the built in instrument tools without Xcode. It gives me a constant rundown of how much memory my app is using on the device during the entire time I am playing the game. Since all assets are loaded in at the start, the number stays pretty constant. CJS does a good job of freeing up memory when it needs it or gets memory warnings, but this can sometimes cause little hiccups depending on the device.

  • Well, I think I am getting closer. I just went through the exported folder and I have 30+ sprite sheets in the 1024x1024 size. That's about 144mb right there (4mb x 30).

    Plus a 2048x2048 and several 512x512. All together, I am going to gather it equals about 200mb of memory usage. Now the question, is there a way to combine some of these? It seems like C2 create a sprite sheet for each object and puts as much on it as it can, but doesn't combine them.

    A good example is my store icons. Each is it's own object.

    I guess this is a consideration when creating the game from the beginning . Now my game is completely playable on all newer devices as I have tested it on, I'm just trying to learn how to optimize it more.

  • I can't imagine what would be 100mb of memory usage from the wrapper overhead. I have heard file sizes are bigger, as in download sizes, but not memory usage. Can you link me to any threads that talk about it? Thanks.

  • Just doing final checks on my game. Right now in the debugger I got it down to 94mb memory usage. Great, since it was running around 230 before I started to optimize .

    Anyway, when I load the game up in Xcode (CJS exported) and run Instruments to test how much memory the game is actually using on my iPad mini it comes in around 203mb. I am using the Preload Sounds setting for my project, could this extra 100+ mb of memory be my sound files? All my sound files combined is 2.4mb, but I am not sure how they translate into memory usage. Audacity shows them at 44hz 16 bit stereo sound. If sound could make this big of a difference, I would consider down sampling them if need be.

    If it's not the sound, what could attribute to the increased 100mb of usage from the debugger to xcode?

    Ashley, any input would be great.

    I reread the recent memory management post and I have a better understanding of sound. I have 48 individual sound files. Even assuming each one is 1 second long (though most are not), that would only equal about 8mb of memory. Unless my math is off, but 172kb per 1 second of stereo sound, times 48 = 8,256kb.

  • I ran it in my Hungry Hal game which isn't a big game, but has lots of graphics. It seemed to run fine in both cases in NW, so no sure how helpful this will be. My game just might not be big enough to have the issues.

    CPU LAG:

    dt: 0.03399 | FPS: 30
    dt: 0.033 | FPS: 30
    dt: 0.03399 | FPS: 30
    dt: 0.03399 | FPS: 30
    dt: 0.03399 | FPS: 30
    dt: 0.03399 | FPS: 30
    dt: 0.033 | FPS: 30
    dt: 0.03399 | FPS: 30
    dt: 0.03399 | FPS: 30
    dt: 0.03399 | FPS: 30
    dt: 0.03399 | FPS: 30
    dt: 0.033 | FPS: 30
    dt: 0.033 | FPS: 30
    dt: 0.033 | FPS: 30
    dt: 0.03599 | FPS: 30
    dt: 0.035 | FPS: 30
    dt: 0.03499 | FPS: 30
    dt: 0.035 | FPS: 30
    [/code:3bqpszag]
    
    GPU LAG:
    [code:3bqpszag]dt: 0.03399 | FPS: 29
    dt: 0.033 | FPS: 29
    dt: 0.033 | FPS: 29
    dt: 0.03399 | FPS: 29
    dt: 0.033 | FPS: 29
    dt: 0.03399 | FPS: 29
    dt: 0.03299 | FPS: 29
    dt: 0.033 | FPS: 29
    dt: 0.03399 | FPS: 29
    dt: 0.035 | FPS: 29
    dt: 0.03399 | FPS: 29
    dt: 0.03299 | FPS: 29
    dt: 0.03399 | FPS: 29
    dt: 0.033 | FPS: 29
    dt: 0.03399 | FPS: 29
    dt: 0.033 | FPS: 30
    dt: 0.033 | FPS: 30
    dt: 0.03399 | FPS: 30
    dt: 0.033 | FPS: 30
    dt: 0.03299 | FPS: 30
    dt: 0.034 | FPS: 30
    dt: 0.03299 | FPS: 30
    dt: 0.03399 | FPS: 30
    dt: 0.039 | FPS: 30
    dt: 0.03399 | FPS: 30
    [/code:3bqpszag]
  • For me.

    Before Throttle:

    After Throttle:

    FYI.