Короче, делаю лаунчер

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

Лаунчеров много, как фекалий за баней. Плюс лаунчер в лаунчере. Пытаешься запустить «Ведьмак 3» из Стима — получаешь в морду ещё один лаунчер.

- Осталось только прихуярить лаунчер внутри лаунчера

- Осталось только прихуярить лаунчер внутри лаунчера

Но мне всегда чего-то не хватало в уже готовых решениях. Стим — это храм, куда мы ходим причаститься и внести десятину. Тут без вариантов. Эпик — ну, пусть будет. ВК Пл… прости, господи…

Однако меня интересовали не только функции запуска и каталогизации библиотеки, а сбор в одном месте игр разных платформ и десятилетий. А множество хороших игр былых лет уже днём с огнём не сыщешь. Торренты кормят.

Вот я и решил однажды пораскинуть мозгами и вспомнить всё, во что играл и что проходил. Для этого дела подбил excel-табличку, раскидал игры по годам релизов на ПК и начал вспоминать. Не уверен, что вспомнил всё, но список на тот момент уже получился внушительный.

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

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

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

Месяц назад меня отпустило, и снова потянуло на создание. Решил попробовать ещё раз, но ко второй попытке подготовился основательно. И морально, конечно же. Зная, что на одном вайбкоде далеко не уедешь, в свободное время тренил простые коды.

Выглядело всё еще как вырвиглазное говённое порождение студии Артемия Лебедева. Но оно работало и мне нравилось. И в процессе я всё больше начинал понимать, что хочу видеть в финальном билде.

Выглядело всё еще как вырвиглазное говённое порождение студии Артемия Лебедева. Но оно работало и мне нравилось. И в процессе я всё больше начинал понимать, что хочу видеть в финальном билде.

Собравшись с духом я снова взялся трогать за уже знакомое — HTML и JS. Думал, это будет просто моя локальная страничка для каталогизации игр, но уже более вменяемый её вариант.

А это уже максимально близко к последнему билду.

А это уже максимально близко к последнему билду.

Отчасти спасение пришло с подключением платного Harvi Code. Этот ИИ-ассистент выручал меня особенно в те моменты, когда я тупо смотрел в код, разворачивался и шёл на балкон плакать и курить в три часа ночи.

Но чтобы экономить платные токены, часто приходилось напрягать свои нищие извилины и разбираться с кодом вручную. И это было болью 😑, потому что энтузиазма у меня полные штаны, а опыта работы с кодом — чуть больше чем нуль. Так, баловался немного в те времена, когда иметь персональные страницы ещё было модно.

И вот спустя мучительный период пердолинга, парсинга тысячи страниц игровых каталогов, точечного отстрела самых очевидных багов и случайных откатов — у меня на руках оказался полноценный рабочий билд. Моя локальная html-страничка превратилась в это. В ONEMOREGAME.

Что такое OMG и что он может?

Это десктопное приложение для Windows на Electron. Интерфейс на HTML, CSS и JS. Работает в отдельном окне через браузерный движок Chromium.

По сути, это не совсем лаунчер. Это органайзер-каталог для геймера, который любит раскладывать всё по полочкам. Но с функцией запуска игр и трекингом — куда без этого.

Как взаимодействовать с данной прогой?

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

Без всякой привязки к серверам, без облака, «войти через Максимку» и паролей. Создал — и го.

Без всякой привязки к серверам, без облака, «войти через Максимку» и паролей. Создал — и го.

Далее нас встречает пока что пустующая будущая коллекция. Рукастый логотип OMG любезно подсказывает, куда смотреть, чтобы начать геймерствовать.

База карточек игр уже предустановлена — примерно 1500 позиций. Разбег большой: от девяностых-нулевых до наших дней. В основном известные тайтлы. Индюшатины мало.

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

Добавили игры. Что делать дальше?

Ну, настраивать коллекцию, конечно же.

Ну, настраивать коллекцию, конечно же.

В выпадающем меню карточки можно подвязать exe-файл с вашего ПК или привязать игру по Steam ID. Запустить можно будет из этого же меню (после привязки появится строка запуска) или даблкликом по самой карточке.

После запуска лаунчер скроется в трей и будет оттуда подглядывать за вашим процессом. Начнётся отсчёт игрового времени.

Однако, как видно на скрине, юзер может накрутить время и вручную. Зачем? Чтобы было.

Лично мне лень в очередной раз проходить Скайрим на 1000+ часов в Стиме плюс хз сколько ещё на пиратке. Проще указать вручную — хотя бы приблизительно.

Можно заметить, что к карточке можно чиркануть заметку. Это да. Более того, эта заметка вгрызётся в код вашего профиля и сохранится — даже если вы удалите игру из коллекции. В базе она останется ровно до того момента, пока юзер не удалит её вручную.

Фича простая, но полезная. Не мог обойти её стороной.

Фича, которую могут оценить любители свободной инфы.

Фича, которую могут оценить любители свободной инфы.

К карточкам можно привязать файл формата .torrent, и он будет храниться там как в контейнере. Так же сохранится привязанным даже после удаления карточки из коллекции — ровно до момента ручной отвязки.

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

Удобно, когда у тебя есть пара надёжных проверенных источников. Не придется искать снова.

Помимо классического вида игр — карточками, есть компактный вид.

Помимо классического вида игр — карточками, есть компактный вид.

Компактный вид вмещает на экране большее количество игр (3 вертикальных колонки) с меньшей нагрузкой по рендеру, плюс слева имеется списочек. Из него так же можно запускать игры и делать всё то же самое.

Из чего состоят карточки игр вида сетки:

  • В левом верхнем углу — год первого релиза. При клике на него активируется фильтр по этому году.

  • Если у карточки есть привязка к установленной игре, в правом верхнем углу появляется соответствующая плашка: exe или Steam.

  • При наведении на карточку всплывает информация о последнем запуске и времени, проведённом в игре.

  • При наведении курсора на название — всплывает подробное описание игры.

  • Сами карточки имеют минималистичный стиль с лёгким бликом и анимацией нажатия (push-эффект).

Ладно, с играми всё понятно. А что по ачивкам?

Их есть у меня. Аж 40 штук для затравки.

Так как это не Стим и не Гидра, ачивки не связаны с внутренней активностью в играх. Тут всё завязано на взаимодействии юзера с программой.

Примеры самых простых:

— «Разок забегу» — 1 час реального игрового времени.
— «Шпион среди нас» — первый запуск по Steam ID.

Но есть и другие, более уникальные и интересные ачивки — связанные со временем запуска, датами и так далее.

Одни из первых ачивок на новом профиле.

Одни из первых ачивок на новом профиле.

Ок. А зачем они нужны?

Для фана, само собой, но и для получения наград — элементов персонализации.

На одном из скринов выше можно увидеть, что в контекстном меню игры можно присвоить статус «Пройдено». Да, это делается юзером вручную. Карточка при этом приобретает небольшую светящуюся обводку.

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

За каждый такой уровень в профиле открывается одна кастомная рамка для пройденных игр. Типа таких:

Пока их мало, на 10 лвлов - 10 штук.

Пока их мало, на 10 лвлов - 10 штук.

В модалке профиля негусто, но всё самое необходимое имеется:

  • Смена профиля

  • Смена никнейма

  • Смена аватарки

  • Информация о последней игровой сессии

  • Подробная статистика по игровой деятельности задрота на профиль

  • Импорт и экспорт всей информации профиля в JSON

  • Смена фона приложения, смена фона шапки окна настроек + других мелких модальных окон

И напоследок, бонусом: здесь имеется возможность почитать RSS-новости с игровых новостников.

И фича лично для меня, но, возможно, понравится кому-то ещё. Встроенный плеер с папкой для залива mp3. Я сам его юзаю в основном для прослушивания аудиокниг пока фармлю профу в World of Warcraft или залипаю в Hearthstone.

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

Пока плеер разблокирован, его можно:

  • скрыть — скроллом колеса вниз,

  • вызвать — скроллом колеса вверх.

После этого его можно снова заблокировать кнопкой-нотой, и он будет работать в фоне и не мешать. Оверлей Windows, кстати, успешно его подхватывает.

Или на чилле включаю сочные саундтреки из игр для балдежу.

Или на чилле включаю сочные саундтреки из игр для балдежу.

Подводя итоги, что мы имеем:

🎮 Предустановленная коллекция игр
1500 строк из коробки. Можно расширять, добавлять свои карточки и привязывать к ним exe-файл или Steam ID.

💽 Карточки игр
Просто, но со вкусом: стимлайк-блики, лёгкий ховер, анимации, контекстное меню, статусы.

👁️ Фильтры
По последнему запуску, жанрам, дате релиза, статусу «пройдено», «установлено» и так далее.

😴 Скрытый статус «Заброшенно»
Если с момента последнего запуска или установки прошло 3+ дня — карточка становится блеклой и унылой. До первого запуска.

🕒 Трекинг времени
Следит за процессами exe и Steam-игр. Время уходит в статистику. Можно посмотреть отдельно по каждой игре. В общем баре — тотал по профилю и отдельно «реал» (без учёта накрученного).

📝 Заметки
Просто надо.

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

🏆 40 ачивок и 10 рангов профиля
Ачивки не завязаны на активность в играх. Но я старался сделать их интересными.

Ещё примеры: «Совёнок» — запустил лаунчер в 3 часа ночи. «Пропал» — 10 часов реального игрового времени.

Ачивки красивые: минималистичные png-плашки с описанием, условиями получения, датой и временем. Они неочевидные — многие с наскока не возьмёшь.

🎨 Награды — рамки для пройденных игр
Юзер отмечает игры со статусом «Пройдено» и украшает их кастомными рамками. Каждая рамка открывается за 4 ачивки — от самой скромной до самой навороченной. Персонализация минимальная, но душевная.

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

🎵 Музыкальный плеер
Тут все понятно.

📰 Новости
Вкладка с RSS-лентами трёх игровых новостников. Полистать — бонусом.

👤 Бэкап профиля
В настройках можно сохранить весь профиль в один json-файл. Там всё: от ачивок до насчитанных часов.

📁 Торрент-файлы к карточкам
Приятная мелочь: можно прикрепить к карточке .torrent. Даже если удалишь файл с ПК — он останется привязанным к игре и откроется во внешнем клиенте. Будет работать, пока ты сам его не отвяжешь или не сдохнет раздача.

Короче

OMG — это не стартап на миллионы и не очередной «ультимативный лаунчер». Это просто один задрот, который по ночам пердолился с кодом, парсил тысячи карточек руками и в итоге сделал то, что хотел сам. Антикризисный лаунчер в условиях современной России.

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

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

Пока провёл только базовые тесты — и остался доволен.

Желающим попробовать оставляю ссылку на exe на Яндекс.Диске и в моём Telegram-канале, который я специально завёл под это дело, чтобы дропать обновы.

Яндекс Диск: https://disk.yandex.ru/d/KPbMhzT5cEua9g

Telegram: https://t.me/omglauncher

Спасибо, что осилили эту простыню. Я старался не занудствовать🤝

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества