1.1: mp.game v2, EAC и многое другое!

Lev Angel

Developer
Команда форума
Скриптер
После длительного перерыва и отсутствия каких-либо новостей, разработчики Rage MP наконец-то порадовали нас информацией о новых обновлениях.

mp.game v2
mp.game v2 - это новый игровой API, который заменяет mp.game (v1) и связанные с ним методы сущностей. Он использует новейший V8 (движок JS) C++ в JS для обеспечения лучшей производительности, стабильности и использования памяти.

1626714589132.png

По сути:
1) В среднем в 2 раза быстрее нативные вызовы - даже лучшая производительность для нетривиальных вызовов (например, ссылок, векторов и т. Д.). Некоторые natives были переработаны для достижения максимальной производительности в определенных случаях. В наших тестах mp.game v2 соответствует производительности ScriptHookV (C++) (даже превосходит ее в некоторых случаях!) Благодаря внутренней оптимизации и новому взаимодействию JS с C ++.
2) Все старые проблемы с генератором исправлены, а также улучшена проверка аргументов для более удобного предоставления дополнительной информации.
3) Natives были доведены до актуальности. Старые нативки также получили обновления, чтобы сделать их максимально обратно совместимыми.
4) Game API был улучшен для лучшей поддерживаемости, теперь его можно легко обновлять с помощью небольших релизов RAGE Multiplayer.
5) Определения TypeScript теперь генерируются вместе с оригинальным игровым кодом API. Публичный релиз скоро появится.

Оптимизация игры и API
Помимо значительных улучшений производительности, внесенных mp.game v2, мы также доработали некоторые другие вещи.
* Исправлена серьезная проблема с стримингом GTA V, из-за которой возникали лаги когда множество игроков попадали в зону стрима.
* Сетевой протокол был доработан для увеличения пропускной способности, наряду с оптимизацией протокола для соединений с высокой задержкой.
* Базовые методы и свойства сущностей были оптимизированы для увеличения производительности и лучшего использования памяти.
* Клиентский mp.Pool API был обновлен чтобы соответствовать серверному API
* Улучшение валидации ресурсов на стороне клиента - игровые ресурсы будут проверяться быстрее, с меньшим использованием памяти и без полной расшифровки
* Перезагрузка ресурсов клиентской среды будет выполняться быстрее
* Улучшена производительность ввода/вывода при работе с клиентскими ресурсами, что будет более заметно у игроков с HDD

В оптимизированном игровом режиме это не будет сильно заметно, но в случаях высокой нагрузки при выполнении тяжелых операций в моде отмечалось повышение среднего FPS.

EAC
EasyAntiCheat (часть EpicOnlineServices) был встроен в лаунчер игры, но еще не полностью реализован из-за грядущего обновления Los Santos Tuners (20 июля), на данный момент ему не хватает полной интеграции EOS и серверного API, необходимого для корректной работы EAC. Мы доработать это как можно скорее после того, как будет обеспечена совместимость со следующим обновлением GTAV. А пока мы просто тестируем работу EAC с лаунчером.
Кстати, не беспокойтесь - хотя EAC немного увеличивает время запуска, это никак не влияет на производительность в игре.

API
* Добавлено: client-side mp.game.enableInvokeDebug (включает mp.game v2 строгую проверку типов, включено по умолчанию)
* Добавлено: client-side mp.game.enableResultObjCache (около >10% увеличение производительности для нативок которые возвращают Vector3, даже более для тех которые возвращают комплексные значения. Отключено по умолчанию - используйте осторожно!)
* Добавлено: client-side mp.players[/peds/vehicles/colshapes/objects/markers/labels].maxStreamed (get/set)
* Добавлено: client-side mp.cameras.gameplay - mp.camers.new("gameplay") теперь также возвращает ссылку на этот постоянный не разрушаемый экземпляр
* Добавлено: client-side mp.game.streaming.getAllModelHashes([type])
* Добавлено: client-side mp.game.streaming.getAllModelNames([type])
* Добавлено: client-side mp.game.streaming.getModelNameFromHash(hash)
* Добавлено: client-side mp.game.invokeStrict* (it doesn't pass rounded number values as int but explicit BigInt values)
* Исправлено: доступность прототипов JS сущностей на стороне клиента (подсказка: вы можете использовать это вместо проверки entity.type)
* Исправлено: client-side mp.game.graphics.screen2dToWorld3d теперь полностью точен и намного быстрее (особенно по сравнению с реализациями JS, созданными сообществом, которые использовались для большей точности в прошлом)
* Обновлено: удалена защита от неправильного обращения c API C#, передающего null строки как пустые (это было несовместимо с некоторыми исходными кодами).
* Обновлено: клиентские clearTimeout/clearInterval теперь возвращают false если указанный интервал не существует.
* Исправлено: client-side C# RAGE.Game.Invoke поддерживает логические значения и байты (как аргументы, так и возвращаемые значения, ранее его нужно было преобразовать в int/long)
* Обновлено: у entity.destroy теперь есть защита от двойных вызовов
* Исправлено: клиентские waypoint события C#

Разное
* Игровой процесс RAGE теперь работает как пользовательский процесс (без повышенных привилегий)
* Улучшена скорость загрузки пользовательских игровых ресурсов.
* Исправлено автоматическое определение папки EGS
* Статус скорости загрузки лаунчера стал более точным
* Лаунчер теперь корректно переключается из статуса «установка соединения» в статус «загрузка».
* Улучшения стабильности и производительности голосового чата (запланированы и другие обновления!)
* Исправление бамперов машин, которые ломались и падали на землю при попадании в зону стрима.
* Исправлена ошибка, из-за которой определенные серверные API-пакеты транспортного средства / объекта игнорировались клиентами с нестабильным соединением.
* Реализован кэш записей домена masterlist, когда сервер не может временно определить их из-за проблем с подключением к DNS-серверу (например, DDoS-атака или ежедневные проблемы с сетью OVH)
* CEF автоматически изменяет размер в зависимости от разрешения игры
* Добавлена экспериментальная реализация IME (https://en.wikipedia.org/wiki/Input_method)
* Исправлены ложные тайм-ауты RPC сервера с игроком
* Общие улучшения, исправления и рефакторинг сервера и клиента

Обновление
Обновление только что было отправлено в ветку тестирования "gamev2_LdQuTaL26ySDCvxvVnD8czXS7YzuwmX3" (переключите канал, отредактировав config.xml в папке RAGE MP). Клиент обратно совместим со старым сервером и наоборот. Мы начнем объединять это обновление в нашу основную ветку (prerelease) после того, как будет готов патч совместимости для следующего обновления GTA V (не беспокойтесь - мы тестировали это обновление в течение нескольких месяцев с таким количеством людей, с которым мы могли связаться, чтобы получить отзывы о стабильности. - ваши отзывы также приветствуются в нашем Discord). Методы старого игрового API доступны в объекте mp.game1 (можно вернуть обратно в mp.game), вы также можете использовать его в последующих сборках.

В настоящее время версия 0.3.7 не поддерживается - она будет добавлена в следующем патче совместимости с обновлением GTA V.
 
Последнее редактирование:
Яндекс.Метрика
Верх