О несовместимости старых версий реплеев

У нас часто спрашивают, почему после выхода крупных обновлений перестают поддерживаться реплеи боёв, проведённых на предыдущих версиях игры. Причина — в том, что эти записи боёв собой представляют.

Как вы знаете, всё, что происходит в бою, рассчитывается на игровом сервере. Любое движение мыши и нажатие на клавиатуре обрабатывается, и сервер присылает ответ — куда летит ваш самолёт, как он ускоряется, замедляется, поворачивает, попадаете ли вы в цель при стрельбе и сколько повреждений ей наносите. Аналогично обрабатывается и информация о каждом игроке в бою. В итоге ваш клиент получает актуальные данные о состоянии каждого самолёта в бою, наземных объектах, очках превосходства и т.п.

Реплей — это не запись того, что делал игрок, а запись всех данных, которые во время боя присылал сервер. При воспроизведении, фактически, происходит «виртуальный» бой – для клиента он идентичен настоящему, просто данные приходят не от сервера, а из файла. 

Клиент игры ожидает от сервера данных в определённом формате. Если они будут получены некорректно – клиент их проигнорирует (именно это зачастую происходит при слабом соединении с интернетом и приводит к «лагам»). Соответственно, если протокол, по которому эти данные передаются, меняется — изменится и содержимое реплея, и клиент его не сможет воспроизвести. При этом многие изменения, происходящие с обновлениями игры, сильно меняют объём, состав и порядок данных, которыми клиент обменивается с сервером. К примеру, после появления составных наземных объектов сервер стал отсылать намного больше информации об их состоянии. Значительные изменения в характеристиках самолётов также влияют на это общение. Изменения на картах (перестановки наземных объектов, перемещения точек появления самолётов, изменения в геометрии карт) тоже приводят к несовместимости. Влияние оказывают и внутренние изменения в движке игры, например, недавний переход на новую версию BigWorld. 

В итоге в реплеях, записанных на разных версиях World of Warplanes, все данные хранятся по-разному и разном объёме. В то же время каждая версия клиента ожидает от сервера (и, соответственно, от реплея) передачи информации в чётко определённом формате, и неспособна работать с некорректными данными. Для того чтобы обеспечить обратную совместимость клиента со старыми реплеями, нам понадобилось бы интегрировать в каждую новую версию все старые. Естественно, в таком случае с каждым обновлением размер игры бы очень заметно рос. 

P.S.: Если вы недавно начали играть и не знали про такую возможность – World of Warplanes позволяет записать бой и посмотреть его повтор позже, чтобы проанализировать тактику, понаблюдать за действиями союзников, похвастаться достижениями, наконец. Запись реплеев включается во вкладке «Игра» в меню настроек, там же будет указано и местоположение файлов с записями — это папка «Видео» в вашей ОС Windows.

Комментарии

(8)