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

Pakulichev

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

Выше выкладывался пример чата, который имеет стандартную модель работы: несколько клиентов и отдельный сервер. Сейчас же мной публикуется скрипт, который имеет гибридную систему работы. Один из клиентов может стать сервером, а остальные подключиться к нему. При этом и клиент, ставший сервером, и все остальные клиенты будут иметь возможность видеть и отправлять сообщения.

Также в данном примере продемонстрирована система подключения и отключения клиентов, а также автоматическое исключение клиент в случае, если никаких входящих пакетов с его стороны не обнаружено на протяжение 30 секунд, т.е. система бездействия пользователя.

/chat.host [chat name] - стать хостом чата, т.е. создать новый чат для подключения
/chat.connect [chat IP] - присоединиться к созданному кем-то чату
/ch [chat message] - отправить свое сообщение в чат, к которому вы подключены

Для работы этого примера требуется SA:MP, ибо, как можно догадаться, он привязан к SA:MP чату.
Система автоматического отключения иногда не срабатывает, но это не так страшно - система бездействия всё сделает.
Ещё один пример скрипта с гибридной системой работы. Здесь представлен пример того, как можно реализовать синхронизацию между игроками в какой-либо игре. Скрипт зависим от mimgui, так что для тестирования нужно будет его установить. В общем и целом, в примере представлена простейшая синхронизация перемещения игроков по игровому полю, представленному в 2D-пространстве.

Никакой задачи в игре нет, изначально хотел, чтобы можно было что-то собирать на поле, но мне стало немного лень, поэтому игроки, представленный кружочками с никнеймами над собой, просто катаются по полю при помощи WASD и ускоряются с помощью SHIFT.

Так же, как и в прошлом примере, реализована система бездействия и автоматического выкидывания игрока. Система ручного отключения не сделана, также не добавлял различные проверки на одинаковые никнеймы, координаты и прочее. Пример этого всего есть в скрипте выше, поэтому при желании можно понять что и как работает. Без этих проверок при желании можно выкинуть игрока за карту.

/slgame - открыть окно примера

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

Посмотреть вложение 71329
Добавлен SL:NET модуль, работающий на базе C++ с поддержкой Windows и UNIX систем. Умеет работать вместе со стандартным SL:NET на Lua, но лишен некоторой функциональности. Например, не умеет повторно отправлять пакеты при неудачной отправке, возможно добавлю чуть позже.
 

Pakulichev

Software Developer & System Administrator
Друг
1,789
2,131
slmp icon.png


В ожидании обновления SL:MP

Привет! Прошёл примерно месяц с последнего обновления, кто бы сомневался. Я знаю, что писал о том, что обновление 0.0.1b выйдет в течение нескольких дней, но не сложилось - я недооценил объем работы, а также занятость команды SL:MP, поэтому процесс затянулся.

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

Сейчас всё находится под контролем, мы по мере возможностей занимаемся написанием кода для SL:MP и SC:MP, а также стараемся по мере возможности продвигать веб-ресурсы, такие как социальные сети, вики-страницы, форум и веб-сайт, который сейчас в разработке.

Что касается веб-разработки, мы продолжаем сотрудничать с MMXVII Studio, благодарим их за огромную поддержку. Мы также безмерно благодарим всех сторонних разработчиков, бета-тестеров и других людей, помогающих нам с разработкой собственного мультиплеера.

Хотелось бы также прокомментировать заявления групп людей, которые, видимо, насколько переживают за мультиплеер, что во все услышания кричат, что на базе SL:MP не будет ни одного сервера: нас это волнует меньше всего, прежде всего мы работаем для себя.

Мы просто делали, делаем и будем делать то, что нравится нам, то, что нас увлекает. А остальным спасибо за поддержку!
 

Pakulichev

Software Developer & System Administrator
Друг
1,789
2,131
Отличные новости: топик Simple Lua Multiplayer - самая популярная тема в разделе «Lua». SEVEN, как создатель темы, заработал на ней порядком 70-ти реакций, что несомненно очень крутой результат. Мы продолжаем работать над мультиплеером, надеюсь, про его существование ещё хоть кто-то помнит.

Это пока все новости на данный момент.

image.png
 

Pakulichev

Software Developer & System Administrator
Друг
1,789
2,131
В общем и целом, один из бета-тестеров SL:MP. инициализировал своеобразный фоешмоб по закидыванию LIVE SAMP сообщениями про SL:MP, и мы решили это дело поддержать. Можно писать в комментариях, в личные сообщения, просто лайкать чужие комментарии - не важно. Нужно показать активность, действуйте. Смотрите под последние посты, все там.
 
  • Нравится
Реакции: mosquit.

Gera

Участник
29
9
Ну ради прикола да можно попробовать, а так есть 2 клиента. С хорошей синхрой и функционалом - мта. И полнейшое говно с читерами, с лаггающами машинами и игроками - самп
 

Pakulichev

Software Developer & System Administrator
Друг
1,789
2,131
это не правильно. почему? сообщество, которое интересует только деньги, ни за что в жизни не будет писать пост о чём-то за бесплатно. только если это не какая-нибудь аризона. редакторы и руководители будут до последнего игнорировать все ваши сообщения. за бабки? пожалуйста. тебе там любой нубо рп пропиарят. за бесплатно? нет. потому. что деньги для тех людей важнее намного. и в их головах не существует такого понятие как проекты обычных энтузиастов без крупных бюджетов. и вообще.... если честно. в сампе всё так скудно в плане сообществ. лайв самп всего лишь самое крупное инфо сообщество. но это не значит. что контент в нём качественный. стоит ли изначально населять аудиторию своего эксперимента (слмп) токсичными детьми с самого начала. решать вам. как просто попробовать? почему бы и нет. но на продолжительной основе делать этого не стоит
Наше дело поддержать начинания тех, кто решил попробовать - это будет справедливо. Да и суть этих комментариев даже не в том, чтобы администрация этого сообщества обратила на это внимание, а она это сделала, хоть и не выносила это в отдельный пост; а в том, чтобы люди, обитающие в этих самых комментариях видели, что имеется некая поддержка определенного продукта. Да - сырой, да - экспериментальный, да - немного странный, но отличающийся от всего того остального, чего в этой группе уже навалом - и это действительно работает, как показывает статистика, люди заинтересовались. Да - не очень много людей пришло, но пришли - а это самое главное. Понятное дело, что есть консервативное сообщество, которое готово кидать камнями во всё, что не входит в рамки их понимания, во всё новое, но вопрос в другом - а нужно ли вообще на таких людей обращать внимание? Да пусть пишут, что хотят, это их дело, они же все одинаковые - сначала они кидают камнями, а потом, как что-то начинает получатся, прибегают и начинают кричать, что всегда были только ЗА это и всегда поддерживали, а потом ещё хвалятся, что были одни из первых, кто об этом узнал - и так с любым новым продуктом, перебежчики они такие. Волнует ли меня то, что крупное сообщество просто проигнорирует нас? Нет, мне плевать, я понимаю, что они просто зарабатывают деньги, но попытки оно стоит.
 
  • Bug
  • Влюблен
Реакции: Akionka и user390868

Pakulichev

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

cds4r

Новичок
3
2
Лол, мультиплеер на луа, ну Вы и психи, конечно, но а так то идея прикольная, готов оказывать поддержку, имею на руках практически весь функционал 0.3.7 (мобильный сумп), может какой-нибудь мой гкод окажется полезным. vk - @id441932109
 
  • Нравится
Реакции: CivilBleat и Pakulichev

Pakulichev

Software Developer & System Administrator
Друг
1,789
2,131
71745


НОВОСТИ РАЗРАБОТКИ
SIMPLE LUA MULTIPLAYER 1.0.0
Как и было обещано немного тайным посланием, расшифровать которое, я более чем уверен, было не сложно, 11 ноября должно было что-то случится. Боюсь, что этим событием не суждено было быть релизу новой версии SL:MP, но мы проделали большую работу для того, чтобы в ближайшее время выпустить то, над чем мы работали. Никаких точных сроков по сей момент мы обозначить не может, к сожалению, но мы надеемся, что SL:MP выйдет не позже начала 2021 года, а он уже наступает на пятки.

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


  • Идеальная синхронизация движения персонажей вне транспортных средств с анимациями и прочими прелестями оригинальной игры.
  • Синхронизация транспортных средств: планируется реализовать четыре вида синхронизации, которые включают в себя водительскую, пассажирскую, а также две дополнительных: синхронизацию трейлеров, а также синхронизацию движения пустого транспортного средства по средствам перетаскивания.
  • Система диалоговых окон с различными стилями: ввод текста, ввод чисел, ввод пароль, выбор элемента из списка, выбор элемента из списка с картинками.
  • Система внутриигровых интерфейсов с кликабельными элементами. Стоит отметить, что в планах есть добавление поддержки CEF-интерфейсов.
  • Система пикапов разных типов, ничего необычного - самые обыкновенные пикапы.
  • Система динамичных объектов с собственной дистанцией прорисовки, с возможностью их перемещения, создания и удаления.
  • Система виртуальных миров и интерьеров с защитой на стороне сервере, к данной системе также будет подвязана система отрисовки транспорта и объектов.
  • Система транспорта: создание, удаление и перемещение транспорта, а также возможность установки тюнинга на транспорт со стороны сервера.
  • Система синхронизации полученного и отправленного урона с защитой от подмены данных. Сервер сможет получать урон двумя способами: по отдельности считывая данные об нанесенном и полученном уроне, либо из универсального события, который автоматически сравнивает полученные данные друг с другом.
  • Система слежки: установка позиции свободной камеры, наблюдение за игроками и за транспортом. Всё это с защитой от подмены данных со стороны клиента.
  • Система RCON для администрирования сервера: она будет доступна как для игроков на сервере, так и отдельным RCON клиентом.
  • Система контроля условий игры: время на сервере, погода на сервере, время для конкретного игрока, погода для конкретного игрока.
  • Система загрузки клиентский скриптов с сервера. Для загрузки подобных скриптов будет необходимо подтверждение со стороны игрока. Клиентским скриптам будут доступны некоторые методы, предоставляемые SL:MP, для реализации каких-либо вспомогательных систем. Сервер же получит возможность запрещать вход на сервер игрокам, которые отказались от загрузки контента. Несмотря на то, что это достаточно спорная система, я думаю, что она имеет право на жизнь.

Если у вас есть какие-то дополнительные предложения, мы всегда готовы их выслушать. Не болейте.
 

Pakulichev

Software Developer & System Administrator
Друг
1,789
2,131
Просто оставлю это здесь


Знаете как реализовать качественную синхронизацию анимаций движения на Lua?
Пишите, ваша помощь очень пригодится.
 

Pakulichev

Software Developer & System Administrator
Друг
1,789
2,131
В общем и целом, мне захотелось поделиться новым дизайном диалогов, которые я успел сделать, и при этом сделать это как-то необычно. Поэтому на видео ниже вы можете наблюдать то, как могла бы выглядеть регистрация на Advance RP, если бы он был написан на базе Simple Lua Multiplayer. К сожалению, из-за выбранного вида демонстрации, мне удалось показать только два вида диалогов: информационный и с полем для ввода. Напомню, что также имеется список, список с заголовками, а в будущем будет представлен список из блоков. Диалоги листаются как кнопками в самом диалоге, так и кнопками на клавиатуре.


К сожалению, функционала для такой же выборки внешности персонажа как на Advance RP нет, поэтому я решил остановится на этом. Например, не хватает изменения позиции камеры без перехода в режим наблюдателя, отслеживания нажатия клавиш игроком и отрисовки внутриигровых TextDraw.

Думаю, что весь недостающий функционал мы наверстаем в ближайшее время. И да, Андрей, не бань, мы так не договаривались.
 

CivilBleat

Известный
79
17
с интерфейсом отличная тема! стандартный диалог в самп резал глаза.