Multiplayer Hot Reload БЕЗ пересоздания окна 😎
Один маленький шаг для программиста, но огромный прыжок для всей нашей экосистемы.
"Горячая замена" кода в работающей программе — нетривиальная задача. Вдвойне интереснее сделать это на работающем многопользовательском приложении без разрыва соединения.
Для того, чтобы это вообще технически стало возможно, нужно было с самого начала выстроить архитектуру с учётом этого. В основе — дата-подход, который подразумевает сохранение состояния программы, а сам процесс обработки состояния детерминирован и управляется самими данными, а не командами-вызовами-колбэками. А чтобы всё работало чётко, мы используем ровно такую же архитектуру и на серверной стороне. Таким образом обновление серверов у нас будет происходить так же, как на видео, "на горячую", без обрывов соединений с пользователями.
Всё это работает не только в дебаге — это совершенно полноценный, эффективный релизный код. Через этот же механизм будут накатываться обновления на прод. Т.е. вот прямо во время игры, без остановки серверов. Нам нужна свобода и гибкость. Fail fast — fix fast.
И вот мы наконец видим, что все наши многолетние усилия работают. Я счастлив!