Intentionally run at very low Draw FPS or with Event-Driven Architecture?

I want to use MonoGame for a game whose screen contents may update quite infrequently – say once or twice a second and very rarely more than 4x a second.

Given the very low compute requirements, I want to save battery life on iOS and Android by having GPU operations also occur only when there’s a real change on the screen, and it would be nice to save CPU by mitigating what appears to be a continuous infinite loop in MG.

Is it feasible to meet these criteria?

Could I use Thread.Sleep(50) to slow down the UI thread loop, and perhaps I can eliminate useless GPU computation completely by just not drawing anything inside the Draw() method when there’s no changes??

Would these things do the trick to get hardware consumption down to a minimum?

I’m guessing a full event-driven architecture is completely infeasible and a slow loop is the best I can hope for, yes???

IsFixedTimeStep = true;
TargetElapsedTime = TimeSpan.FromMilliseconds(500); // 2 fps
1 Like