Прорисовка кораблей
Дата: 18.04.2018 14:22:41
Rebel__1 (18 Апр 2018 - 13:42): ТАк я не понял, костыль в виде задержки появления корабля на
миникарте, чтоб он появлялся одновременно с отрисовкой, в ОТ-2
остается?
Sub_Octavian: Давайте объясню чуть подробнее. Во всяком случае попробую.
Сервер присылает на клиент данные по засвету с определенной
частотой. Для упрощения представим, что раз в секунду. И назовем
эти данные "точками" на шкале времени. При этом клиент
разумеется стремится отрисовывать корабль раз в 60 секунд - при
условии, что у вас игра выдает 60 FPS, это так и выглядит - плавное
движение.
Каждая "точка" в данный момент содержит координаты корабля и его направление. Но не содержит..скорость. Поэтому клиенту требуется как минимум 2, а то и 4 точки, чтобы адекватно показать корабль в 3D. То есть, ему нужно "подождать" большего количества данных с сервера. Как видите, тут дело даже не столько в прогрузке модели - однако, если у пользователя медленный жесткий диск, то еще и прогрузка может повлиять на время "ожидания"
Еще момент - по серверной технологии, чем дальше объект, тем реже присылаются "точки". Поэтому задержка появления может быть выше на дистанции и меньше, когда противник выскакивает в упор.
Что с этим делать?
Нужно, чтобы "точки" содержали не только позицию корабля и его направление, но и скорость. Тогда ждать нескольких "точек" не придется - уже по первому набору данных с сервера можно выводить корабль. Фактически это перепил определенной части кода - чем и занимаемся усиленно.
Ну и да, есть еще оптимизация самой прорисовки.
В ОТ-1 синхронизация всего этого дела не была до конца удачной, так как в ряде случаев актуальность информации на миникарте упала. Но в нашем исправлении на ОТ-2 миникарта по сравнению с 0.7.3 никак не страдает, зато синхронизируется прорисовка 3д эффектов и 3д модели. А вот дальше будет самое интересное - путем добавления доп.информации в данные с сервера, которые приходят на видимость, и оптимизации всего этого, мы постараемся добиться и одновременной, и своевременной отрисовки иконки на миникарте и объектов в 3д.
Каждая "точка" в данный момент содержит координаты корабля и его направление. Но не содержит..скорость. Поэтому клиенту требуется как минимум 2, а то и 4 точки, чтобы адекватно показать корабль в 3D. То есть, ему нужно "подождать" большего количества данных с сервера. Как видите, тут дело даже не столько в прогрузке модели - однако, если у пользователя медленный жесткий диск, то еще и прогрузка может повлиять на время "ожидания"
Еще момент - по серверной технологии, чем дальше объект, тем реже присылаются "точки". Поэтому задержка появления может быть выше на дистанции и меньше, когда противник выскакивает в упор.
Что с этим делать?
Нужно, чтобы "точки" содержали не только позицию корабля и его направление, но и скорость. Тогда ждать нескольких "точек" не придется - уже по первому набору данных с сервера можно выводить корабль. Фактически это перепил определенной части кода - чем и занимаемся усиленно.
Ну и да, есть еще оптимизация самой прорисовки.
В ОТ-1 синхронизация всего этого дела не была до конца удачной, так как в ряде случаев актуальность информации на миникарте упала. Но в нашем исправлении на ОТ-2 миникарта по сравнению с 0.7.3 никак не страдает, зато синхронизируется прорисовка 3д эффектов и 3д модели. А вот дальше будет самое интересное - путем добавления доп.информации в данные с сервера, которые приходят на видимость, и оптимизации всего этого, мы постараемся добиться и одновременной, и своевременной отрисовки иконки на миникарте и объектов в 3д.
Прорисовка кораблей














