Свой лаунчер на основе батника
Лаунчер — программа для загрузки и запуска игры;
ОС — операционная система;
JRE — Java Runtime Environment, программное обеспечение для запуска Java приложений;
Ассеты — игровые ресурсы;
Нативы — библиотеки для выполнения Java приложения на определенной платформе (семейство ОС);
Гб — гигабайт (1024 мегабайта);
Мб — мегабайт (1024 килобайта);
ОЗУ — Оперативно Запоминающее Устройство, если проще, оперативная память;
JVM — Виртуальная Машина Java, среда выполнения Java приложения;
Токен — ключ доступа, используемый для авторизации на серверах игры(доступ к скинам и Realms)
Для удобства будем использовать переменные. Для создания переменной используем запись типа set имя=значение . Создадим переменные с папками игры:
Теперь построим базовую строку запуска:
javaw аргументы[I]jvm главный[/I]класс программные_аргументы
Первое слово указывает запускаемое приложение из системных переменных(устанавливаются с установкой JRE), потом идут все JVM аргументы, указывается главный класс и в конце программные аргументы.
Куча — это та область оперативной памяти компьютера, которая может быть использована Java приложением. Её размер задается двумя аргументами. Один задает её начальный размер, а второй, максимальный. Также, важно отметить, что лучше делать её фиксированной, ибо когда приложению не хватает начального объема, оно увеличивает его на какое-то значение, вплоть до максимально, что часто вызывает подлагивание. Начальный размер определяется аргументом -Xms4G а максимальный -Xmx4G . Буква G обозначает гигабайты, M — мегабайты. Ещё можно также этот объём памяти зарезервировать в самой ОС с помощью аргумета -XX:+AlwaysPreTouch Получается мы делаем фиксированную кучу равной 4Гб ОЗУ и сразу же резервируем данный объём на уровне ОС. Теперь наша строка выглядит так:
javaw -Xms4G -Xmx4G -XX:+AlwaysPreTouch
Также, для версий Minecraft 1.14+ и версий Java 11+ есть смысл попробовать новые сборщики мусора. Они работают совсем по другим принцыпам нежели ConcMark или G1 и могут обеспечить более эффективную очистку мусора с меньшим влиянием на FPS/TPS. Первый это -XX:+UseShenandoahGC , который по моим наблюдениям является достаточно эффективнее G1. Второй это -XX:+UseZGC , который является экспериментальным и его рекомендуется использовать с самыми новыми версиями Java. Он пока не показал себя намного эффективнее G1, но он скорее как "задел на будущее". Сами аргументы для активации этих сборщиков считаются экспериментальными, а значит без -XX:+UnlockExperimentalVMOptions не обойтись. Незабудьте, эти сборщики совсем другие нежели ConcMark или G1, так что при их ипользовании очистите остальные аргументы, которые могут касатся сборщиков мусора. Также, в последних версиях Oracle Java они могут быть вырезаны/деактивированы, поэтому можете попробовать Adopt Open JDK.
Есть некоторые дополнительные аргументы, такие как указание названия лаунчера и его версии, указание версии и имени подсистемы DOS для управления файловой системой(иногда убирает проблему записи файлов сохранений):
-XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe.heapdump — позволяет корректно записывать файлы дампов памяти при краше игры и адекватно переключатся игре на дискретную графику;
-Dos.name="Windows 10" — указание имени подсистемы DOS;
-Dos.version=10.0 — указание версии подсистемы DOS;
-Dminecraft.launcher.brand=my-best-launcher — название лаунчера;
-Dminecraft.launcher.version=2.0 — версия лаунчера;
-XX:+AggressiveOpts — использовать экспериментальные функции оптимизации.
Пример строки для Windows 10:
Теперь нужно указать пути к файлу конфигурации логирования (как не странно, не используется в пиратских лаунчерах), нативам и библиотекам игры. Тут мы и будем использовать установленные ранее переменные записью %имя_переменной% .
Файл конфигурации устанавливается аргументом -Dlog4j.configurationFile="%ast%\log_configs\client-1.12.xml", но если у вас нету этого файла, просто не используйте этот аргумент. Он настраивает логирование и архивацию устаревших логов.
Путь к нативам указывается через -Djava.library.path="%nat%". Но эти нативы нужно достать. Обычно, они хранятся в библиотеках игры и распаковываются во временную папку перед каждым запуском. Сами нативы это dll библиотеки от игрового движка LWJGL и нарратора(в новых версиях). Просто распакуйте их в папку C:\Users\пользователь\AppData\Roaming\.minecraft\natives а jar-ники с ними обычно находятся по путям libraries\com\mojang\text2speech\ и libraries\org\lwjgl . Вот нативы для версии игры 1.14.4:
А вот составление аргумента игровых библиотек займет наибольшее количество времени. Аргумент имеет вид -Cр "всепутибиблиотек". В скобках нужно указать через двоеточие пути ко всем jar-никам игры (их достаточно много). К примеру так: -Cp "%lib%\com\google\code\gson\gson\2.8.0\gson-2.8.0.jar;%lib%\com\google\guava\guava\21.0\guava-21.0.jar;. "
Вот полный вид аргумента для всех библиотек:
(может отличатся в зависимости от типа установки игры).
Главный класс, это как кнопка зажигания в машине, сам небольшой, но запускает все. Для чистой версии это net.minecraft.client.main.Main а для модифицированной (с OptiFine или Forge) это net.minecraft.launchwrapper.Launch .
Можете сохранить батник, и при его запуске вы увидите саму команду запуска и через пару секунд ваша игра запустится.
Можно сделать наш лаунчер более интерактивным и привлекательным.
Строка title Launcher установит имя окна с командами, запись @echo off отключит вывод команды (не её результат). Также, командой echo . вы можете выводить свои сообщения, а с помощью cls очищать их. Хотите оформление? Используйте color 0a чтобы задать цвет фона первой цифрой и цвет символов второй буквой. Для установки переменной вводом используйте запись типа set /p usr=^> (вот справка по кодам, тык)!
Также, можно сделать авто скрытие лаунчера после ввода нужных данных. Для этого нужна утилита CMDOW, которая позволяет управлять самим окном консоли. Узнать более подробно о её функционале и скачать её можно здесь. В скачанном архиве по пути bin\release понадобится сама утилита (да, вся утилита это один файл). Файл для удобства можно переместить в папку игры в папку bin к примеру. Для скрытия окна консоли используйте команду cmdow.exe @ /HID предварительно указав путь в переменных. Скрытие делайте до строки запуска, ибо в батнике одна строка выполняется только после конца работы той, что перед ней. А также рекомендуется, после выполнения строки запуска и выхода из игры (завершения работы строки запуска) завершить процесс cmd командой exit .
Важно! Для корректного отображения кириллицы установите кодировку батника на OEM-866!
Делаем свой запускатор Minecraft без лаунчера
Скажу сразу: «Все манипуляции производятся с версией Minecraft 1.5.2, т.к в других версиях — другая система сборки и запуска».
Для начала, скачаем утилиту — «cmdow», она нужна для управления окнами.
Кидаем ее в папку нашего «запускатора», затем создаем исходный файл самого нашего «запускатора». Назовем его — «Minecraft.bat».
Далее нам нужны *jar файлы нашего Minecraft, а конкретно: «jinput.jar, lwjgl.jar, lwjgl_util.jar, minecraft.jar», также не забываем перекинуть папку «natives» в папку нашего лаунчера.
Теперь, самое интересное. Открываем наш «Minecraft.bat», и начинаем писать код. Туда мы вставляем следующее:
Теперь, если вы все сделали правильно, то при запуске нашего «Minecraft.bat», у нас запуститься Minecraft.
Прокачаем наш «запускатор» и сделаем не большой лаунчер!
Вставляем туда следующий код:
Мы написали почти что настоящий лаунчер для игры Minecraft. Гарантированная работоспособность на Win7 x64.
Как сделать свой лаунчер для Minecraft и запустить на своем сервере игру?
Админы, владеющие собственными серверами Minecraft, часто сталкиваются с проблемой сборки стабильного лаунчера, который позволит быстро и беспрепятственно скачивать обновления, моды, скины. В рамках данной статьи мы расскажем, как сделать свой лаунчер игры Майкрафт.
Что понадобится для создания лаунчера?

NetBeans – самый оптимальный помощник в создании лаунчера.
Как известно, лаунчер представляет собой программный интерфейс, облегчающий подключение геймеров к серверу игры. Эти приложения автоматически скачивают необходимые файлы и софт.
- личный домен, сайт;
- исходники собственного портала;
- клиент программы NetBeans;
- файловый менеджер (не обязательно).

Кроме того, лаунчер должен иметь систему авторизации. Инструкцию о том, как ее добавить, найдете ниже.
Подготовка исходников
- Скачать NetBeans.
- Открываем новую программу, создаем новый проект.
- В новом окне нажать на интерфейс «Java», затем выбрать «Приложение Java».
- Поле «Имя проекта» должно быть заполнено по усмотрению пользователя.
- После ввода названия убрать галочку с пункта «Создание главного класса».
- Кликаем «Готово».
- Перейдите в «Свойства» только что созданного проекта.
- Формат исходного файла следует поменять на «JDK6».
- Рядом установить кодировку «Win1251».
Создание лаунчера для сервера
- В директории «Документы/NetBeans project/«Ваш проект» необходимо разместить все файлы исходника (SRC).
- В корне папки NetBeans (проект) находится каталог «Launcher run», уровнем ниже – файлик «Settings.java», который необходимо открыть редактором кода.
- В правой области окна появится участок с кодом страницы. Придайте лаунчеру и домену собственные наименования.
- В коде с настройками сервера установите корректный ID, порты и версию клиента игры.
- Ссылки «Регистрация» и «Авторизация» можно изменить.
Видео: Как сделать свой лаунчер.
При желании устанавливать моды на сервер рекомендуется проделать следующие манипуляции:
- В редакторе кода NetBeans найти строку «Public static bolean useModCheck».
- Изменить значение параметра на «True».
- Отыскать строку с параметром «Public static bolean useModsDelete».
- Присвоить значение «False».
Как добавить возможность авторизации?
- Найти строку «Public static bolean useAutoenter».
- Дописать значение данного параметра – «True».
Это позволит игрокам автоматически заходить на сервер без ввода логина и пароля.
Дальнейшие манипуляции с кодом можно производить по собственному усмотрению. При этом важно знать значения всех строк, поскольку нежелательные изменения могут привести к отказу лаунчера.
Как создать свой лаунчер?
Приветствую всех, кто читает эту тему.
Решил я сделать лаунчер для сервера крмп, но вот задался себе вопросом, как этот лаунчер сделать.
Мне интересно больше всего, как сделать так, чтобы через лаунчер мог зайти совершенно любой, введя свой ник в поле нажав кнопку "начать игру".
Понимаю, что для этого нужен лаунчер. Нужно знать как сделать, чтобы когда человек скачал и установил лаунчер, то перед заходом в игру ему пришлось сначала дождаться пока лаунчер скачает игру и всё что нужно, а потом уже зайдёт. Для этого если не ошибаюсь, то нужен Web-хостинг.
Прошу знающих и умеющих людей отписать мне в сообщения профиля или в ВКонтакте vk.com/vova_zenko
Cocolemunto
Чёрный список
- 26.07.2021
- #2
У нас на портале можно найти лаунчер скриптмэна , а если хотите сами сделать , то воспользуйтесь языком C++ или программой visual studio
Vova_Zenko
Новичок
- 26.07.2021
- #3
Вы наверное не поняли, меня не интересует написание самого лаунчера, меня больше интересует какой хостинг нужен, чтобы оттуда лаунчер качал игру и как вообще сделать всё на хостинге для лаунчера
Cocolemunto
Чёрный список
- 26.07.2021
- #4
Думаю любой подойдет ? , главное проверенный и без вирусов
Vova_Zenko
Новичок
- 26.07.2021
- #5
Вот я и ищу человека знающего, который поможет мне в этом поэтапно.
Cocolemunto
Чёрный список
- 26.07.2021
- #6
А что тебе нужно , объясни , я возможно смогу помочь тебе
Uncroge_Kremlin
Новичок
- 05.08.2021
- #7
Писать на языке c++, смутная идея, даже не смотря, что это один из самых популярных языков.
Но в этом случае написание на c# будет куда более уместным и в принципе это упростит код.
SweetyDeveloper
Освоившийся
- 19.08.2021
- #8
Писать на языке c++, смутная идея, даже не смотря, что это один из самых популярных языков.
Но в этом случае написание на c# будет куда более уместным и в принципе это упростит код.
Ахахаха, боже. Офигеть кодеры собрались. В каком месте Visual Studio поможет в создании лаунчера?)
Раз уж такое дело, и упомянут С++, то QT в помощь, но это всего-лишь IDE.
Что касательно этого "высера", лаунчер на C++ будет стоить дороже, ибо язык сложен. Ламерам шарпы вкатывают, потому что в нем можно формочки потаскать и без знаний кодинга сваять фиготу за пол часа.
Каждый язык индивидуален, и, собственно каждый имеет свои плюсы и минусы.
По теме: Большинство лаунчеров — это программы, которые работают с удалёнными VDS/VPS серверами, на которых базируются файлы игры (или что там), для оптимизации загрузки и "чтобы лаунчер на старте не упал" используют CDN (погуглите). Если мне не изменяет память, VDS стоят в районе тыщи (зависит от тарифа, но для тестов будет достаточно.)
А вообще эту тему всецело описывает данная пикча:

Cocolemunto
Чёрный список
- 21.08.2021
- #9
Ахахаха, боже. Офигеть кодеры собрались. В каком месте Visual Studio поможет в создании лаунчера?)
Раз уж такое дело, и упомянут С++, то QT в помощь, но это всего-лишь IDE.
Что касательно этого "высера", лаунчер на C++ будет стоить дороже, ибо язык сложен. Ламерам шарпы вкатывают, потому что в нем можно формочки потаскать и без знаний кодинга сваять фиготу за пол часа.
Каждый язык индивидуален, и, собственно каждый имеет свои плюсы и минусы.
По теме: Большинство лаунчеров — это программы, которые работают с удалёнными VDS/VPS серверами, на которых базируются файлы игры (или что там), для оптимизации загрузки и "чтобы лаунчер на старте не упал" используют CDN (погуглите). Если мне не изменяет память, VDS стоят в районе тыщи (зависит от тарифа, но для тестов будет достаточно.)
А вообще эту тему всецело описывает данная пикча:
*жмяк* ( не реклама)
Без негатива пожалуйста
Uncroge_Kremlin
Новичок
- 21.08.2021
- #10
Ахахаха, боже. Офигеть кодеры собрались. В каком месте Visual Studio поможет в создании лаунчера?)
Раз уж такое дело, и упомянут С++, то QT в помощь, но это всего-лишь IDE.
Что касательно этого "высера", лаунчер на C++ будет стоить дороже, ибо язык сложен. Ламерам шарпы вкатывают, потому что в нем можно формочки потаскать и без знаний кодинга сваять фиготу за пол часа.
Каждый язык индивидуален, и, собственно каждый имеет свои плюсы и минусы.
По теме: Большинство лаунчеров — это программы, которые работают с удалёнными VDS/VPS серверами, на которых базируются файлы игры (или что там), для оптимизации загрузки и "чтобы лаунчер на старте не упал" используют CDN (погуглите). Если мне не изменяет память, VDS стоят в районе тыщи (зависит от тарифа, но для тестов будет достаточно.)
А вообще эту тему всецело описывает данная пикча:
Во-первых, привет)
Во-вторых, я вроде не принуждал кого-то писать свой лаунчер на c#, а всего лишь выразил свое мнение, но разве лишь в деньгах дело? Каждый выбирает удобный для себя язык по его функциям, а не из-за цены работы созданной на его языке.
В-третьих, Visual Studio полностью подходит для этого, множество пакетов для скачивания и моментального запуска)
Cocolemunto
Чёрный список
- 24.08.2021
- #11
Ахахаха, боже. Офигеть кодеры собрались. В каком месте Visual Studio поможет в создании лаунчера?)
Раз уж такое дело, и упомянут С++, то QT в помощь, но это всего-лишь IDE.
Что касательно этого "высера", лаунчер на C++ будет стоить дороже, ибо язык сложен. Ламерам шарпы вкатывают, потому что в нем можно формочки потаскать и без знаний кодинга сваять фиготу за пол часа.
Каждый язык индивидуален, и, собственно каждый имеет свои плюсы и минусы.
По теме: Большинство лаунчеров — это программы, которые работают с удалёнными VDS/VPS серверами, на которых базируются файлы игры (или что там), для оптимизации загрузки и "чтобы лаунчер на старте не упал" используют CDN (погуглите). Если мне не изменяет память, VDS стоят в районе тыщи (зависит от тарифа, но для тестов будет достаточно.)
А вообще эту тему всецело описывает данная пикча:
Может быть еще будем лаунчеры на devel studio тогда писать?
Vlad_Trifonov
- 24.08.2021
- #12
.NET в данной ситуации действительно подходит, т.к. SAMP/CRMP только под виндой и работает, следовательно, над кросплатформенностью можно не думать.
И, да, следует различать стандартный C++ и C++ для Qt. Они достаточно сильно различаются, поэтому чтобы кодить на втором, необязательно в совершенстве знать первое.
А вообще, если никакого из перечисленных ЯП/технологий не знаешь, лучше просто заказать работу на фриланс площадках, и не забивать голову. С нуля это дело изучать займет не меньше пары недель-месяцев-лет-жизней (в случае C++) точно.
Vestorn
Новичок
- 26.08.2021
- #13
Если ты хочешь написать лаунчер, то для начала тебе нужно выучить сам язык. C# — это класс, но класс, когда он в нужных руках. В руках "школопрограммистов" — это декомпильный кусок д*рьма и не более. Лучше заказать, чем браться за это самому без каких-либо знаний. Это относительно тому, чтобы начинать писать мод с 0 не зная базы C++ и его синтаксиса.
P.S Эдуард Весторнович. Junior Qt(C++) Developer
Vestorn
Новичок
- 27.08.2021
- #14
Приветствую всех, кто читает эту тему.
Решил я сделать лаунчер для сервера крмп, но вот задался себе вопросом, как этот лаунчер сделать.
Мне интересно больше всего, как сделать так, чтобы через лаунчер мог зайти совершенно любой, введя свой ник в поле нажав кнопку "начать игру".
Понимаю, что для этого нужен лаунчер. Нужно знать как сделать, чтобы когда человек скачал и установил лаунчер, то перед заходом в игру ему пришлось сначала дождаться пока лаунчер скачает игру и всё что нужно, а потом уже зайдёт. Для этого если не ошибаюсь, то нужен Web-хостинг.
Прошу знающих и умеющих людей отписать мне в сообщения профиля или в ВКонтакте vk.com/vova_zenko
Для этого нужен сервер. Под сервером я подразумеваю облачное хранилище с открытым API. Либо же твой личный сайт, VDS. На ней ты пишешь серверную часть для откликов на запросы с клиентской части. Серверную часть желательно писать на JS либо PHP, но бывают люди, которые пишут и на Пайтоне и на ++ серверную часть. И тут нет ничего плохого, в написании программ с серверной частью нам не на столько важен ЯП на котором Вы пишите, как его работоспособность и функциональность. Например, я не поддаюсь изучению других языков, мне сложно изучать и привыкать к синтаксису JS, поэтому я пишу серверную часть на PHP и JSON.
Лаунчер — это дичь, самая простая программа. Но, как бы тебе помягче объяснить. Без знаний, которые были выше расписаны, тебе не стоит лезть в программирование. Программирование не создано для всех, как это пишут в рекламах. Программирование основано на логике, и логично подумать, что создано для людей с логикой, не с высшей математикой и физикой, как нам вдупляют в университетах, а именно с логикой. Хочешь программировать — умей стоять на своей мысли и умей ее реализовать без справочников, книг, форумов. Но перед этим обязательно выучи хотя бы базу, а только потом переходи к написанию. А иначе весь твой труд будет равносилен фразе "пукнуть в муку". Благодарю за внимание. Надеюсь, ты вынесешь какую-то пользу для себя из моих слов