Ran out of chunks of size 16
JamesBoucher
Member Posts: 433
What does this mean "Ran out of chunks of size 16". I get this about thirty seconds into the game.
Comments
As far as I know, destroying an actor once it leaves the screen does help with performance, and that's what I'm doing with all my games.
I have a game for example that spawns creatures every few seconds, and then I destroy them once they leave the screen, I've had 30 actors on screen at once, but then again, these actors were small in memory, hope this helps!
[Session started at 2009-12-01 21:55:27 -0500.]
[Session started at 2009-12-01 21:56:41 -0500.]
Ran out of chunks of size 16
GNU gdb 6.3.50-20050815 (Apple version gdb-967) (Tue Jul 14 02:11:58 UTC 2009)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-apple-darwin".sharedlibrary apply-load-rules all
Attaching to process 489.
Xcode could not locate source file: cpu_capabilities.h (line: 246)
Xcode could not locate source file: cpu_capabilities.h (line: 246)
Current language: auto; currently asm
Xcode could not locate source file: cpu_capabilities.h (line: 246)
(gdb)
[Session started at 2009-12-02 20:15:15 -0500.]
Ran out of chunks of size 16
GNU gdb 6.3.50-20050815 (Apple version gdb-967) (Tue Jul 14 02:11:58 UTC 2009)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-apple-darwin".sharedlibrary apply-load-rules all
Attaching to process 4698.
Xcode could not locate source file: cpu_capabilities.h (line: 246)
(gdb)
Once again the memory used keeps going up and I'm not introducing and new actors. I do have several actors (10-12) moving around.
Any help on how to go about debugging this would be great...
I've supplied all that I could concerning my app freezing and can't go any further. It does me no good to create an app if I can't get it to the market.
on the viewer and go by the framerates, so I wouldn't be able
to help you, have you upgraded
to the latest version of GS? I noticed some improvement in my platformer game
I think for now, spawning will still take up a ton of memory depending on the size of your images
I have birds being spawned that are very small in size, like maybe no more than 16kb
for each image
Send and Receive Data using your own Server Tutorial! | Vote for A Long Way Home on Steam Greenlight! | Ten Years Left
I played level 1 for a few minutes without seeing that error.
Could you list in detail what you're doing to reproduce the problem? Be very detailed, starting from the main menu.
i.e.
click start
click tank: green
click lives: 1
click ammo: fireball
click play
something like that, it'll help a bunch. Also, post your machine specs:
Machine: (i.e. macbook, imac)
Processor:
RAM:
OS X Version:
Gamesalad Version:
Send and Receive Data using your own Server Tutorial! | Vote for A Long Way Home on Steam Greenlight! | Ten Years Left
It's a Mac mini. This should not matter since it's being downloaded to an iPod touch.
GS version is 6.2 and viewer is 6.1. The latest.
Send and Receive Data using your own Server Tutorial! | Vote for A Long Way Home on Steam Greenlight! | Ten Years Left
V is for Vortex:
90 Actors
0 Behaviors
77 images
25 scenes
10 sounds
Rats of the Maze:
90 actors
0 behaviors
94 images
17 scenes
6 sounds
When I load my game to the title screen, the stats in gamesalad are:
Images: 3.0MB
Sounds: 0KB
Game Engine: 8.1MB
Other: 5.2MB
Total: 16.3MB
When I load rats of the maze up:
Images: 512KB
Sounds: 0KB
Game Engine: 8.3MB
Other: 36.2MB!!!
Total: 45MB
as soon as level one loads up, your game engine goes to 18, and Other goes up to 44.4, giving a total memory of 65, once it hits 66 or 67 it crashes.
For kicks I went into your level 1 and remove all your 'Wall Objects', I thought that maybe there were too many of them. It helped bring the game engine back down to about 10 or 11, but Other was still over 40.
I also tried removing all of the images & sounds incase one of those was bad, but same thing happened.
Anyone from the GameSalad team knows what's counted towards that "Other" number? I've got an iPhone 3GS, so I was able to play for a minute before it actually crashed. It's strange to me that it would be so high on the very first scene, which only displays an image.
I've got to run some errands, but I'll take another look later today.
Send and Receive Data using your own Server Tutorial! | Vote for A Long Way Home on Steam Greenlight! | Ten Years Left
However, in my own inspection, I found the sheer amount of walls and the amount of behaviors within each of the walls is causing a huge performance hit in the engine. You have nearly 50 wall pieces, each asking itself on each frame whether the level has changed or not. Keep in mind that the iPhone is going to have performance limitations, so you'll need to be creative on how you setup your scenes.
One suggestion is to try making a single image for your level (in an outside image editor), with the walls as white blocks and the everything else as transparent. Instead of having each single wall segment evaluating what color it should be each cpu update, just do it for that one image. Then drop in some invisible walls (uncheck the "Visible" toggle in the actor attributes>graphics) and align them with the image to create the collision blocks, and you've accomplished the same thing with 1/50 less behaviors.
I also see some other issues mentioned in this thread, so here is some more detailed information:
We've found that if a game's memory usage gets above 50-60Mb total, it start to have a high chance of 'crashing' on iPhone. This crash is actually the iPhone OS terminating the game's process because it has requested too much memory.
Another thing that can cause termination on iPhone is if the memory usage grows too quickly in too short of a time span. e.x. You change from a scene with low memory consumption immediately to a scene with extremely high memory consumption. Gradual growth is safer than sharp growth. This is a behavior of the current iPhone OS.