Короче, делаю лаунчер
Знаю, как нынче относятся к вайбкодингу, но если этот инструмент позволяет работяге делать вещи с минимальным знанием кода — это добро, и добро это нужно использовать. Особенно когда делаешь с душой и для себя.
Лаунчеров много, как фекалий за баней. Плюс лаунчер в лаунчере. Пытаешься запустить «Ведьмак 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 полученные ачивки юзер поднимает уровень профиля и получает бейдж, который меняет свой вид от уровня к уровню.
За каждый такой уровень в профиле открывается одна кастомная рамка для пройденных игр. Типа таких:
В модалке профиля негусто, но всё самое необходимое имеется:
Смена профиля
Смена никнейма
Смена аватарки
Информация о последней игровой сессии
Подробная статистика по игровой деятельности задрота на профиль
Импорт и экспорт всей информации профиля в 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
Спасибо, что осилили эту простыню. Я старался не занудствовать🤝
















