Как обновить игровой клиент
Примечание 1: Если вы не играли на Noblegarden с июня 2019, вам нужно перекачать клиент с нуля, инструкции тут: ссылка
Примечание 2: Если вы не играли на Noblegarden с ноября 2020 года и у вас остался клиент Noblegarden — переходите на пункт 2 данной статьи.
Пункт 1. Обычное обновление.
Для того, чтобы всегда получать свежие обновления — запускайте игру только через наш лаунчер (Noblegarden Launcher.exe) и нажимайте кнопку «обновить». Лаунчер автоматически скачает требуемые обновления!
ВАЖНО 1: всегда запускайте лаунчер от администратора! Жмите «разрешить» если при обновлении выскакивает окошко с запросом windows!
ВАЖНО 2: если обновление зависает, крутится и т.п. то перезапустите от администратора лаунчер и снова нажмите «обновить»
Если выскакивает сообщение вида «вы используете устаревшую версию» (пример ниже) — скачайте и установите свежую версию лаунчера!
Для установки свежей версии лаунчера ничего удалять не нужно! Просто запустите установщик и выберете для установки корневую папку с игрой. Установщик сам обновит нужные файлы.
Пункт 2: Упрощенное обновление для клиента версии старше ноября 2020 года.
Если у вас быстрый интернет и есть время — лучше перекачать клиент с нуля нашим новым торрентом, а потом раздавать его другим — все будут очень рады!
Если же с интернетом у вас не всё так радужно или вы спешите начать игру, сделайте следующее:
1) Скачайте свежую версию лаунчера (ссылка в пункте 1)
2) Запустите установщик, и выберите для установки корневую папку c клиентом Noblegarden
3) Запустите от администратора в папке с Ноблом файл Noblegarden Launcher.exe
4) В правом верхнем углу нажмите иконку «шестеренка». Откроется меню выбора дополнительных патчей.
5) Для обновления клиента вам нужно выбрать patch-ruRU-A.MPQ
Остальные дополнительные патчи скачивайте по желанию, их содержимое подписано.
НЕ ЗАБУДЬТЕ ПОСЛЕ ОБНОВЛЕНИЯ УБРАТЬ ГАЛОЧКИ, ЧТОБЫ ЛАУНЧЕР НЕ ПРОВЕРЯЛ ОБНОВЛЕНИЯ ЭТИХ БОЛЬШИХ ПАТЧЕЙ — ОНИ НЕ ИЗМЕНЯЮТСЯ.

6) Снова нажмите на шестеренку, чтобы закрыть меню и нажмите большую кнопку «ОБНОВИТЬ» в правом нижнем углу окошка лаунчера.
7) Если в процессе обновления выскочит окошка с текстом вида «дать права доступа» — нажимте «ок» — лаунчеру нужны эти права для замены устаревших файлов.
После успешной установки можно играть!
8) Если процесс установки оборвался или завис — повторите пункты 3-7
При возникновении сложностей пишите комментарии к этой статье или обращайтесь в канал #технические_темы нашего Discord! ( перейти в наш дискорд )
Игра пишет, что «Вам нужно обновить игровой клиент PUBG». А обновлений нет! Что делать?
Разработчики часто выпускают обновления: исправления ошибок, новые предметы и так далее. Поэтому иногда вы можете напороться на сообщение «Вам нужно обновить игровой клиент PUBG». Только иногда оно вылезает и тогда, когда никаких обновлений в Steam нет и в помине! И что тогда прикажете делать? Не беспокойтесь, эта беда решаемо — даже не придется сильно напрягаться. Лишь потерпеть.
Чудесный способ
Все дело в том, что произошел какой-то сбой с файлами. Может, игра не досчиталась одного конфига или просто какой-то параметр перезаписался, отчего ПУБГ теперь его не видит. Следовательно, придется вернуть все, как было. Благо, это куда проще, чем исправить «время подключения истекло«. Просто следуйте по шагам.

- Откройте Steam.
- Нажмите на «Playerunknown’s Battlegrounds» правой кнопкой мыши и выберите «Свойства» (последний пункт выпадающего меню).
- Перейдите на третью вкладку под названием «Локальные файлы».
- Выберите «Проверить целостность файлов игры». Дождитесь, пока процесс кэширования завершится — система перекачает то, что стоит перекачать.
После этого назойливое сообщение «Вам нужно обновить игровой клиент PUBG» исчезнет и вы вполне сможете высадиться на любимую карту. Также можете сделать фиолетовую кровь, чтобы было проще замечать врагов.
Как сделать автоматическое обновление клиента онлайн-игры
В этой статье я расскажу о том, как я сделал систему автообновления клиентской онлайн-игры. Ссылка на исходники (Delphi) в конце статьи. На самом деле такую фичу я реализовал в двух своих играх, и если первый блин вышел немного комом (в игре Spectromancer), то вторая реализация получилась весьма удобной и эффективной. Это моя первая статья на Хабре, так что сильно не бейте, а лучше укажите на недостатки в комментариях 🙂
Алгоритм обновления игры
- Проверка версии на необходимость обновления.
- Скачивание списка файлов актуальной версии.
- Скачивание новых или изменённых файлов во временную папку.
- Установка обновления — приведение файлов установленного клиента в соответствие со списком.
- Запуск обновлённого клиента.
Проверка версии
Первым делом при запуске клиент спрашивает у сервера номер актуальной версии (X) и номер минимально допустимой без обновления (Y). Если версия клиента не ниже Y, то обновление не требуется, в противном случае клиент запускает утилиту обновления «GetNewVersion.exe X«, а сам завершает работу.
Как видим, номер версии передаётся параметром — это позволяет при желании обновить игру до любой доступной на сервере версии, и даже понизить её. Если параметр не передать — утилита сама запросит у сервера номер актуальной версии. Номер версии — это просто целое число, схема нумерации может быть любой, например у меня версия 1.12 соответствует номеру 1120.
Ответ от сервера не приходит мгновенно, а до его получения мы не можем создать окно игры, ведь возможно придётся его тут же закрыть, а непонятные мерцания на экране — это совсем не то, что нам нужно. Время ожидания ответа надо бы чем-то занять, и клиент занимает его загрузкой/распаковкой наиболее тяжелых JPEG’ов. Слишком долго ждать тоже нельзя: игрок запустил игру — а на экране ничего не происходит, непорядок. Поэтому если в течение 1.0 сек. ответ от сервера так и не поступил — загрузка игры продолжается в обычном порядке. В этом нет ничего страшного: как только игрок попытается залогиниться на сервер, он получит сообщение о необходимости обновить клиент, либо о том, что сервер недоступен.
Скачивание списка файлов
Зная номер версии, утилита обновления скачивает список файлов по адресу: [base_ur]>/[версия]/filelist
Это просто список файлов в формате CSV с указанием контрольных сумм, а также размеров в сжатом и несжатом виде, каждая строчка выглядит в нём примерно так:
18*Priest.tga;1053151921D9;91719;107372
Здесь «18*» означает, что 18 символов в имени файла такие же как и у предыдущего файла. Поскольку файлы обычно идут в алфафитном порядке, а пути могут быть длинными — это существенно экономит размер файла-списка. Для веб-сервера, на котором не включена компрессия, это означает, что файл скачается быстрее и обновление начнётся раньше.
Скачивание новых или изменённых файлов
Мы не знаем насколько устарел клиент игры, возможно какие-то файлы изменены или удалены вручную. Скачивать лишнее мы тоже не хотим, поэтому получив список файлов, утилита начинает проверять их по порядку на необходимость обновления: если в папке игры файл отсутствует или его контрольная сумма отличается — файл добавляется в очередь на скачивание. Параллельно может загружаться не более 2-х файлов — этого вполне достаточно, чтобы с одной стороны загрузка не тормозила, а с другой, происходила последовательно.

Особая тема — отображение прогресса. Пока не обработан весь список, мы точно не знаем сколько файлов предстоит скачать и какого они размера. Однако как только первый файл поставлен на загрузку, мы уже можем отобразить какую-то информацию. Фактически, прогресс отображает очередь загрузки: сколько всего предстоит скачать и сколько уже скачано.
Скачанные файлы сразу же распаковываются и сохраняются во временной папке, для сжатия я использую библиотеку zlib .
Когда весь список файлов обработан и все загрузки завершились, утилита проверяет наличие файла changes.txt и если он есть — отображает его. Пользователю предлагается начать процедуру обновления. До нажатия кнопки «Update» никаких изменений в папке игры ещё не сделано, так что можно без проблем отказаться.
Кстати, если пользователь прервёт загрузку или откажется от установки, то в следующий раз ему не придётся скачивать все файлы заново: перед скачиванием очередного файла утилита проверяет его наличие во временной папке и если контрольная сумма совпадает — загрузка считается состоявшейся.

А вот при нажатии на «Update» утилита запускает другую утилиту — «InstallUpdate.exe«, а сама завершает работу.
Установка обновления
Зачем нужна ещё одна утилита? Всё просто: для обновления файлов игры нужно выполняться с правами администратора. А для скачивания обновления это, наоборот, противопоказано. Потому что, если только вы не счастливый обладатель EV-сертификата подписи кода, запуск процесса с правами администратора приводит к показу окна UAC. А если при запуске игры, вместо привычного интерфейса игрок видит такое:

… то это, как минимум, повод насторожиться, а то и вовсе отказаться от запуска. Другое дело, при ручном согласии на установку обновления — в таком контексте окно UAC воспринимается нормально. К сожалению, процесс в Windows не может повысить свои права во время выполнения — это свойство неизменно с момента запуска. Поэтому я использую два отдельных файла. На самом деле GetNewVersion.exe и InstallUpdate.exe — это и вовсе одна и та же утилита, файлы идентичны. А действие определяется передаваемыми параметрами и именем исполняемого файла.
Итак, будучи запущенным, InstallUpdate копирует файлы клиента игры из временной папки в папку игры, а затем запускает обновлённый клиент и завершает работу. При этом может быть обновлён и файл GetNewVersion.exe .
Все действия, а также возникающие ошибки, подробно логируются в журнале, это весьма полезно для отладки.
Процесс подготовки новой версии
Мы рассмотрели схему работы обновления с точки зрения клиента игры, но как заставить всё это работать? Для подготовки новых билдов я написал ещё одну утилиту — CompressBuild. Она рекурсивно сканирует папку, сжимает файлы методом Deflate, а информацию о них заносит в список файлов — filelist . После сжатия к имени файла дописывается символ «_». Сжатые файлы повторно не сжимаются, поэтому при необходимости в папке билда можно обновить лишь отдельные файлы, CompressBuild обновит только их.
Некоторые файлы в клиенте игры изменяются в процессе работы, например, содержат настройки. Такие файлы нужно игнорировать, соответствующие шаблоны утилита берет из файла exclude. То есть эти файлы просто не попадают в filelist и не портятся на клиенте при обновлении.
Таким образом, чтобы подготовить новый билд, мне нужно:
1. Скопировать папку \master в папку \[номер_версии]
2. Запустить CompressBuild, который запакует в ней файлы и составит их список.
3. Закачать всё это на сайт игры.
4. Изменить на игровом сервере номер актуальной версии на номер только что закачанной. Вуаля!
С этого момента при обновлении люди будут получать новую версию.
Ну а папки со старыми билдами на сервере можно удалить, чтобы не занимали место.
Заключение
Конечно, моя система обновления не идеальна и не лишена недостатков. Например, если в клиенте какой-то файл был удалён — у игроков он останется. Если файл был переименован — он будет загружен как новый, а старый экземпляр не будет удалён. Можно, конечно, доработать утилиту обновления, добавив в список файлов команды для удаления/переименования файлов, но вообще такие проблемы для моей игры неактуальны, так что я не стал заморачиваться.
Как обновить PUBG
Бывают ситуации, когда вы заходите в PUBG, а игра выдает вам надпись, что вам нужно обновить игровой клиент. И все бы ничего, но игра не обновляется, даже при перезапуске Стима, и даже при перезапуске компьютера в целом. Это происходит из-за разных причин.
Может быть у вас случился какой-то сбой, при автоматической закачке файлов, может быть вы случайно удалили какой-то файл, с важными данными. И сейчас мы расскажем, как исправить этот недостаток.
Для этого заходите в Стим, заходите в библиотеку и находите там PUBG. Далее – правой кнопкой мышки кликаете по игре и выбираете свойства.

После этого у вас откроется табличка, в которой будет несколько подпунктов, вам будет нужен пункт 3 – локальные файлы. Заходите в этот пункт, находите ниже предпоследний пункт, который звучит: «проверить целостность файлов игры».
Кликаете на него, и игра автоматически скачает недостающие файлы, в том числе и все обновления, если они есть.

Вот так, дорогие читатели, просто скачиваются недостающие файлы игры, в том числе и не полученные вовремя обновления. Надеемся, что мы вам помогли. Удачных вам каток.