Use of undeclared identifier 'Game' 5| [clang: undeclared_var_use] вот ошибка спасиба за совет
ты пытаешься определить тело конструктора Game::Game вне описания класса, так делать нельзя, компилятор в принципе допустил что ты конструктор не описал (думая что ты опишешь его потомков) но конструкцию Game::Game() посчитал как вызов метода класса конструктора, но он не определен вот и ругнулся.
Описывай тело конструктора внутри класса в заголовочном файле
p.s. у тебя там деструктор еще определен как виртуальный и так же не описан, его тоже придется описывать внутри заголовочного файла