Неплохой доклад про бекенд EVE Online с GDC. Больше про то, как меняли подход к сервисам и культуру в команде. Несколько моментов отметил в Твиттере:7k C++ файлов, 12к SQL файлов, 20k на Питоне и...260к+ файлов и 50+ миллионов строк YAML'а 🤯Начинали с кучи сервисов, которые, по сути, меш организовывали. Из-за этого сложно вводить/выводить новые подсистемы. Одна жирная БД. Для выкатки обновлений нужна вся команда, Монолит.Потом сделали xml поверх http апишку с агрессивным кешированием.- Переехали на k8s (когда он ещё был в превью).Взаимодействие сверисов сделали через message bus, что позволило кучу технического долга сбросить. Начали с Google pub/sub, потом пересели на Rabbit.Ранее гоняли json'чики, потом переехали на протобаф, который органически помог выделить домейны и структурировать данные, т. к. с json'ами такой надобности не было, а тут прям протокол, по сути, форсит это делать.Ещё одна причина выбора протобафа — работа с gRPC. На базе моделей генерили C++ и Питоновский код. И...питоновский код использовал маршалинг в сишечку, что ещё и ускорило всё.30% времени уходило на 3 вещи: сериализация, передача данных, мультиплекс (например, когда игрок стреляет, то это сообщение нужно прокинуть сотням других игроков). И третье практически бесплатно получается с message bus. А вот с сериализацией и передачей проблемки.Даже не смотря на быструю сериализацию, всё равно нужно ждать глобального лока, который ждёт результата от C++ кода. Тут я не совсем понял, что он имел ввиду, но, судя по всему, они ВСЁ связанное с gRPC вынесли из Питона в C++ часть и там в отдельных тредах обрабатывалиНовые технологии не особо сложны, большая проблема в команде была именно в культурном плане. Когда столько лет работаешь с легаси и монолитом, то мыслишь определённым образом. Николас говорит, что именно этот аспект работы и культуры было тяжелей всего переломить и изменить.Из забавного. В команде в первые годы был принцип: если ты не можешь загуглить это, то не используй 😅P. S. держите в уме, что в первые годы разработки игры не было ни gRPC, ни Кубера, ни многих ныне популярных подходов.#gamedev #eveonline #suvitruf_gamedev #GDC