Mal kurz eine Frage, du sagst das du das Spiel über ESC beenden kannst.
Hast du ein Skript mit der ESC Taste verbunden dass das Beenden übernimmt? Oder killst du das damit über Windows?
Im ersteren Fall kannst du die Endlosschleife oder ähnliche Fehler dieser Art ausschließen da die verhindern würde das A7/A8 die Eingabe für dich bearbeiten kann.
(Von Anfängern oft gedacht: "while(1) {} ohne wait lässt eure Applikation abstürzen" Das ist falsch! Ihr verhindert damit nur das die Engine die events von Windows verarbeiten kann. Sprich: Eingabe, Fenster neuzeichnen etc!)