diff --git a/src/display.cpp b/src/display.cpp
index 0c667f46ef723e313bd8a1780988b8237f845f7c..4366bd3f50412b85bea64314458958d94dd2f0d2 100644
--- a/src/display.cpp
+++ b/src/display.cpp
@@ -29,7 +29,7 @@ void setupDisplay()
   matrix.addLayer(&indexedLayer);
   matrix.begin();
   matrix.setBrightness(defaultBrightness);
-  backgroundLayer.setBrightness(255);
+  backgroundLayer.setBrightness(defaultBrightness);
   backgroundLayer.enableColorCorrection(true);
 }
 
@@ -53,14 +53,11 @@ void showEndScreen(int ticks)
   showEvolutions(ticks);
 }
 
-void fadeOutGame(int brightness)
+void gameBrightness(int brightness)
 {
-  char msg[64];
-  sprintf(msg, "Setting game layer brightness to: %d", brightness);
-  logLine(msg);
-  brightness = lightPowerMap8bit[brightness];
+  logLine("Game Brightness: " + (String)brightness);
+  //brightness = lightPowerMap8bit[brightness];
   backgroundLayer.setBrightness(brightness);
-  //backgroundLayer.swapBuffers(false);
 }
 
 void showEvolutions(int ticks)
@@ -80,6 +77,6 @@ void clearDisplay()
   indexedLayer.fillScreen(0);
   indexedLayer.swapBuffers();
   backgroundLayer.fillScreen({0, 0, 0});
-  backgroundLayer.setBrightness(255);
+  backgroundLayer.setBrightness(defaultBrightness);
   backgroundLayer.swapBuffers(false);
 }
diff --git a/src/display.h b/src/display.h
index ecb82e32df2666e4092266c0d7a61c5011a53563..7b21029aa5f831ae95b89fee42ea6c9ce65461d7 100644
--- a/src/display.h
+++ b/src/display.h
@@ -12,7 +12,7 @@ extern int gameEra;
 void setupDisplay();
 void displayLoop();
 void showEndScreen(int ticks);
-void fadeOutGame(int brightness);
+void gameBrightness(int brightness);
 void showEvolutions(int ticks);
 void clearDisplay();
 
diff --git a/src/gameoflife.cpp b/src/gameoflife.cpp
index b455102fb49c6724358caea31d180790327a3acc..8860606b70766166182f1af9a0e752ceccb4f752 100644
--- a/src/gameoflife.cpp
+++ b/src/gameoflife.cpp
@@ -123,21 +123,15 @@ void gameLoop()
   if (gameOver)
   {
 
+    int brightness = floor(defaultBrightness * (1 - ((float)(millis() - currentMillis) / (float)scoreScreenTimeout)));
+    gameBrightness(brightness);
+
     if (millis() - currentMillis > scoreScreenTimeout)
     {
       resetGame();
     }
-
-    if (noEvolutionTicks > noEvolutionTicksLimit)
-    {
-      if (gameOver)
-      {
-        int brightness = 255 * (1 - ((millis() - currentMillis) / scoreScreenTimeout));
-        fadeOutGame(brightness);
-      }
-    }
   }
-  else
+  else // not gameOver
   {
 
     if (currentTick % 2)
diff --git a/src/gameoflife.h b/src/gameoflife.h
index cc7b9fabdb9c2760fd11e22b36fabce3eb298626..ab91666736ff1df1ebaf557ea269cd1d90b9edd7 100644
--- a/src/gameoflife.h
+++ b/src/gameoflife.h
@@ -11,6 +11,7 @@ extern int arrayCopy[SCREEN_HEIGHT][SCREEN_WIDTH];
 
 extern bool runGame;
 extern int noEvolutionTicksLimit;
+extern const int defaultBrightness;
 
 void setupGameOfLife();
 void createRandomMatrix(int (&a)[SCREEN_HEIGHT][SCREEN_WIDTH]);
diff --git a/src/main.cpp b/src/main.cpp
index 1c9f642b20d501cc49a60dd6343148bfad878c9f..659579e1a06e464e3df296be9349c253e039521e 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -6,7 +6,7 @@
 #include "gameoflife.h"
 
 int noEvolutionTicksLimit = 100;
-int brightnessPercent = 50;
+int brightnessPercent = 30;
 int gameInterval = 50;
 
 TickTwo gameTimer(gameLoop, gameInterval);