Как сделать лаунчер для игры
Перейти к содержимому

Как сделать лаунчер для игры

  • автор:

Как создать лаунчер для CS: GO?

Меня конкретно интересует информация, как создать лаунчер и внедрить в него первый пункт. Какой нужен язык, как гуглить такую информацию, какие библиотеки нужны, нужен ли WInAPI, можно ли вообще на C# сделать такое добро. И вообще любые keywords, которые помогут найти инфу в сети.

  • Вопрос задан более трёх лет назад
  • 1851 просмотр

2 комментария

Оценить 2 комментария

Игроки на Линуксе будут очень рады.
Макс Максимов @maximka19 Автор вопроса
Решения вопроса 1

jamakasi666

Дмитрий Александров @jamakasi666
Просто IT’шник.

Все это делает стим. Заканчивайте пиратить игра и так копейки стоит.
А по факту чтобы такое сделать нужно примерно следующее:
1) Тут можно конечно извратиться но в абсолютно любом случае. Вам нужно будет писать плагин для сервера на с++ в котором каким либо образом осуществлять коннект с клиентом к примеру по сокетам. С клиентской стороны писать опять же писать плагин все также на с++ для игры и при этом отключать верефикацию сертификата или получить его у valve чтобы плагин заработал на клиенте. Промежуточное звено в виде веб сервера с простым скриптом и БД для хранения и верефикации токенов Дальше обвязывать все это друг с другом что то типа:
-запуск игры из лаунчера(получение токена от промежуточного сервера) и передача его в игру
-игра запустилась и приняла плагином движка этот токен, коннект к серверу и передача на него этого токена.
-клиент подключился к серверу и принял токен. Сервер делает верефикацию полученного токена от клиента на промежуточном сервере и по результату разрешает вход в игру или дисконектит с сервера.
2) Свой античит даже близко недостающий функционалом до VAC у вас не получится, на это во первых тратят огромные деньги, во вторых нет исходников игры чтобы понимать чем пользуется чит. В третьих сама ОС
антивирус забракует такую подозрительную активность от левого процесса в система посчитав ваш лаунчер вирусом.
3) Тут делать как угодно можно, начиная от скриншотов самим лаунчером, заканчивая тем что их может делать плагин движка.
4) Зависит от функционала.

Ответ написан более трёх лет назад
Нравится 7 8 комментариев
Макс Максимов @maximka19 Автор вопроса

Так в том-то и дело. Нужно создать что-то вроде FACEIT, куда будут подключаться игроки и играть за призы. А как аналогию я представлял больше iCCupLauncher. Спасибо за содержательный ответ, будем дальше копать.

jamakasi666

Дмитрий Александров @jamakasi666

Макс Максимов: тогда тут не лаунчер нужен а совсем иная система. К примеру как раньше был устроен tf2lobby.
1) Сайт на котором сделана аутентификация по Steam OpenID:
-игрок авторизуется на нем
-сайт получает информацию о игроке.
-игрок выбирает лобби и подбираются союзники\противники.
-после подбора игроков и выбора карты в БД сайта заносятся steamid игроков и имя лобби
-где то на vds запускается свободный сервер с заданным режимом\картой\настройками
-появляется ссылка на страничке по протоколу steam browser protocol вида «steam://connect/1.0.0.27:27015» при нажатии на которую запустится стим и нужная игра сразу с быстрым подключением на указанный сервер.
2) На игровых серверах стоит sourcemod плагин который:
-цепляется к БД сайта под своим уникальным ID.
-ждет игроков.
-при подключении игрока сверяет его steamid с тем который хранится в БД сайта конкретно для этого матча. Если совпадает то дает подключиться иначе дисконектит.
-по оканчании матча выгружает в БД сайта статистику игроков к их учеткам.
-сервер выключается.
-срабатывает скрипт который любым удобным способом выгружает в файловое хранилище сайта демку матча(причем необходимо не обычное демо а сурствшное) и прикрепляет ее к истории и статистике матча и игроков.

Дальше можно расширить этот алгоритм, к примеру по результатам матча которые пришли на сайт дать победителям награды и т.д.
В виде античита чаще всего используют сторонние готовые решения по типу ESL Anticheat и подобных. Заморачиваться со своим просто бессмысленно.

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

В целом сделать все это не так сложно, намного сложнее будет нарисовать шаблон сайт а его визуальную часть чем все эти внутренние кишки в виде запуска сервера, плагина к серверу и т.д.

Макс Максимов @maximka19 Автор вопроса

Дмитрий Александров: вот это уже, кажется, более подходит. Всё равно нужна какое-то связное ПО, которое будет делать скриншот десктопа (незаметно от юзера) в рандомный момент и отправлять на сервер. Первоначально, именно для этого и требовался «лаунчер». Так как, WallHack намного сложнее отследить, чем, скажем, AIM и тд. P/S. Сам не играю CS, знаю только отдалённо.

jamakasi666

Дмитрий Александров @jamakasi666

Макс Максимов: открою секреты, это полностью бессмысленно т.к. большая часть приватных читов прекрасно обходят такие скриншоты и даже видеозахват экрана. Остаются только массовые бесплатные или дешевые читы но их как правило покупают школьники которые и так палятся визуально полностью на ура или блочатся ваком.
Добавлю еще то что опытного читера вообще огроменная проблема спалить, особенно если он зарабатывает таким способом. Так что вы хотите попытаться устроить банальную охоту на ведьм и ни к чему хорошему\удобному это не приведет.

Макс Максимов @maximka19 Автор вопроса
Дмитрий Александров: а какие варианты есть?

jamakasi666

Дмитрий Александров @jamakasi666

Макс Максимов: никаких, все пытаются но ни у кого не получается. Просто не существует способа отловить, тут банальная гонка вооружения. Античиты постоянно совершенствуют, читы аналогично совершенствуются чтобы не палиться.
Взять к примеру так популярный аимбот, в дешевых вариантах читов не заморачиваются и он палится всеми способами. Взять его усовершенствованную версию в виде автошота, он все также дает гигантское преимущество но при этом спалить человека с ним практически невозможно даже если стоять у него за спиной.
Берем в пример valve, у них есть VAC, у них есть ручная проверка командой разрабов,у них есть внутреигровые жалобы на читерство, у них есть внутреигровой «инспектор по демкам» которые раследуют сами игроки, есть кучи плагинов с доп античитами от самих серверодержателей, есть плагины на самих серверах со своими списками банов, сейчас вон уже и этого мало и делают детект человечности через нейросети. При этом число читеров никак не уменьшается.
Берем в пример blizzard. У них есть античит, у них также есть огромная команда которая занимается рассмотрением жалоб и проверки игроков, у них есть внутреигровые жалобы, у них есть огромный юр.отдел который судится с теми кто пишет читы. Они даже протолкнули(один из проталкивателей) в южной Корее закон о том что если пользователь читерил то ему дают реальные сроки на зоне и штрафы. И ничего не помогает, читеры как были так и остаются.
Пока читерство это прибыльный бизнес, будут существовать и читы и читеры. Я тебе даю гарантию на миллиард процентов что даже если ты будешь пытаться сделать свой античит и даже целой командой то ничего из этого не получится кроме огромнейшего гемороя со стороны обычных, честных пользователей что будет порождать много негодования со стороны игроков и их неохоту пользоваться всем этим.

Самый простой вариант это веди свою базу банов, попробуй договориться с крупной торговой площадкой ломанных акков и на неких взаимовыгодных условиях получить от них steamid этих акков чтобы поставить их на особый контроль в своей системе. Введи награду за поимку читеров по демкам для пользователей сервиса, реализуй некую доп аутентификацию пользователей для особых матчей(к примеру если там есть денежные вознаграждения и т.д.) например путем удержания самого вознаграждения на несколько дней пока будут изучены демки. Или же введи уровень доверия пользователей в сервисе, пусть после регистрации они должны будут отыграть некоторое количество матчей и получить доверие после проверки демок по ним тобой\командой\другими пользователями сервиса.

Макс Максимов @maximka19 Автор вопроса

Дмитрий Александров: содержательно, спасибо. Вчера думал насчёт вопроса про скриншоты.. есть wallhack, который не палится скриншотом?

jamakasi666

Дмитрий Александров @jamakasi666

Макс Максимов: полно, практически все приватники не палятся. Пользуются дичайшей популярностью у стримеров.

C# Как обновлять игру через лаунчер по отдельным файлам?

Я делаю лаунчер для игры на C# WPF. Смотря на обновление игр в Steam, лаунчер Crossout, World of Tanks, Samp и прочие лаунчеры таких больших игр. Я видел, что там обновление происходит не устанавливая каждый раз игру заново, а если удалил какой-то файл, то лаунчер это поймёт и восстановит. Игра залита в репозиторий GitHub. Я не понял, как делать нечто вроде клонирования и в итоге получил ссылку на скачивание всего репозитория как архив и из кода разархивирую. Встала проблема с обновлением. Я могу сделать отдельный репозиторий для патчей и туда просто закидывать изменённые файлы, а дальше распаковывать в игру, но мне кажется это провальным. Если я удалю файл, то без понятия как сделать так, чтобы это понял лаунчер. Подскажите способы реализовать то что нужно, либо куда копать.

Отслеживать
задан 28 окт 2022 в 12:01
11 4 4 бронзовых знака

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

28 окт 2022 в 12:13

Берете все файлы, делаете их «снимок» (сохраняя размер, md5 (или аналог), путь), сохраняете в файлик, далее уже на основе этих данных проверяете клиент игры, если файла нет, файл имеет другой размер, или у файла другой md5, то значит с этим файлом что-то не так, а значит надо его восстановить. Как? А зависит от вас, обычно есть сервер с файлами, от куда качается все, последнее время в моде p2p (торрент), где сервером является каждый игрок. Патчи по аналогии, ищите разницу между старой версией и новой, эту разницу и отправляете игрокам. Вот и вся логика.

28 окт 2022 в 13:28

Если git, то обновление командой git pull делается. Почитайте документацию по git, но выбор гита в качестве источника обновления — странный.

Как создать лаунчер для SAMP/CRMP, MTA, Arizona, Radmir

Как создать лаунчер для SAMP/CRMP, MTA, Arizona, Radmir

Шаг 2: Навигируйтесь к «Услуги» -> «Лаунчеры» -> «Создать новый».

Шаг 3: В появившемся окне выберите «Лаунчер для ПК (Windows)» и нажмите на этот текст. Затем отобразится лицензионное соглашение; пожалуйста, ознакомьтесь с ним. После этого поставьте галочку слева от текста «Я ознакомлен и согласен с условиями пользовательского соглашения» и нажмите «Далее».

Шаг 4: На этом этапе выберите тариф, нажав на кнопку «Не выбрано». Появится список доступных тарифов.

— Лаунчер для MTA San Andreas: Включает официальные клиенты MTA 1.5, 1.6, Custom, Unstable версии.
— Лаунчер для SAMP: Включает официальные версии SAMP 0.3.7 и CRMP 0.3e.

Выберите желаемую игру.

Шаг 5: Выберите опции и сборки игры.

Опции:
— Кастомизация: Позволяет настроить дизайн лаунчера, сделать его уникальным.
— Серверы на других хостингах: Данная опция позволяет использовать лаунчер с любым хостингом.
— Свои сборки игры: Позволяет создать и настроить собственную сборку игры под ваши цели и потребности.

Сборки игры:
Выберите необходимую вам сборку.

Шаг 6: Ниже вы увидите срок действия лицензии лаунчера. Выберите желаемый срок действия. Аренда лаунчера на более длительный срок экономически более выгодная. Если у вас есть промокод для лаунчера, нажмите «Есть промокод?» и введите его.

После этого нажмите «Оплатить», и откроется окно оплаты.

Шаг 7: После оплаты вам будет предложено настроить лаунчер. Нажмите на кнопку «Начать».

Шаг 8: Выберите сборку игры по своему выбору. Если вы выбрали опцию «Свои сборки игры», вы сможете настроить скачивание сборки позже.

Шаг 9: Следующим шагом будет выбор дизайна. На данный момент доступен только один базовый дизайн. Нажмите «Использовать дизайн».

Шаг 10: Все готово, вы заказали лаунчер. Для более тонкой настройки лаунчера, нажмите «Кастомизировать или поменять дизайн».

Создание новостного лаунчера для своей игры?

Как создать лаунчер где можно будет публиковать последние новости о своих игр, где можно будет их скачать и т.д?

  • Вопрос задан более трёх лет назад
  • 865 просмотров

1 комментарий

Простой 1 комментарий

Открываете текстовый редактор и пишете код.

В чём конкретно проблема?

Решения вопроса 0
Ответы на вопрос 1

dima9595

Junior PHP

А в чём проблема то? Напишите программу, подгружайте новости с сайта или бд напрямую. Для скачивания поднимите сервер (если у вас нет) и сделайте ссылку на скачивание.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *