Лаунчер

40
1
7
Всем добра!

Какие лаунчеры все таки являются безопасными? Или есть смысл написать свой?
Расскажите свои взгляды :unsure:
 
Прям щас занимаюсь тем что пишу лаунчер. Есть что сказать по этому поводу. Буду говорить в контексте лаунчеров для приватных проектов.

Лаунчер пишется принципиально ради решения следующих задач:
1) Скачивание клиентов игры. Самая очевидная и необходимая фича.
2) Доставка модпака до конечного юзера. Без этого ему придется самостоятельно ставить и манажить модпак. Мало кто хочет этим заниматься, поэтому игроки предпочтут просто не заходить на серваки с таким порогом вхождения. Чаще всего лаунчер и нужен ради автоматизации этого шага потому как иначе существенно увеличивается вероятность потерять юзера.
3) Контроль над авторизацией. Необходимо, если проект хочет управлять базой пользователей по полной: блокировать учётные записи, раздавать UUID'ы на свое усмотрение, контролировать никнеймы игроков, кастомить время жизни игровых сессий, использовать свою базу скинов, самостоятельно определять привелегии юзеров (в контексте лаунчера под этим имеется ввиду возможность доступа к мультиплееру, к чату, активность встроенного вордфильтра). Также необходимо для проектов, которые хотят вообще отгородиться от влияния Microsoft.

Попутно с этим проект может решать ряд других задач, которые невозможно решить паблик серверам:
1) Клиентская античит защита. Позволяет удостовериться, что юзер не изменял модпак, не прокидывал читы, ботов и играет честно. И хотя ни один античит не дает 100% гарантии абсолютной надёжности, возможность контролировать как именно игра запускается на клиенте существенно снижает количество читеров.
2) Доставка пушей. Появляется возможность слать юзеру уведомления прямо в системный трей компа. Такие уведомления доходят с гораздо более высокой вероятностью, чем например через канал новостей проекта в дискорде.
3) Сбор данных. Проект может использовать логи клиента для анализа стабильности модпака, а так же любые данные, которые посчитает нужными. Например, другие установленные лаунчеры, предпочитаемые моды в сторонних лаунчерах, список серверов вне проекто, на которых ещё играет пользователь, данные об оборудовании, HWID для идентификации юзера по оборудованию и т.п.
4) Интеграция с другими сервисами. Например, отображение игровой активности в дискорде.

Лаунчер - главный инструмент, которым проекты реализуют внеигровую клиентскую логику. И хотя можно делать все вышеперечисленное в рамках мода, лаунчер не зависит ни от версии игры, ни от используемого лоадера.

Насчёт лаунчеров, не привязанных к конкретному проекту, я не вижу смысла. Ну только если у тебя не своя площадка вроде modrinch'а и ты желаешь быстрее доставлять с нее контент.

Какие лаунчеры все таки являются безопасными?
Те, бинари которых подписаны валидным CodeSign-сертификатом. Это означает, что организация, выдающая сертификаты, проверила юридические данные девелопера, и ручается за его безопасность перед всей платформой (Windows, MacOS). Все CodeSign-сертификаты стоят денег и организации, выдающие их, категорически не заинтересованы выдавать их нечистым на руку девелоперам. Сертификат, созданный самим девелопером, не считается валидным и операционная система явно пометит такое приложение как опасное.
 
Последнее редактирование:
Или есть смысл написать свой?
Банально глупо писать свой, если он будет применяться локально, а не для коммерческого использования, по типу проекта и тд. Как написал @MaximPixel из нормальных офиц, CurseForge, Modrinth. От себя бы добавил Launcher Legacy(по ЕС он недоступен как у меня без впн) и Lunar Client. Всякие TLauncher, KLauncher и остальной алфавитный порядок не вызывает доверия, как минимум из-за кучи видео обзоров.
 
Что же, вроде всё важное сказали, вставлю свои 5 копеек.

Я согласен полностью с @MaximPixel и @Kernet.
Писать лаунчер не для своего проекта смысла 0.
Ты потратишь больше времени и сил, но нужного эффекта добиться всё равно сложно.

Тот же Gravit,K773,Sashok вполне подойдут, ибо как уже обговаривалось выше - 100% защиты нигде нет и не будет, всё что происходит на клиенте - обойти сможет человек со знаниями без особых проблем.

Если всё таки соберёшься, держи плюсы и минусы.

Плюсы:
1) Творчество: Ты буквально можешь реализовать свои идеи и создать что-то уникальное, что может привлечь внимание игроков.
2) Полный контроль: Ты можешь настроить лаунчер по своим требованиям и добавить функции, которые по твоему мнению, полезны для игроков.
3) Взаимодействие с пользователем: Начиная от особых уведомлений в лаунчер(push), заканчивая отдельными ветками с "онлайн" общением.
4) Интеграция: Ты можешь интегрировать работу с другими приложениями(discord и т.п), мне например нравится идея с трансляцией стримов из twich/youtube в отдельный блок на сайте/лаунчере.
5) Информация: Получение информации о пользователях, например HWID, ip и т.п, что потом может помочь при блокировках)
6) Контроль: Тотальный контроль над всеми действиями в лаунчере, особенно логирование ошибок.

Можно много ещё плюсов написать, но для меня это основные.

Минусы:
1) Разработка: Создание лаунчера требует хороших знаний программирования и понимания как работает код.
2) Безопасность: Лаунчер может быть уязвим для взлома, так же не забываем про утечку памяти.
3) Время: Разработка может занять много времени, особенно если ты делаешь это один. Тебе придется тратить время на тесты, либо искать людей для тестов.
4) Репутация: Давайте будем объективны, если мы говорим за обычные лаунчеры и сайты, то пофигу.
Но в моем понимание, лаунчер и сайт это те места, которые должны показывать пользователю, что команда разработчиков - старалась.
Мало кому захочется заходить на проект, который используют чужие слитые наработки или же сделанное на коленке.
Обычно это показывает, какой подход у команды разработчиков и в частности у владельца к проекту.

У меня итог такой:
Java:
Лаунчер стоит писать только в тех целях, если он действительно необходим.
Я никогда не доверял клиентской защите, поэтому не бегал по разным лаунчерам.
В 2019 как допилил фишки которые мне нужны в sashok 724, так им и пользовался(по типу бана HWID и подобные).

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

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