...Ошибка указывает на то, что актор GameEngineActor был остановлен до того, как смог обработать сообщение. Это может происходить по нескольким причинам:
1. Актор мог завершить свою работу из-за необработанного исключения внутри его методов
2. Другой код мог явно остановить актор раньше времени
3. Возможен конфликт при инициализации акторов
Для решения этой проблемы рекомендую следующие шаги:
[... бла бла бла добавить логирование и обработку исключений ...]
Если проблема не решится, можно временно отказаться от модели акторов и вернуться к синхронной обработке для отладки: ...
Ну так ты же сам этот код и написал, вот и разбирайся в причинах :)
Впрочем совершенно не удивлён: для этого надо хотя бы немножечко понимать семантику недетерминированности (например, в рамках моих курсов по параллельным вычислительным моделям:). Трансформеры весь обучаются на линейных последовательностях, а тут надо
Асинхронщина -- это часто работа с (около)глобальным состоянием (например, обновление интерфейса или кэша). В параллельном режиме надо уметь отслеживать и синхронизировать такие состояния, понимать временнЫе зависимости (от внешних факторов --- время ответа сервера), состояния гонки, различать контекстные нюансы асинхронных вызовов (колбэки внутри колбэков, цепочки промисов...).
Как даже хорошо подобранные обучающие примеры помогут в условном "обобщении" этих тем для AI в реальных проектах, не представляю.