История создания модификации
24 августа 2020 года нам в голову пришла идея создания своего мультиплеера на базе MoonLoader. Предпосылкой к этому было обсуждение принципа работы сокетов и в целом библиотеки LuaSocket для Lua. Изначально мультиплеер планировался как небольшой эксперимент и работать он должен был исключительно на основе SA:MP. С ходом разработки мы полностью отказались от этой зависимости и мультиплеер стал независимым и спокойно работал на чистой сборке GTA: San Andreas с одним лишь MoonLoader. Также был разработан сервер, который в свою очередь работал при помощи собранного под Windows, либо Linux luajit'a. Обмен данными производился при помощи протокола UDP (User Datagram Protocol): сначала передавалась сжатая JSON-таблица, после начали передавать Lua-таблицу, значения которой делились при помощи делителя, ну а в последствии перешли на SL:NET - систему, работающую на своеобразном BitStream'e, кодировщик для которого был написан с помощью @Akionka. Все эти улучшения сыграли свою роль в развитии.
Функционал мультиплеера
На данный момент мультиплеер обладает большим количеством возможностей, а его исходный код наполнен множеством примеров того, как можно патчить определенные функции GTA: San Andreas при помощи встроенной библиотеки memory и Lua FFI. Некоторые тестеры мультиплеера уже успели написать свои гейммоды, которые могли бы претендовать на стандарт того, как рекомендуется писать моды.
- Реализована OnFoot синхронизация игроков: игроки видят друг друга на карте, находясь в определенной области - так называемой зоне стрима, эта область ограничена конфигурацией сервера. Все данные обновляются динамично, в ходе тестирования одной из старых версий мы установили, что сервер спокойно выдерживает до 10 человек онлайна, находящихся очень рядом друг с другом.
- Реализована InCar синхронизация игроков: игроки могут садится в транспорт, как на водительское место, так и на пассажирское, а остальные игроки видят как те перемещаются в автомобиле. На автомобили, кстати, также работает область прорисовки (стрима).
- Диалоговые окна разных видов: информационные, для ввода информации и с возможным листингом; возможность размещения пикапов на территории карты, в том числе внутри интерьеров; смена виртуальных миров для игроков, интерьеры и многое другое.
Инструкция по установке клиента мультиплеера
Чтобы установить клиент нашего мультиплеера, следуйте следующим инструкциям:
- Зайдите в репозиторий GitHub, ссылка на который расположена выше, зайдите в раздел релизов, скачайте последнюю версию.
- Установите чистую GTA: San Andreas версии 1.0 US, поверх игры установите последнюю версию MoonLoader.
- Перенесите все файлы из загруженного из релизов GitHub архива в директорию с вашей игрой.
- Запустите игру при помощи стандартного файла для запуска игры, ожидайте загрузки игры, готово.
Чтобы установить сервер нашего мультиплеера, следуйте следующим инструкциям:
- Зайдите в репозиторий GitHub, ссылка на который расположена выше, зайдите в раздел релизов, скачайте последнюю версию.
- Создайте директорию на вашем жестком диске в любом удобном месте, распакуйте файлы из архива в эту директорию.
- Откройте файл server.cfg, внесите необходимые изменения в настройки сервера, сохраните его.
- Убедитесь, что у вас открыт и фильтруется необходимый UDP порт, указанный в конфигурации сервера.
- Запустите сервер при помощи файла start.bat, либо start.sh в зависимости от используемой системы.
Последние версии модификации на GitHub Releases: посмотреть релизы
Топик на английском языке на GTAForums: посмотреть
Группа ВКонтакте с новостями и прочим материалом: посмотреть
Вложения
Последнее редактирование: