Одна из самых полезных идей в любом launcher это разделение на быстрый и полный режимы обновления. Проблема в том, что многие либо запихивают в quick вообще все подряд, либо отключают full, чтобы не бесить игроков. Оба варианта в долгую работают плохо.
Quick update это режим быстрого допуска в игру. Он проверяет критичный набор файлов, без которых запуск рискованный. Задача не в том, чтобы проверить весь мир, а в том, чтобы быстро убедиться, что сейчас можно безопасно стартовать клиент. Для ежедневного входа это лучший сценарий.
Full update это глубокая проверка всей структуры клиента. Он нужен после крупных патчей, миграций, нестабильных релизов и в любой ситуации, где есть сомнение в целостности данных. Да, дольше. Зато именно он вытаскивает проблемы, которые не поймать быстрым проходом.
Ключевой вопрос, что считать критичным для quick. Ответ всегда завязан на ваш проект, но принцип общий. В быстрый режим идут файлы, ошибка в которых приводит к массовым фейлам запуска, логина или базовой совместимости клиента с сервером. Все остальное лучше оставить full режиму, чтобы не превращать quick в почти полный.
Рабочая тактика для L2 обычно такая. При старте лаунчера идет quick. После больших обновлений запускается full по условию версии или по рекомендации. При волне жалоб добавляется отдельная явная кнопка полной проверки. И важно логировать, в каком режиме проходило обновление, чтобы потом не гадать при разборе репортов.
Частая ошибка номер один, пытаться решить все одним режимом. Частая ошибка номер два, не объяснять игроку разницу. В итоге человек не понимает, почему быстро проверил, но проблема осталась, а поддержка снова разбирает это руками.
Смысл связки quick и full в том, что они дополняют друг друга. Quick дает скорость каждый день. Full дает страховку и чистоту после тяжелых изменений. Вместе это и есть зрелая система обновления, а не компромисс на удачу.
См. также: Patch Builder как собрать обновление без хаоса .
См. также: Как работает UpdateInfo.xml и зачем CRC32 в апдейтере