My xna game is running at about 70-90fps and it looks laggy at this fps. I'm using fraps to record the fps and I have a 120hz monitor, over 120hz looks fine but I can't understand why it feels like it's lagging so much at high fps :/.
I think you have some very inconsistent frame times. You can test this by printing out the frame times to a log (or similar) and measuring their jitter.
Edit: If you find that a small number of frames consume substantially more time than most, this is indicative of a performance problem. If this is the case, you need to use a profiler to help you understand where this problem is and fix it.
In general, the faster you try to draw your frames, the more your framerate can be affected by outside factors (such as the OS scheduling CPU time for other tasks, or a function in your game running unusually slow).
At 120 fps, you have 8.33 millis to have your frame drawn. As you are not hitting your 120 fps, it can be assumed that your game can't be run on that hardware at 120 fps, and that it will draw as fast as it can. This means that any extra load on the CPU will necessarily drag your framerate down. In other words, you have no built-in tolerance to fluctuations in CPU load.
I would suggest capping the framerate. If you really want to optimize around the minority of people who have the equipment to draw frames so frequently, allow them to change the max fps in your games's settings, or you can run some analysis on the framerate in your game itself to find an appropriate max.
Capping the framerate at a rate below which it can be drawn provides some "down time" for your game. This can absorb any of the fluctuations mentioned above without affecting your framerate. If you cap it at 60 fps, you have 16.66 millis to draw your frame. If you can draw the frame in 12, you have almost 5 millis for other things to happen without anyone noticing.
If it were me, I'd set it at 60 and be done with it.
|show 2 more comments|