Low FPS in C2 games is more crippling than it should be?

From the Asset Store
Create a game inspired by great arcade classics as Operation Wolf
  • For sqiddster and for people making GPU demanding games: I'm trying something very simple to adress the missing collisions problems.

    ( I'm assuming your game has large collision bars/triggers)

    • Saving the important elements position on a regular basis in a local variable
    • If the important elements overlap a dummy outside the normal area, replace the element to the previous position.

    Seems to work ok for now. Need more test to be sure everything is fine, but maybe that could help some of you?

  • Aurel collisions aren't the only thing hurt by this dt variance. It also makes the game feel like a nightmare to control, and be basically unplayable.

    Ashley are you still looking into this?

  • Hi,

    I'm encoutering big performance problem in my game project, and I guess this thread covers the reason why. As my game has much different needs than what is discussed here, I'll drop a few lines to explain it, as it may be useful.

    My (mobile) game basically resumes itself to "touching a sprite makes this sprite spawn another object (which is animated) and modifies its instance variables". Pretty simple, but I'm using lots of sprites, which are pretty big, and uses a lot of opacity (full range from 0% to 100%, sqiddster said it was very GPU demanding). There are no moving sprites, no collision, no effects, and the fastest animation plays at 10 frames per second. So basically a FPS of 10 could be enough for me.

    But when I touch an object multiple times quickly when performance is low (it is always low on rather slow devices), each animation is delayed. The result is that if I touch 10 times quickly, then I have to wait sometimes 3 seconds or more for every animations to be finished, and of course instance variables modification only happens when the corresponding animation starts playing, which ruins my gameplay.

    On slow devices, FPS may drop below 20.

    Is there anything I can do besides removing graphics (unthinkable)?

  • sqiddster - I know a way of throttling Frame-rate

    Go to graphics cards properties and change refresh rate to 40 hz. This may not be available for all machines but it is a great hack to force 40fps in construct 2 games. I had a lot of headache over a problem related to fps and this is how I managed my testing.

  • Rable to be honest I don't know a lot about mobile devices. If you can show that your dt is varying wildly it's likely the same problem, but if it isn't the problem probably lies somewhere else.

  • sqiddster - I know a way of throttling Frame-rate

    Go to graphics cards properties and change refresh rate to 40 hz. This may not be available for all machines but it is a great hack to force 40fps in construct 2 games. I had a lot of headache over a problem related to fps and this is how I managed my testing.

    While doing this works (changing the frequency at which the refresh rate is basically change the time between each sync us done, and C2 games work basing themselves on Vsync), not only does it involve the user doing it (assuming he can), but also may not be great for the screen itself (I remember my former monitor having weird lines defiling from top to bottom when that changed), and will not be availiable on all devices out there (eg. Phones, tablets, or even some monitor being incompatible maybe).

    It could be done to preview the game, but you should not rely on that trick when making the game public, also, this will not throttle the game, in fact it will make it smoother (maybe that was what you were implying?)

  • Aphrodite - You are right. This was just a preview hack I use from time to time to test on different framerates.

  • This is a long thread, and I'm not sure how relevant this, but I'll just add this in from my own experiences:

    Having a low framerate in webgl still produces smooth animations.

    Having ANY framerate on a canvas produces jerky motion for me, even if it's at 60fps.

    How I come to these conclusions:

    WebGL enabled browsers on a variety of computers all run it smooth regardless of framerate

    My systems without GPU acceleration don't have webgl (VMs and an old linux box) can't run webgl, and no matter what framerate C2 reports movement is very jerky, as if DT is either slighty off or greatly inconsistent (pixel rounding issue for non webgl canvas maybe??).

    On mobile, chrome runs C2 games like a champ, but the system browser, again, has no webgl and while it reports 40+ fps, movement is very jerky.

    (all movement is based on speed * dt)

  • skelooth sorry but that makes no sense. A low FPS is low FPS - for example if WebGL is displaying 15FPS it is not acceptable and would be very noticeable.

  • czar you're not understanding jerkiness of motion. Something can be "smooth" at 20fps without looking jerky. Graphics can also look jerky at 120fps. FPS != movement and rendering, only the speed at which they are accomplished. Thanks.

  • it might be the case that turning webGL off has similar symptoms. I haven't done much testing with that.

    czar this thread has revealed that not all FPS are equal. 30fps with the strain on the GPU feels very different than 30fps on the CPU. The reason for this is dt variation.

  • Actaully, skelooth has a point. Back when computers had VGA graphics, car racing games had a fps of 16 or 20, and there was zero problem playing them. Of course, none of those games would work on modern computers, and look like trash if they did, but it does show that there's more to it than just fps.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Actaully, skelooth has a point. Back when computers had VGA graphics, car racing games had a fps of 16 or 20, and there was zero problem playing them. Of course, none of those games would work on modern computers, and look like trash if they did, but it does show that there's more to it than just fps.

    The system in that case had the time to do everything, there was no slowdown involved, thus it was working as expected, varying framerate is the problem in our case I think.

  • Also games back then were based on the system clock, so they literally ran as fast as the CPU could muster.

    I don't know why my curiosity is so piqued but I'm going to muck around later and see if I deduce get a more accurate for frame rate stuttering instead of just randomly wanting to blame it on pixel rounding being wonky in a canvas context or incorrect dt values. I'm a not graphics programmer, but I know enough to shoot myself in the foot

  • I'm not sure if this will help anyone, but here is my experience...

    I occasionally get stuttering effects (momentary slow downs) during otherwise butter smooth platform movement. These rarely manifest as a readable drop in fps, but you can clearly see that the game is not running smoothly and the look is unprofessional. I've isolated one cause to creating more than one object and manipulating it (like ray casting / collision checking) during a tick. Particles seem to cause no problem for the engine, however... So I create particles for small effects almost without care, and I make sure that I only ever create sprite objects during run time if I have no other way of achieving the effect I'm after (which is rare, due to my limited imagination at creating special effects... ).

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)