Дополню первый пост технической информацией, чтобы было понятнее, что именно сейчас представляет собой Retro MP. На данный момент проект работает с GTA V Legacy build 3889. Клиент, сервер и лаунчер отдельные части, сетевой слой не зависит от GTA Online-сессии. Для транспорта используется ENet, текущая версия сетевого протокола 55. Один из принципиальных моментов клиент Retro не пытается поднимать GTA NetSession как host. На раннем этапе именно попытка хостинга внутренней GTA-сессии приводила к стабильному 0xc0000005, поэтому этот путь был полностью исключён. Синхронизация игроков и транспорта работает отдельно через собственный сетевой слой. Сейчас уже реализована базовая синхронизация игроков: позиция, rotation, velocity, основные состояния передвижения и часть task/animation state. Отдельно реализована синхронизация транспорта. Машины, мотоциклы, вертолёты и самолёты уже проходят live-тесты между несколькими клиентами. Для транспорта синхронизируются transform/state, посадка/выход игроков и часть damage state. Это не попытка просто передавать координаты каждый кадр есть интерполяция и prediction, иначе на реальной задержке всё начинает дёргаться. По player sync отдельно проходили проблемы с лестницами, плаванием, vault, parachute, melee и переходами между GTA tasks. Часть из них уже закрыта, часть мелких визуальных проблем пока оставлена до следующего общего live-теста. То есть я не хочу писать, что синхронизация «полностью готова», пока не прогоню её ещё раз на нескольких реальных клиентах. Лаунчер сейчас тоже уже не является просто кнопкой запуска. Сделана собственная система обновлений через HTTPS. Лаунчер получает manifest, сравнивает локальные файлы, скачивает только изменившиеся, проверяет SHA-256, устанавливает через staging и умеет обновлять в том числе самого себя после перезапуска.