Trilogy Online — мультиплеер от команды энтузиастов для игр GTA: THE TRILOGY.
FAQ:
В: Будет ли клиент сторона?
О: Да, будет полноценная клиент сторона с возможностью запуска собственного кода.
В: Будет ли возможность добавлять собственные модели в игру?
О: В первых версиях этого не планируется, в будущем возможно.
В: На каком языке предоставляется возможность программировать свои модификации?
О: Будет SDK для C++, с помощью него вы сможете создавать собственные плагины. Плагин уже сможет подгружать то, что вы захотите. Для удобства комьюнити с SA-MP я лично разработаю плагин для подгрузки Pawn скриптов.
В: Будет ли встроенный античит?
О: В самых первых версиях нет, в будущем сервер будет фильтровать мусорную информацию и проверять соответствие всех свойств игрока. Если информация исходящая из клиента не будет соответствовать той, которую установил разработчик, будет вызываться соответствующий калбек. Разработчик сможет сам решать будущее игрока.
В: Лимиты на спавн?
О: В данный момент я занимаюсь реверс инжинирингом, пока точно не могу назвать лимиты.
В: Максимальный онлайн?
О: Так как максимальный онлайн зависит от количества игроков, которых сможет видеть игрок, тут идет опять вопрос о лимитах. В настоящее время ответа я дать не могу. Скоро эта информация обновится.
В: Как будет работать GUI на клиент стороне?
О: В моих планах дать полный доступ из плагина к возможностям графического API игры, вы сможете программировать GUI как вам будет удобно.
В: Какие игры трилогии будет поддерживать мультиплеер?
О: Я начал разработку с SA, в будущем планируется добавить 3 и VC.
В: Будет ли игра как-то доработана? Ремастер выглядит не очень. Баги, прорисовка, производительность.
О: Я постараюсь улучшить геймплей как только смогу. В моих планах добавить небольшой дым, чтобы снизить дальность прорисовки для реалистичности.
В: Open source?
О: Нет. Я использую много своих личных наработок и не хочу их кому-то отдавать за просто так. Я постараюсь исправлять баги и недоработки как только смогу, не переживайте!
Слова разработчика касательно клиент стороны:
Мне задают много вопросов о том, как будет устроена клиент-сторона. Я долго это обдумывал и вот мое окончательное решение.
Я хочу предоставить пользовательским серверам максимум возможностей и разрешить им исполнять нативный код на стороне клиента, проще говоря, мультиплеер будет загружать DLL, скаченные с сервера. Минус такого решения — это не безопасно. Но что есть безопасно? Если мы взглянем на тот же SA-MP, то каждый крупный проект имеет свою клиент-сторону со своим лаунчером. Почему так происходит? Платформа не удовлетворяет потребностям всех проектов. Каждый проект индивидуален и невозможно всем угодить. Банальная реализация пользовательских интерфейсов может различаться. Кто-то хочет использовать ImGui, кто-то хочет использовать CEF, кто-то имеет свой GUI движок.
Скачивая клиент-сторону и лаунчер определенного проекта, вы подвергаете свой компьютер такой же опасности, как и при загрузке DLL мультиплеером. Хотя, на самом деле, не скачивая ее — тоже. Недавно, в SA-MP 0.3DL была обнаружена уязвимость, которая позволяла запускать произвольный код на стороне клиента. Происходило это, на сколько я понимаю, с помощью ошибки в загрузчике моделей. О какой безопасности может идти речь?
Мне предлагают разрешить использовать только байт-код, который будет исполняться в виртуальной машине. Это, вроде как, должно быть безопасно. Но так ли это? Даже если разрешить исполнять байт-код, скомпилированный из какого-то скриптового языка, кто-нибудь может найти ошибку в виртуальной машине, исполняющей этот байт-код, и использовать эту ошибку в своих корыстных целях. Но это еще не все. В любом случае, виртуальная машина будет вызывать функции в GTA, передавая в них определенные аргументы. Где гарантия того, что при передаче какого-нибудь особенного аргумента, код GTA не перезапишет какой-нибудь исполняющийся участок памяти? Я не имею исходного кода GTA, чтобы проверить все возможные варианты событий при обработке аргумента, а заниматься реверс-инжинирингом подобного — очень затратно по времени и силам. Как видите — использовать байт-код, абсолютно также не безопасно, как и нативный код.
У меня есть несколько идей, которые должны будут помочь игрокам с выбором проекта для игры. Первая заключается в том, что будет платная возможность получить верификацию со стороны мультиплеера. Верифицированный проект будет по особому отображаться в списке серверов. Таким образом, игрок может не бояться на него заходить. Вторая идея — сервера, которые хотят отображаться в общем списке, должны будут пройти регистрацию на сайте с привязкой почты и номера телефона. Аккаунт, владелец которого занимается созданием сервера с распространением вредоносного кода, будет навсегда заблокирован.
Вы должны играть только на проектах, которым доверяете. Интернет — достаточно небезопасная штука. Конечно же, в лаунчере мультиплеера мы будем предупреждать об этом.
Небольшое дополнение к описанию работы клиент-стороны. Многие хотят чувствовать себя в безопасности и не хотят запускать нативный код, скаченный с сервера, а использовать байт-код, надеясь на то, что разработчик сервера это не опытный хакер, который смог найти уязвимость в популярных виртуальных машинах или в коде GTA. Хорошо, для такой аудитории тоже будет предложено решение. Мы решили создать список официально проверенных DLL от наших контрибьюторов, они будут с открытым исходным кодом и вы сможете сами убедиться в их безвредности. Такие DLL будут представлять из себя загрузчики байт-кода или дополнять возможности мультиплеера (допустим, добавлять CEF). Вы сможете использовать возможности этих DLL с сервера и при этом ваш сервер будет отображаться в лаунчере как безопасный.
P.S. Возможность загружать собственные DLL на клиент все также остается. Просто сервер, который ее использует, будет отображаться в лаунчере как небезопасный. Чтобы получить статус безопасного, ему потребуется связаться с нами, оплатить наше время и предоставить доказательства своих благих намерений.
Наши ресурсы:
trilogy-online.com — сайт
vk.com/trilogy_online — группа
t.me/trilogy_online — телеграм канал
youtube.com/channel/UCsl9OfYF_SpNtSga8iYYz9g — ютуб канал
github.com/Trilogy-Online — гитхаб аккаунт