Updater, launcher, лаунчер, обновлятор, апдатер, апдейдор, называй как удобно, суть одна. Это программа, которая сверяет клиент игрока с вашим эталоном и приводит его к нужному состоянию. Не к примерно похожему, а к строго заданному. Именно поэтому нормальный апдейтер начинает не с кнопки Играть, а с проверки.
Принцип работы
Схема простая и рабочая. Сначала клиент получает карту файлов обновления. Потом сравнивает локальные файлы с эталоном, проверяет наличие файла, размер, потом контрольную сумму. После этого докачивает только то, что не прошло проверку, распаковывает и перепроверяет. В итоге игрок получает именно ту сборку, на которую вы рассчитывали.
Отдельный момент, который часто недооценивают. Апдейтер сам по себе не создает эталон. Его готовит билдер патчей. Сначала вы собираете патч на своей стороне, формируете карту файлов, упаковываете изменения, публикуете их на хосте, и только потом launcher может корректно это раздать игрокам.
Почему нельзя просто залить новый клиент целиком и не мучиться. Можно, но ровно до первого крупного апдейта и всплеска онлайна. Полная перекачка дает лишний трафик, лишнее время ожидания и больше шансов на битые загрузки. А еще это раздражает игрока, который пришел играть, а не смотреть на полоску прогресса.
Быстрое или полное обновление?
Нормальный подход это инкрементальные обновления и два режима проверки. Быстрый и полный. Быстрый, чтобы человек не ждал лишнего при каждом запуске. Полный, чтобы после крупных патчей чисто выравнивать клиент целиком. Когда это настроено с головой, поддержка становится тише, а релизы предсказуемее.
Итог
Если подвести итог по делу, апдейтер это не про красивое окно лаунчера. Это про контроль версии клиента, стабильный запуск и меньше хаоса после каждого обновления. Для живого проекта это база.