Inne

Boomer Shooter Launcher

Robiłem ten projekt przez ostatnie miesiące i czas pokazać, co z tego wyszło. Boomer Shooter Launcher (w skrócie BSL) to mój własny menedżer modów dla GZDoom-owej rodziny portów, napisany w C++ z Qt 6. Wygląda jak Microsoft Store, działa jak Steam dla retro FPS-ów, a w środku nie ma żadnej magii — tylko porządnie poukładana logika i pliki INI.

Po co mi to było

Mam folder z modami do GZDooma. Dokładnie taki, jaki ma każdy entuzjasta po dwóch latach grania w Brutal Dooma, Project Brutality, Hideous Destructor i pięćdziesiąt innych totalnych konwersji. Każdy z innym IWAD-em, każdy z inną kolejnością ładowania .pk3, każdy z własnym savedirem żeby zapisy się nie pomieszały. Skrypty .bat walące się przy każdej aktualizacji ścieżek. Brak jakichkolwiek statystyk co i kiedy odpalałem.
Łatwiej napisać własny launcher.
bsl wyglad

Co BSL potrafi już teraz

  • Siatka modów w stylu Microsoft Store — kafelki z ilustracją, tytułem, rozmiarem i małą ikonką silnika w rogu okładki, żebyś od razu widział czy to UZDoom, EDuke32 czy Quake. Kliknięcie otwiera ekran szczegółów z opisem, zrzutami ekranu (z miękkim cross-fade, a teraz też strzałkami pojawiającymi się po najechaniu, żeby przeklikać galerię w obie strony bez czekania na automatyczną rotację), tagami i listą zmian.
  • Trzy silniki w jednym launcherze. To, co w starej wersji było zapowiedzią na „co planuję dalej”, już działa. BSL obsługuje teraz UZDoom, EDuke32 (Duke Nukem 3D) i Ironwail (Quake) — każdy z własnym auto-updaterem, własnym routingiem instalacji modów i własnymi zapisami. Przy pierwszym uruchomieniu launcher pyta, z których silników faktycznie chcesz korzystać — jeśli grasz tylko w Dooma, nie musisz ściągać Quake’a „na wszelki wypadek”. Wybór można zmienić później w Opcje → Narzędzia, gdzie jest też przycisk pobierający brakujący silnik na żądanie.
  • Grupowanie po silniku. W Opcje → Wyświetlanie jest przełącznik, który dzieli siatkę modów na sekcje — EDuke32, UZDoom, Quake — każda z ikoną i nagłówkiem. Wygodne, jeśli masz bibliotekę rozjechaną po trzech różnych grach.
  • Hamburger menu. Dla tych, którzy chcą minimalistyczny pasek górny — całość przycisków (Odśwież, Zainstaluj, Opcje, SOS) chowa się pod jedną ikonką , rozwijaną w pionowe menu. Włączasz w Opcje → Wyświetlanie, teraz nawet domyślnie.
  • Własne tagi. Oprócz tagów, które przychodzą z modem w game_info.ini, możesz teraz dopisywać swoje — „Replayed”, „Ulubiony”, cokolwiek. Przycisk „+ Dodaj tag” na ekranie szczegółów, tagi trzymane osobno od katalogu, więc aktualizacja listy modów ich nie nadpisze.
  • Kompresja LZX. Nowa zakładka w Opcjach pokazuje, ile miejsca zajmuje Twoja biblioteka modów i ile zaoszczędzisz, włączając transparentną kompresję NTFS (LZX). Pliki zostają normalnie czytelne i grywalne — Windows kompresuje/dekompresuje je w locie. Jest checkbox „kompresuj automatycznie nowe mody”, więc nie trzeba o tym pamiętać przy każdej instalacji.
  • Grupowe usuwanie. W Opcje → Narzędzia są teraz trzy przyciski — usuń wszystkie mody UZDoom / EDuke32 / Quake. Przydatne, jeśli chcesz zrobić sobie czystkę albo zwolnić miejsce bez przeklikiwania dziesiątek folderów po jednym.
  • Toasty zamiast okienek. Komunikat o zainstalowanym modzie (miniaturka, tytuł, ikona silnika) wyjeżdża teraz jako dyskretny pasek na dole okna, zamiast wymuszać kliknięcie OK w modalnym okienku. To samo dotyczy podsumowania sesji gry.
  • Uruchamianie — przycisk Start składa pełną komendę dla każdego z trzech silników: -iwad + lista plików w kolejności z game_info.ini dla UZDooma, odpowiednie flagi dla EDuke32 i Ironwaila. Każdy mod ma osobny katalog zapisów, więc save’y się nie mieszają niezależnie od silnika.
  • Liczenie czasu gry: po wyjściu z gry launcher dopisuje sekundy do time.ini. W szczegółach moda widać ile zagrałeś łącznie i kiedy ostatnio. Zakładka Statystyki w Opcjach pokazuje karty czasu gry i liczby uruchomień dla każdego z trzech silników osobno, plus tabelki Top 5 najczęściej granych modów per silnik.
  • Auto-update w czterech warstwach: silniki UZDoom/EDuke32/Ironwail, lista modów (teraz pobierana równolegle po kilka modów na raz, z widoczną tabelką statusu każdego pobrania), sam launcher (sprawdza bsl.json i pokazuje okienko z changelogiem w Twoim języku). Każdą warstwę można wyłączyć osobno, a w trakcie sprawdzania żaden przycisk w interfejsie nie jest klikalny, więc nie da się przypadkiem odpalić czegoś w połowie aktualizacji.
  • Drag and drop — przeciągnij .bsl na okno, launcher rozpakuje go do odpowiedniego folderu silnika. Upuszczenie kilku plików na raz instaluje je po kolei, z informacją ile zostało w kolejce. Działa też dla samych plików danych — upuszczony folder id1 (dane Quake’a) albo pliki Doom2.wad/DUKE.RTS trafiają automatycznie tam, gdzie powinny.
  • Podświetlanie „nowych” modyfikacji. Mody, których jeszcze nie kliknąłeś ani nie odpaliłeś, pulsują na siatce kolorową poświatą (do wyboru kilka kolorów), żebyś nie przegapił czegoś nowego w bibliotece.
  • Pełna polonizacja — wszystkie napisy w plikach INI, można dodać kolejne języki bez kompilacji. Mody mogą mieć osobne opisy po polsku i angielsku (description_pl, description_en). Język interfejsu wykrywa się automatycznie z systemu przy pierwszym uruchomieniu.

Co jeszcze nie działa

To jest wczesna wersja rozwojowa. Jeszcze nie wszystko jest dopięte, baza modów jest na ten moment skromna, a parę rzeczy lata trochę chropowato. Jeśli na coś wpadniesz, dawaj znać.

Co planuję dalej

Jedna konkretna rzecz w pipeline:

  • Więcej modów w domyślnej bibliotece, dla wszystkich trzech silników. Docelowo chcę objąć przynajmniej top kilkadziesiąt najpopularniejszych modyfikacji, z porządnymi opisami i zrzutami — nie tylko dla GZDooma, ale też dla Duke’a i Quake’a.

Uwaga !

BSL nie posiada plików danych oryginalnych gier — w zależności od tego, w co grasz, potrzebujesz:

  • Doom2.wad / Heretic.wad (dla UZDoom)
  • DUKE.RTS / DUKE3D.GRP (dla EDuke32)
  • folderu id1 z danymi Quake’a (dla Ironwaila)

Znajdziecie je bez problemu w sieci. Pliki skopiujecie do

\BSL_data\uzdoom\iwads

albo po prostu przeciągnijcie je na okno launchera — sam rozpozna, co to jest i odłoży na właściwe miejsce. Folder id1 dla Quake’a wgracie tak samo, drag and dropem na okno BSL.
W przeciwnym wypadku — mody nie będą się uruchamiać.

📦
BSL.7z17 MB⬇ 21

Zostaw komentarz