User Tag List

Page 1 of 4 1 2 3 ... LastLast
Results 1 to 10 of 38

Thread: Optimisation Thread - getting more FPS, every known trick

  1. #1
    No Products Registered

    Join Date
    Mar 2009
    Posts
    105
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Thumbs up Optimisation Thread - getting more FPS, every known trick

    Post anything you know about getting more FPS (especially in big projects), and I'll add your stuff to the thread. If you can give numbers of FPS you got from various tricks that'd be even better.

    Added 15 tricks I know, (was 8) roughly ranked by efficacy. Many were suggested by SortaCore in GwerdyChat, who offers a service of speeding up your MMF project.

    THE TRICKS!
    -------------

    #1 Reduce colour depth - if possible
    Sebaceous - HUGE savings, brought my game to max FPS - Clickteam is there a way to choose a certain colour palette?
    Konidias - I don't really see a noticeable difference, but I guess this is definitely a case by case basis


    #2 Destroy objects off screen - recreate them as needed
    Konidias - this might actually be worse than just disabling the object

    #3 Use box-collision checks instead of fine
    Konidias - In the RunTime Options for an object you just turn off "use fine detection" and then it will use box collision detection.

    #4 Minimise collision checks, especially fine type, eg by putting the collision-check condition after a condition which is likely to evaluate false
    Sebaceous - makes a difference!
    Konidias - this totally depends on how many events MMF has to run through each frame... if you have like 10 events, this step will maybe save you 1fps... but if you have hundreds of events, it is good practice to order them by which condition is most likely to stop the need to continue checking that condition list


    #5 Put most-likely-to-be-false conditions at the top of your events, BUT put costly checks like collision detections and calculations at the bottom
    Sebaceous - this makes the most sense and seemed to save FPS for me

    #6 Remove/rethink as many 'always-being-done' checks as possible, and try run them only when needed.
    Sebaceous - Count objects only as needed, e.g. if you can only shoot when there are a certain number of objects on the screen, don't "Always" put how many objects there are into a counter. Just do the count at the bottom of the conditions for the firing event. This will make a big difference.

    #7 Minimise use of fast loops
    Sebaceous - makes quite a big difference
    Konidias - this tip really depends on the fast loops and what they are doing. some fast loops are relatively harmless to framerate. it's good to try and put fastloops inside of groups that you can disable or enable when needed


    #8 Don't use really big actives - eg instead of using a really big plain-colour active, set the colour of the frame.
    Sebaceous - I don't have a working MMF at the moment but I think it's some method like "Set Frame Colour" of the Frame object.

    #9 Do it with less objects - Crunch down the number of objects you use as low as possible.

    #10 Use HWA (hardware acceleration) or minimise use of ink effects and transitions

    #11 Minimise per-frame colour-swapping
    Sebaecous - I don't have hwa but swapping about 6 colours every frame knocks about 6fps off my game. Use animations instead if possible.

    #12 Disable groups of events when not needed
    Sebaceous - didn't make much difference for me, maybe 1FPS
    Konidias - depends on what's in the groups


    #13 Minimise use of divisions (especially of precise numbers) or at least reduce the precision of your numbers if you are doing a lot of these every frame.
    Sebaceous - Probably not an issue for most games. The Computer Science for the interested - http://en.wikipedia.org/wiki/Computa...cal_operations

    #14 Remove 'Always' if its not the only condition of an event, and put all your always-actions in one always-event if possible
    Sebaceous - People have said this makes a difference, I'm not sure.

    #15 Remove all events with 'Never'
    Sebaceous - probably makes no difference but its tidier
    Konidias - I believe MMF removes these at build time anyway


    Run through all these steps and you should notice a whopping great improvement in FPS.

    Clickteam - a way of profiling MMF events for performance would be awesome. Oh and, sticky pweez? ^^

  2. #2
    Clicker

    Fusion 2.5 DeveloperFusion 2.5+ DLCAndroid Export ModuleSWF Export Module
    Konidias's Avatar
    Join Date
    Aug 2009
    Posts
    1,546
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)
    #1 - I don't really see a noticeable difference, but I guess this is definitely a case by case basis
    #2 - this might actually be worse than just disabling the object
    #3 - no need to do this... there is box collision in MMF
    #4 - this totally depends on how many events MMF has to run through each frame... if you have like 10 events, this step will maybe save you 1fps... but if you have hundreds of events, it is good practice to order them by which condition is most likely to stop the need to continue checking that condition list
    #5 - this tip really depends on the fast loops and what they are doing. some fast loops are relatively harmless to framerate. it's good to try and put fastloops inside of groups that you can disable or enable when needed
    #6 - in HWA mode this isn't as big of an issue
    #7 - depends on what's in the groups
    #8 - I believe MMF removes these at build time anyway

  3. #3
    No Products Registered

    Join Date
    Mar 2009
    Posts
    105
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks, adding your feedback now. Where is the option for box collision detection?

  4. #4
    Clicker

    Fusion 2.5 DeveloperFusion 2.5+ DLCAndroid Export ModuleSWF Export Module
    Konidias's Avatar
    Join Date
    Aug 2009
    Posts
    1,546
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)
    In the RunTime Options for an object you just turn off "use fine detection" and then it will use box collision detection.

  5. #5
    No Products Registered

    Join Date
    Mar 2009
    Posts
    105
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    OK awesome, adding that, too.

    Clickteam - is it more optimal to use one single mosaic looping backdrop object or many individual tile backdrop objects? Or no difference?

    Admin - please can you allow me to edit this indefinitely?

  6. #6
    Clicker Multimedia Fusion 2 DeveloperiOS Export ModuleSWF Export ModuleUnicode Add-on

    Join Date
    Jun 2006
    Location
    Australia
    Posts
    988
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I love this idea. This is fantastic! Great Can we expand this to decreasing loading times and memory usage as well (i.e. general performance)?

    1. Use "Load On Call" for large objects to reduce loadtimes if they aren't needed at the start of frame or at all (e.g. if you have multiple large active objects but only one of them is needed at a time on any one level).
    2. Change Display Mode to Direct3D 9 under Runtime Options to enable Hardware Acceleration. (Obvious to most people, but still essential! - basically #10)
    3. For List Objects that are invisible, also turn off Vertical Scroll Bar, Border and 3D Look for faster processing as it still attempts to update the graphical part of the object even when it's invisible.

  7. #7
    Clickteam Clickteam

    Join Date
    Jun 2006
    Location
    France
    Posts
    13,420
    Mentioned
    171 Post(s)
    Tagged
    2 Thread(s)
    Quote Originally Posted by Sebaceous View Post
    Clickteam - is it more optimal to use one single mosaic looping backdrop object or many individual tile backdrop objects?
    Yes, using a single Quick Backdrop object instead of multiple backdrop objects is better.

  8. #8
    Clicker

    Fusion 2.5 DeveloperFusion 2.5+ DLCAndroid Export ModuleSWF Export Module
    Konidias's Avatar
    Join Date
    Aug 2009
    Posts
    1,546
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)
    If an object is static you can turn off "Save background". This is only if the object never moves or changes layers (or goes from visible to invisible or vice versa)

    You can also turn off transparency on objects that don't have any use for it. (like solid square active objects that don't use the transparency channel at all)

  9. #9
    Clicker Multimedia Fusion 2 DeveloperiOS Export ModuleSWF Export Module
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)
    King_Cool's Avatar
    Join Date
    Aug 2008
    Posts
    2,335
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Scaling up a small Object is allways better than creating a big one.

    This is very usefull for when you want to create a day night effect by using a semitransparent screen filter.
    Instead of creatina a big 640x480 Filter Object, simply create a 4x3 Filter Object and scale it to 160 at Start Of Frame.
    This way computer only handles a 12 pixel Object instead of a 307200 pixel Object.

    Andos has an old thread i believe with alot of excellent performance tricks.

  10. #10
    Clicker Fusion 2.5 DeveloperAndroid Export ModuleHTML5 Export ModuleiOS Export ModuleUniversal Windows Platform Export ModuleSWF Export Module
    paobrasil's Avatar
    Join Date
    Apr 2012
    Location
    Rio de Janeiro, Brazil
    Posts
    1,149
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    excellent thread!

    how can I put FPS view in my app?

    thanks

Page 1 of 4 1 2 3 ... LastLast

Similar Threads

  1. Replies: 0
    Last Post: 29th April 2013, 09:25 PM
  2. 5 Card Trick on App Store today!
    By AyreGuitar in forum iOS Released Games & Apps
    Replies: 9
    Last Post: 9th March 2013, 06:15 PM
  3. No Taskbar without Sub-Application Trick
    By wizkidweb in forum Multimedia Fusion 2 - Technical Support
    Replies: 0
    Last Post: 3rd April 2009, 03:25 AM
  4. Replies: 0
    Last Post: 2nd January 2009, 10:50 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •