count находится в замыкании makeCounter. Функцию makeСounter Вы вызываете один раз. Почему count должна сброситься в ноль?
Дергая функцию counter1() – вы не вызываете makeCounter/ Вы вызываете анонимную функцию, которая была возвращена , вот эту
Окружение создается при вызове makeCounter. В этом окружении есть переменная count и анонимная функция. Эта анонимная функция возвращается. И именно она потом вызывается. Анонимка и count в одном окружении.
Так ведь задания обрабатываются не в запросе пользователя, а отдельно, позже.
Там нет запроса и нет пользователя. Необходимые данные нужно передавать при создании задания.
Код – на гитхаб.
Плюс топик на gamedev.ru.
Там есть разделы для своих проектов. Опишите проект, оставьте ссылку на репозиторий с кодом.
Есть и другие аналогичные форумы https://yandex.ru/search/?text=разработка%20игр%20форум.
Куча ненужного кода.
Сделали бы песочницу с минимумом кода, воспроизводящего проблему и получили ответ.
Вместо этого скриншоты, не помогающие выявить причину и простыни кода, не относящиеся к проблеме...
Просто будьте внимательнее.