Board Thread:General Mod Discussion/@comment-31507215-20180602040027/@comment-27190591-20180602110245

This really dependy on what you're doing. Generally, is always better to only redraw what changed or has to be redrawn (to example if the window was resized), but it also depends on how you do determine that something has to be redrawn and how much more complicated it makes your code. To example, in Java AWT/Swing (GUI libaries) they're using passive (event based) rendering: Only if something changed, it'll be redrawn. This is because the GUI changes much less often (only with user interactions) than it could be rendererd. For games you normally use active rendering, which means that you'll render at, to example, 60 FPS (or trying to), because games usually contain data which can change every frame. But this really depends on what you're really trying to achieve. I suggest you to don't think about this for now - "premature optimization is the root of all evil", some say. Only optimize when you have to (because you experience performance problems). But if it's likely that you'll run into these problems, it could be better to think about optimization from the beginning - but I don't think that you'll run into performance problems with "simple" Java games. And a final question: Are you working on a 2D or a 3D games? If you work on a 2D game, I don't think that you have to think about performance for now.