Kiedyś miałem pomysł aby stworzyć całkowicie mobilny launcher minecraft który będzie miał otwarte źródła. Kto tam wie co jest w launcher by zyczu skoro pliki są ściągane bezpośrednio z jego serwerów. Chciałbym aby launcher ściągał pliki bezpośrednio ze źródła, tak jak ten od Mojang.
Próbowałem zrobić własny launcher w C++ gdyż plan jest taki aby ten launcher potrafił też ściągnąć i odpalić własną wersję javy co dałoby całkowitą przenośność i brak konieczności posiadania uprawnień admina na komputerze.
Co prawda launcher działał ale praca nad nim to była prawdziwa katorga, spędziłem nad tym zdaje się 2 lub 3 miesiące, nawet kupiłem sławną "Symfonię C++" w dwóch tomach co by szybciej iść do przodu ale niestety mimo użycia frameworka Qt oraz wspomnianej książki wszystko szło w ślimaczym tempie, pomijając liczbę wyrywanych włosów z głowy.
W pewnym momencie zleciłem już nawet innej osobie stworzenie tego launchera też w Qt ale po deadline 1msc ani nie uświadczyłem gotowego launchera ze specyfikacji ani zwrotu mojej kasy. Koleś w momencie gdy przyjmował moje zlecenie akurat zawiesił swoją działalność :slight_smile:
Pomyślałem że potrzebuje szybszych alternatyw i znalazłem rozwiązanie dzięki któremu da się aplikację node.js odpalić w przeglądarce która prezentuje się jako aplikacja desktopowa na różne platformy. http://nwjs.io/ Z JS już korzystałem trochę czasu więc to nie był dla mnie problem, dodatkowo doszłaby łatwa customizacja.
Używając NW.js poszło już sprawnie, 2-3 dni i udało mi się przepisać to co miałem w C++ i już działało mimo że sposób realizacji funkcji był zupełnie inny (callbacki itp).
Cechy launchera:
- kompatybilny ze ściąganiem i weryfikacją plików tak jak robi to oryginalny launcher
- działają wszystkie wersje gry, łącznie z betą
- nie wymaga aktualizacji aby działała nowa wersja MC
- awaryjny tryb offline
- brak reklam
- multiplatformowy
- szybki
- nie wymaga instalacji
- możliwość wgrania na pendrive, wszystkie pliki gry są w jednym katalogu
- łatwy do przeróbki i dostosowania dla np. swojego serwera
- wymaga tylko znajomości HTML, CSS, JS dla modyfikacji
Chciałbym też serdecznie podziękować @Libter za wniesione funkcje i poprawki
Kod źródłowy: https://github.com/lvlup-pro/starter
Licencja: MIT