User Tag List

Page 17 of 25 FirstFirst ... 7 15 16 17 18 19 ... LastLast
Results 161 to 170 of 249

Thread: Fusion 2.5 Microstuttering (moved from Fusion 3 status thread)

  1. #161
    Clicker Fusion 2.5 DeveloperFusion 2.5+ DLCiOS Export ModuleInstall Creator Pro
    Julian82's Avatar
    Join Date
    May 2012
    Location
    outbuddies.com
    Posts
    954
    Mentioned
    48 Post(s)
    Tagged
    0 Thread(s)
    @happygreenfrog : More or less, yes. At least the phenomenon you describe is probably related to it. What exactly is discussed here is that Fusion does not output constant frametimes.

    This is how frametimes for 60 FPS should look like (ideally 16,66666 ms per frame). The example graph is a GM Game output.



    And here is what Fusion does (idle frame, Vsync on, real fullscreen mode):



    Fusion oscillates around the desired 16,6 ms. Frametimes are alterating between too short or too high resulting in a 60 FPS (or sometimes 59) output. The inconsistent frametimes cause a microstuttering though, that is visible by some players while others don't really recognize it.

    Hope that sums it up.

  2. #162
    Clicker Fusion 2.5 DeveloperFusion 2.5+ DLCiOS Export ModuleInstall Creator Pro
    Julian82's Avatar
    Join Date
    May 2012
    Location
    outbuddies.com
    Posts
    954
    Mentioned
    48 Post(s)
    Tagged
    0 Thread(s)
    @Darkhog : Thanks for sharing this video about the scheduler rate and how it can mess things up. It's funny that the video shows microstuttering in a GM Game as an example of a subpar handling by a game engine, seems they fixed it in the latest installment, as the game I recorded as an example of how to do it right is from a Kickstarter in 2017 and probably made in GM2. This video provides a lot of insight on the topic and I hope for a dirty hotfix by CT that kicks the Windows scheduler in its ass somehow, just to try if it changes anything

    Out of curiosity I tried the suggestion in the video and ran Open Broadcaster in the background to see if it somehow accelerates the scheduling rate on my system and improves Fusion's output, but nothing changed, the recorded result was the same I've shown in my last post.

  3. #163
    Clicker Fusion 2.5 DeveloperFusion 2.5+ DLCiOS Export ModuleInstall Creator Pro
    Julian82's Avatar
    Join Date
    May 2012
    Location
    outbuddies.com
    Posts
    954
    Mentioned
    48 Post(s)
    Tagged
    0 Thread(s)
    @Mathias : I just got Freedom Planet on Steam and recorded the frametimes on 3 different laptops. To my surprise, those frametimes where not any better than the standard Fusion runtime. Tested on machines with Win 8.1 and 10.
    Here is the 8.1 output:



    Some of our findings suggest that microstuttering has indeed some system specific factors to it. Anyway, all my systems don't stutter with a couple of other games I recorded, so I still suggest the major factor of this issue is the game's individual runtime and not the system you play on.
    Images attachées Images attachées

  4. #164
    Clicker Fusion 2.5 DeveloperAndroid Export ModuleSWF Export ModuleXNA Export Module
    Fusion 2.5 (Steam)
    Mathias's Avatar
    Join Date
    Jun 2006
    Location
    Copenhagen, Denmark
    Posts
    1,083
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)
    @Julian82 : That's pretty interesting! Looks like I'll need to investigate this for myself.
    Just to check, are you running the games that give you good frametime in fullscreen mode/with vsync? What games give you good frametime?
    What about Freedom Planet (+ what Steam branch you are running the game on)?

  5. #165
    Clicker Fusion 2.5 DeveloperAndroid Export ModuleSWF Export ModuleXNA Export Module
    Fusion 2.5 (Steam)
    Mathias's Avatar
    Join Date
    Jun 2006
    Location
    Copenhagen, Denmark
    Posts
    1,083
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)
    I did some research since you mentioned GameMaker.
    GameMaker allows you to specify the sleep margin, i.e. the time that we will be waiting using a busy loop, while the rest of the time, we will be sleeping (using Sleep or Win32 Waitable Timers).
    I'm not sure if Fusion already does this, but here is an example of how this could be done (slightly simplified):

    Code:
    void sleep(double); // e.g. Waitable Timers
    double get_time(); // e.g. QueryPerformanceCounter
    void yield(); // e.g. SwitchToThread
    
    void limit_fps(int target_fps)
    {
        static double last_time = get_time();
        double current_time = get_time();
        double target_time = last_time + 1.0 / target_fps;
        double t = target_time - current_time;
        const double sleep_margin = 0.01; // 10ms 
        double sleep_time = t - sleep_margin;
        if (sleep_time > 0)
            sleep(sleep_time);
        while (true) {
            current_time = get_time();
            if (current_time >= target_time)
                break;
            yield();
        }
        last_time = current_time;
    }
    GameMaker doesn't seem to use yield() as in this example, but processes Win32 messages instead, which is probably about the same.
    It's a tradeoff in terms of battery/performance, but it seems like most GameMaker developers use a sleep margin of 10ms.

  6. #166
    Clicker Fusion 2.5 DeveloperFusion 2.5+ DLCiOS Export ModuleInstall Creator Pro
    Julian82's Avatar
    Join Date
    May 2012
    Location
    outbuddies.com
    Posts
    954
    Mentioned
    48 Post(s)
    Tagged
    0 Thread(s)
    @Mathias : Great research, man! That makes totally sense, with a sleep margin of 10ms you would never miss a call, at least not if you need at least to hit the 16,6. I think in gaming battery performance does not really matter to players. Hope CT will look into this too.

    To your other questions: I recorded GM2 (Flynn - Son of Crimson) as well as two custom engines (Axiom Verge, Volgarr) and Hollow Knight (don't know what this is made in). Game Maker was the only engine hitting the nail all the time, the other games were still a lot closer than Fusion though. I had posted some examples a couple of pages before.

    I bought Freedom planet yesterday, cuz I wanted to test this out. So should be the latest build. Record was Fullscreen + vsync. I had also recorded the windowed modes, no difference here.

  7. #167
    Clicker Fusion 2.5 DeveloperAndroid Export ModuleSWF Export ModuleXNA Export Module
    Fusion 2.5 (Steam)
    Mathias's Avatar
    Join Date
    Jun 2006
    Location
    Copenhagen, Denmark
    Posts
    1,083
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)
    I see! I checked Flynn - Son of Crimson, and that uses a sleep margin of 10ms. You can experiment with this by opening data.win with a hex editor, and changing the "10" after "@@SleepMargin" to e.g. "05".
    Curious what e.g. a sleep margin of 0ms, 5ms, 10ms and 15ms gives you!

  8. #168
    Clicker Fusion 2.5 DeveloperFusion 2.5+ DLCiOS Export ModuleInstall Creator Pro
    Julian82's Avatar
    Join Date
    May 2012
    Location
    outbuddies.com
    Posts
    954
    Mentioned
    48 Post(s)
    Tagged
    0 Thread(s)
    @Mathias : Great idea, did not know that editing this data in GM Games is this easy I set the sleep margin of Flynn from 10 to 99ms but still got a rock solid baseline with no stuttering at all. There seem to be other factors next to the sleep margin involved that make this output as stable as it is. I still think the sleep margin is one major point to consider though.

  9. #169
    Clicker Fusion 2.5Fusion 2.5+ DLC

    Join Date
    Mar 2014
    Posts
    149
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)
    I hope F3 performs like GMS. GM really does perform smooth as silk!!

  10. #170
    Clicker Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Universal Windows Platform Export Module (Steam)
    mihailsh's Avatar
    Join Date
    Jan 2014
    Location
    Kaliningrad
    Posts
    43
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)
    not completely true. their particle system are to slow on android.

Page 17 of 25 FirstFirst ... 7 15 16 17 18 19 ... LastLast

Similar Threads

  1. Replies: 21
    Last Post: 25th September 2017, 08:50 AM
  2. IOS music pass through fusion app - can't find the thread
    By Tuna in forum iOS Export Module 2.5
    Replies: 6
    Last Post: 15th June 2017, 07:07 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
  •