diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java
index f0867a12a55675f930f5f3ba739a5eb6f5ba4cb2..b461f4d7e40818daf7a8f2f05cb8ae9e28f702aa 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java
@@ -85,6 +85,8 @@ public class GameSceneController implements Initializable {
     int diffTileCount = 30;
     int scaledTileSize = 48;
     private final Biom biom = runtimeInfo.getMapBiom();
+    private final long targetFrameTime = 1_000_000_000 / 80; // sets the target frame time to 12.5 ms (80fps)
+    private long lastFrame = 0;
 
     @Override
     public void initialize(URL url, ResourceBundle resourceBundle) {
@@ -142,11 +144,15 @@ public class GameSceneController implements Initializable {
 
         AnimationTimer gameLoop = new AnimationTimer() {
             @Override
-            public void handle(long l) {
+            public void handle(long now) {
                 if (!inputHandler.isPause()) {
-                    graphicsContext2D.clearRect(0, 0, canvas2D.getWidth(), canvas2D.getHeight());
-                    renderContent(graphicsContext2D);
-                    updateContent();
+                    if (now - lastFrame >= targetFrameTime) { // If short frame time (high fps) it will skip updateContent(). Next Frame has higher frame time and updates the frame
+                        graphicsContext2D.clearRect(0, 0, canvas2D.getWidth(), canvas2D.getHeight());
+                        renderContent(graphicsContext2D);
+                        updateContent();
+                        lastFrame = now;
+                    }
+//                    remove blur
                     if (wasPaused) {
                         resume();
                     }