Эксклюзив Simple Lua Multiplayer - разработка

Pakulichev

Software Developer & System Administrator
Друг
1,789
2,130
В общем, продолжаем насиловать Simple Lua Multiplayer новым функционалом. Вдоволь отдохнув от разработки и избавившись от очередного приступа лени, я решил добавить синхронизацию объектов и несколько функций для игровых режимов, которые помогают работать с этими самыми объектами. Думаю, что большим разочарованием для многих станет то, что совместимости с редакторами карты для SA:MP нет, но есть и хорошие новости: один из моих старых скриптов, который называется Object Editor v2, хоть и напрямую не поддерживает маппинг для SL:MP и его функции, но в общем и целом совместим, если слегка изменить экспортированный вариант. Основная проблема заключается в том, что координата Z для объектов в SL:MP и в SA:MP рассчитывается из разных точек.

Это ещё не финальный вариант, возможно совместимость будет - точной информации пока не имею.


image.png

Все объекты по умолчанию динамичные, то есть подгружаются, когда игрок находится в непосредственной близи с ними. Возможно загружать объекты только для определенного мира или интерьера, также можно устанавливать дальность прорисовки. Статичных объектов как в SA:MP добавлено не будет.

Ограничения на количество объектов в самом мультиплеере нет, всё опять же упирается в лимиты игры, но установка Limit Adjuster решает этот вопрос. По умолчанию сервер передает значение типа uint32_t в качестве идентификатора объекта, так что фактический максимум -
4294967294 объектов. Помните, что память игры не бесконечная, попытка создать или хотя бы инициализировать таблицу такого размера приводит к прекращению работы мультиплеера.


 

Pakulichev

Software Developer & System Administrator
Друг
1,789
2,130
Сегодня ради интереса закинули в сообщество ВКонтакте опрос с вопросом о введении функционала голосовой коммуникации между игроками на сервере. Собственно, ниже на скриншоте с нашей группы можно заметить, что в основном на эту идею отреагировали положительно. Если честно, я бы попробовал реализовать что-то подобное - мне кажется, что сделать это будет не так уж и сложно, но вот по срокам ничего обещать не могу, потому что есть основной рабочий план от которого я стараюсь не отступать, чтобы не уйти в дебри, но и про новые функции стараюсь не забывать и время от времени делаю.

Увидев положительное развитие голосования по голосовым коммуникациям, решил поэкспериментировать с библиотеками BASS и OpenAL и посмотреть на чём бы было лучше всего реализовать этот функционал. Пока остановился на BASS, а как пойдет дальше посмотрим. Испытываю некоторые проблемы с записью звука, встречаются различные артефакты в записанной дорожке, предполагаю, что пустые места надо заполнять чем-то вручную - посмотрим. Работать всё это дело скорее всего будет отдельно от основного клиента и сервера, т.е. под другим портом, дабы основные пакеты доходили лучше.


image.png

И как обычно: если у вас есть идеи по реализации качественной записи звуковой дорожки на основе модуля BASS, то милости просим в личные сообщения. В данный момент задача проста: добиться качественной записи и воспроизведения звука из выбранного аудио-устройства. Идеальным вариантом будет рабочий пример, который воспроизводит звук с микрофона в реальном времени [input => output], либо запись в файл [input => file => output].
 
  • Нравится
Реакции: CivilBleat

Pakulichev

Software Developer & System Administrator
Друг
1,789
2,130
Веб-сайт мультиплеера лежит из-за проблем на серверах хостинг-провайдера, надеюсь ничего важного для вас на данном этапе на нём не было, потому что трудности обещают решиться не так быстро, как хотелось бы. На работоспособность серверов мультиплеера это никак не повлияет - просто информирую вас.

UDP: работоспособность веб-сайта восстановлена.
 

Pakulichev

Software Developer & System Administrator
Друг
1,789
2,130
Природа настолько очистилась, что в репозитории на GitHub появились свежие исходники мультиплеера. Это не значит, что новая версия вышла - это лишь значит, что я вспомнил про существование репозитория на GitHub. В любом случае использование новой версии не рекомендовано - она очень нестабильная.