Growing memory problems - fix on the way?

Having worked for a while now creating a book in Composer, I am experiencing growing playback, preview and authoring problems.

My question is twofold:
1. Will you - and to what extent - be able to make the application more stable in an update?
2. Will the same memory-related problems also appear in the compiled app? I can't think Ill get very good reviews on an app if it randomly crashes, stutters, or fudges up playback.

Again, I am not asking this for any other reason than the fact that i am putting huge amounts of work into your tool and if the end result will have this low quality it may be all my work is wasted. I would like a realistic update on your progress with memory-related problems.
1 person has
this problem
+1
Reply
  • Dan (Official Rep) November 04, 2011 12:27
    1.) If you let us know what actions you are seeing the memory creep/leak on it will help us narrow it down and plug them. When we do updates we resubmit all code so we can potentially fix anything as long as its not a violation of Apples laws. Stability is always a keen concern for us as a tool is unusable if it crashes all the time. They can be very action specific like, I edited a frame and rearranged it from the inspector window from the context menu on an animation object Then went into preview. Whereas if you did it from the inspector button or didn't go into preview right away the leak may not occur, making them hard to track down so all and any info is useful and appreciated.

    2.) Without knowing what the exact cause of the leak is its hard to say, but we will endeavour to find them in the compiled version of the platform as well. Composer is worse for it as you go in and out of workbench and preview mode which you don't do on the final compiled app and if the leak is caused by Workbench then it won't be in the apps as Workbench is removed from them. That being said we have not had any problems found in our standalone apps of current books with this problem.
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. happy, confident, thankful, excited kidding, amused, unsure, silly indifferent, undecided, unconcerned sad, anxious, confused, frustrated

  • 1. I second Dan's comment. Any information you have on where you are getting instabilities is very helpful.

    2. The compiled apps do not have an attached workbench (edit mode), this lightens the load a great deal.

    However, user-driven management of the books content is a fundamental factor as well, so please make sure you are across Dan's excellent post on memory consumption. See: http://getsatisfaction.com/demibooks/....

    Following the list of suggestions makes for a tighter and more smoothly running interactive book.

    Given that memory related problems are being tightened all the time, any feedback we get is very helpful as it provides the best and most relevant pointers where we need to focus our optimisation efforts.
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. happy, confident, thankful, excited kidding, amused, unsure, silly indifferent, undecided, unconcerned sad, anxious, confused, frustrated

  • Thanks for the feedback.

    It's hard to document the problems as they appear more or less randomly in different situations as you work with composer. Right now I am working full time on a composer project and these problems are arising all the time.

    I get the impression that memory problems get worse as the entire book projects gets larger - that the overall size of the .dcb affects memory handling for the entire book.

    I keep a look at the memory gauge on every page. No more than two sections are visible on any page.

    The project I am working on right now crashes after page four in the middle of a simple page fade. If i restart the iPad, sometimes the problem does not arise.

    Sometimes animations run in workbench which shouldn't be possible.

    Trying to import a launch screen through the book menu will crash composer every time. In order to import a launch screen at all, I have to open the .dcb in an iPad 2 and import it there, then re-import the .dcb to my iPad 1.

    I have already detailed the problems with preview changing the setting of hidden on/off at some times. The .dcb is in your dropbox for your review.
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. happy, confident, thankful, excited kidding, amused, unsure, silly indifferent, undecided, unconcerned sad, anxious, confused, frustrated

  • Having read your memory handling doc, I realize I should have been way more careful with how I export my graphics according to the power of 2 rule.

    This way of handling graphics - which I am already familiar with from working on a game engine for an android project - is really counterintuitive in my workflow.

    Do you know if there are any workarounds, guides or plugins on how to best achieve this when creating graphics in Photoshop?

    Also: Feature request: a way to 'reload' already imported and scripted graphics without deleting and re-importing them.
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. happy, confident, thankful, excited kidding, amused, unsure, silly indifferent, undecided, unconcerned sad, anxious, confused, frustrated

  • Dan (Official Rep) November 06, 2011 10:47
    Having worked in a Computer Games company for 6 years and knowing over 100 artists, the only tool we found for enforcing power of 2 textures was a large stick, that and when the artists ran the game with their no pow 2 textures the game would just crash instantly.

    What do you want the plugin to do, maybe it is something we can develop at some point?

    What the artists would typically do is make a budget for textures and then make a power of 2 texture and then fill it, rather than draw freely and crop it.

    To 'reload' images you don't need to delete them you can just drag the new file into iTunes and tell it to replace it. If you mean you have an image object that has behaviours and things on it, and you want to change what image it uses. In inspector you will see an "Image" property which will give you a view of thumbnails to choose the new image you want the object to use.
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. happy, confident, thankful, excited kidding, amused, unsure, silly indifferent, undecided, unconcerned sad, anxious, confused, frustrated

  • Large stick eh? Sounds like a good name for a plugin or standalone tool.

    Well, the plugin could work in two ways - either as a sort of grid you would superimpose on your 1024 by 768 workspace and scale your graphics after. Or a function that forces a rescale to the closest p2 dimension at export. Hey! Maybe it could be an extremely annoying animated paperclip that pops up in your face and say's 'Oh hey! Looks like you're exporting a .png that is 260 pixels high. Maybe you meant 256 pixels?' while trying to look cute.

    Do the graphics work better if they are also p2 in both dimensions? I.e. will a .png handle better if it is 256 by 128 rather then 256 by 100? Or should it be square?
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. happy, confident, thankful, excited kidding, amused, unsure, silly indifferent, undecided, unconcerned sad, anxious, confused, frustrated

  • Dan (Official Rep) November 06, 2011 15:40
    Its not even trademarked ;)

    Auto scaling art is bad, it will warp and blur the image and annoy artists no end. But having something going wait 1 pixel over is that really worth double the RAM, sanity checker might be a good thing to hand out. Pixy pun on Clippy but also as it mocks you for 1 or 2 pixels making it picky?*

    The Image doesn't need be a Power of 2 in it self it will just be held within a power of two texture in RAM when the engine loads it with the rest of the image being pure Alpha. Rendering Alpha is one of the most expensive operations so you end up wasting a lot of Frame Rate and CPU time on nothing you will ever see. If you make your pngs to be POW2 sizes it will make the loading of them faster as the code will not have to handle the conversion to the larger texture for you, Photoshop will have already done it. They don't need to be square 256x128 is better than 256x256 as its half the size.

    Update on the Image Hidden state being changed, its seems to be caused by the same thing that is probably causing your memory creep, 2 birds 1 test case ;)

    *all brands and ideas discussed on the board are sole properties of Demibooks Inc and you hand over all rights**

    **not really.
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. happy, confident, thankful, excited kidding, amused, unsure, silly indifferent, undecided, unconcerned sad, anxious, confused, frustrated