В очередном выпуске Inside Star Citizen разработчики рассказали о процессе работы над одной из самых главных технологий в игре - сервер мешинге, а также о сложностях, которые возникали в работе над ним.
Серверная сетка — очередь сообщений репликации
Количество игроков увеличивается в тестах для стабильности и для того, чтобы увидеть истинную глубину проблем, которые необходимо устранить
Массовое тестирование игроков бесценно для стресс-тестирования серверов естественным образом
Изначально при тестах на 500 человек объем данных для «перетасовки» был очень высоким, поэтому уровень репликации был переписан в течение нескольких месяцев
Эта новая система — «Очередь сообщений репликации» (RMQ), которая может обеспечить стабильную основу для сетки
Однако даже эта новая система имела потерю пакетов и значительную задержку взаимодействия при реализации
Узкие места — грязные переменные и привязки
Огромные проблемы с нагрузкой вокруг «грязных переменных» — плохие сообщения/переменные, которые не передаются должным образом всей сетке
Усилия, потраченные на разрешение грязных переменных путем распараллеливания переменных и синхронизации между узлами сервера.
Признаки улучшений после распараллеливания и запуска на 1000 игроков
Связи — это «соединение» между клиентом пользователя и сервером. Эти связи стали следующим узким местом.
Огромное количество «сущностей» в Star Citizen. У Stanton более миллиона сущностей, с которыми сервер должен справиться в большинстве игровых сессий.
Сущности могут вырасти до 3 миллионов сущностей после недели игрового времени.
Оптимизация связей, отбраковка сущностей и распараллеливание «входа» данных на сервер — вот текущая задача команды по созданию сетей сервера.