Как обновить игровой клиент

от admin

Как обновить игровой клиент

Примечание 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

Остальные дополнительные патчи скачивайте по желанию, их содержимое подписано.

НЕ ЗАБУДЬТЕ ПОСЛЕ ОБНОВЛЕНИЯ УБРАТЬ ГАЛОЧКИ, ЧТОБЫ ЛАУНЧЕР НЕ ПРОВЕРЯЛ ОБНОВЛЕНИЯ ЭТИХ БОЛЬШИХ ПАТЧЕЙ — ОНИ НЕ ИЗМЕНЯЮТСЯ.

dacefd4f9fcb0117ee7b1cf2ff33d2d9.png

6) Снова нажмите на шестеренку, чтобы закрыть меню и нажмите большую кнопку «ОБНОВИТЬ» в правом нижнем углу окошка лаунчера.
7) Если в процессе обновления выскочит окошка с текстом вида «дать права доступа» — нажимте «ок» — лаунчеру нужны эти права для замены устаревших файлов.

После успешной установки можно играть!

8) Если процесс установки оборвался или завис — повторите пункты 3-7

При возникновении сложностей пишите комментарии к этой статье или обращайтесь в канал #технические_темы нашего Discord! ( перейти в наш дискорд )

Игра пишет, что «Вам нужно обновить игровой клиент PUBG». А обновлений нет! Что делать?

Разработчики часто выпускают обновления: исправления ошибок, новые предметы и так далее. Поэтому иногда вы можете напороться на сообщение «Вам нужно обновить игровой клиент PUBG». Только иногда оно вылезает и тогда, когда никаких обновлений в Steam нет и в помине! И что тогда прикажете делать? Не беспокойтесь, эта беда решаемо — даже не придется сильно напрягаться. Лишь потерпеть.

Чудесный способ

Все дело в том, что произошел какой-то сбой с файлами. Может, игра не досчиталась одного конфига или просто какой-то параметр перезаписался, отчего ПУБГ теперь его не видит. Следовательно, придется вернуть все, как было. Благо, это куда проще, чем исправить «время подключения истекло«. Просто следуйте по шагам.

Обновить клиент

  1. Откройте Steam.
  2. Нажмите на «Playerunknown’s Battlegrounds» правой кнопкой мыши и выберите «Свойства» (последний пункт выпадающего меню).
  3. Перейдите на третью вкладку под названием «Локальные файлы».
  4. Выберите «Проверить целостность файлов игры». Дождитесь, пока процесс кэширования завершится — система перекачает то, что стоит перекачать.

После этого назойливое сообщение «Вам нужно обновить игровой клиент 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 – локальные файлы. Заходите в этот пункт, находите ниже предпоследний пункт, который звучит: «проверить целостность файлов игры».

Кликаете на него, и игра автоматически скачает недостающие файлы, в том числе и все обновления, если они есть.

как обновить игру pubg

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

Похожие статьи