Guide to faster games with less memory usage

Welcome to our brand new Clickteam Community Hub! We hope you will enjoy using the new features, which we will be further expanding in the coming months.

A few features including Passport are unavailable initially whilst we monitor stability of the new platform, we hope to bring these online very soon. Small issues will crop up following the import from our old system, including some message formatting, translation accuracy and other things.

Thank you for your patience whilst we've worked on this and we look forward to more exciting community developments soon!

Clickteam.

  • Only use text whenever you know it will not change often (like every frame).

    Use bitmap counters/scores instead of text counters/scores. There you can also much better control the visual style of your objects and there is nearly no performance penalty.

    I did not know score counters where a factor at all :O Is there any example out there on how to convert a score stored in an alterable value to a bitmap counter?

    Steam games: Please login to see this link.

  • I'm not sure if this was mentioned but if you set the game's display mode to Direct X9 and V-sync on, the performance of the games improve alot. I was getting 14-30 fps before I changed the setting, not I'm getting 50 fps. it even goes higher at times. Only thing is the framerate limiter doesn't limit the framerate.

    I'm not sure it will help everyone but just thought I'd add it.

    Also check out my site, it's a work in progress.
    Please login to see this link.

  • leightonw87 - If you want to limit the frame rate to something other than 60fps, turn V-Sync OFF

    Kevin Ayre Please login to see this link.
    My iOS Apps: Please login to see this link., Please login to see this link. and Please login to see this link.

  • Is it possible to make a scrolling game with (or even without) parallax backgrounds that runs well on iOS? I've been testing with xCode and it's playing agonizingly slowly. I've tried chopping up the graphics into smaller chunks, checked global color reduction, and am not using alpha channels or transitions.

    THOMAS DASILVA - Developer, Gigantoraptor Games
    Please login to see this link.
    [SIGPIC][/SIGPIC]

  • I'm curious, when looking at the debugger, how many MB should we aim to stay under for good performance? I have an early test level running with a lot of features missing at 30MB, and plan on adding a lot more.

    YouTube: Please login to see this link.
    Twitter: Please login to see this link. or Please login to see this link.

  • ipod touch 4g has 256mb of ram, take away about 100 for runtime to give a rough estimate of spare space so you should have plenty to work with. I think the ram readings on the pc rumtime will differ to the iOS export results, there is a way to check ram useage in xcode when running an app but not sure where about in the settings it is.

  • 100 mb for the runtime! This is a lot.
    To be sure on how much your game uses memory, use the Product / Profile option in XCode, then choose Memory allocations.
    You should look at the column "Live allocations" which represent the memory currently used by the game.

    Francois
    PM: Please login to see this link.

  • I've had a bit of an idea, if changing the framerate at runtime works on iOS that is, I could create an example which detects the device with the iOS Get Device extension and adjusts the framerate, then changes the game speed to match. There's an example which gets the current framerate and creates a 'delta' value to move things faster when the framerate drops etc. but that's unusable on certain elements, in particular the Advanced Platform Movement Object, and it can be a tad jittery. My method could lock the framerate to 30 on older devices and double the speed of the movements etc., worth a look, but I think it'd require disabling VSync...

  • Still not having luck here, can I post my .mfa and see if someone can track down what is causing the slowdown? According to the xcode memory reading its somewhere at 130 MB, which is way too high.

    THOMAS DASILVA - Developer, Gigantoraptor Games
    Please login to see this link.
    [SIGPIC][/SIGPIC]

  • One thing I wonder about pictures, is there any easy way you can make sure you dont use a dublicate image that take up double file space? For example say import a png taking up 500kb. Then i create a clone of that and change 1 pixel of the new clone, now it will use 2 png:s of 500kb each right just for this one changed pixel?

    Steam games: Please login to see this link.

  • I'd been using 50fps due to it keeping things working like I'm used to since my days of click and create. But I will now suggest that everyone adapt to 60. For Clash Force i used 50fps and did ok, but it was a simpler game, smaller levels, less objects, etc. in polyroll I have some large stages and I was getting some slowdown. 300+ active objects. . . So I tried vsync. Smooth as silk. No slowdown. It doesn't run faster simply because it's a higer framerate, it actually eliminates slowdown and runs without missing a frame. I'm guessing this is due to the fact that ios devices run at 60hz, so it doesn't have to do any processing to match the framerate.

    I'll have to go back and make a few changes (leave a little more time for disappearing blocks to vanish, etc.) but overall this is the solution.

    I'm going to check now and see if it fixes my layers slowdown issues.

  • Not related to ram or image size and space but any events not running all the time, disable their group constantly! when I rebuilt the engine for my game this is one of the things I really worked into the new events and I am really getting some good performance out of a regular 4g touch compared to before, such as if it's not visible on the screen disable it, if it's dead disable it, if it's something which moves you only enable the event group when touching it.

    I know this kind of stuff should be standard but when making a game for these little devices all the power you can save really shows.

  • About FPS, I also prefer 60 fps but for Flash it can sometimes be good to go down to 30 fps to get a more stable framerate if your game is performance heavy. I worked around this by developing in 60 fps but having all events that are dependent on fps to be multiplied by a value that is either 1 or 2. So if I build the game in 60fps I set the value to 1 and if I build it in 30fps I set this value to 2.

    Steam games: Please login to see this link.

  • paobrasil, I doubt it would make a difference since you aren't creating all objects at once, but only when needed.

    Please login to see this link.
    Please login to see this link.
    Please login to see this link.

  • One thing that may sound strange but that I have wondered about is if there is any difference in setting a "animation" with one frame to loop at the speed of 100 or 0? Its only one frame so nothing is changing, but maybe its still better to set it to 0 so it loops less times?

    Steam games: Please login to see this link.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!