Zaznaczanie planet, Dev Tools i jeden bug, który dało się wykorzystać
Prawdziwy zrzut ekranu z gry, bez retuszu.
Sporo się działo od ostatniego wpisu — jedna nowa zabawka do klikania, ale też cały dzień poświęcony wyłącznie na szukanie i naprawianie błędów, w tym jednego, który dało się realnie wykorzystać na żywym serwerze.
Można teraz kliknąć w planetę
Do tej pory planeta reagowała tylko na jedno: kliknięcie z zaznaczonymi statkami wysyłało je tam na żarcie. Teraz kliknięcie planety bez niczego zaznaczonego samo ją zaznacza — widać to po charakterystycznej ramce z samych rogów (nie pełnym pierścieniu, jak przy statkach) — i otwiera panel z miniaturką 3D, zdrowiem, promieniem, prędkością obrotu i szacunkową wartością.
Przy okazji doszło nowe menu Dev Tools w prawym dolnym rogu: checkbox pokazujący wszystkie źródła światła w scenie jako małe ikonki (styl znany z edytorów gier — Unity, Unreal), plus opcja gaszenia wszystkich świateł naraz, żeby zobaczyć, co świeci samo z siebie, a co jest tylko oświetlane. Na zrzucie widać oba naraz: zaznaczone Słońce z ramką i panelem, i drobne kolorowe markery świateł rozsiane po scenie.
Wielkie sprzątanie
Poprosiliśmy o pełny przegląd projektu pod kątem błędów — i wyszło z tego osiem realnych bugów plus długa lista powielonego kodu. Najciekawszy (i najbardziej niepokojący) znaleziony błąd: kilka kolumn w bazie danych (health, max_health, max_life) nie miało wymogu "nie może być puste". Wystarczyło wstawić ciało z health: null, żeby ominąć całą matematykę obrażeń — planeta stawała się praktycznie nie do zabicia w normalny sposób. Znaleźliśmy to, zamknęliśmy ograniczeniami w bazie i sprawdziliśmy na żywo, że próba tego triku faktycznie się teraz wywala.
Reszta to bardziej przyziemne rzeczy: statek, który zabił planetę tuż przed potwierdzeniem od serwera, mógł jeszcze przez chwilę "gryźć" już nieistniejące ciało; wczytanie zapisu ze starszej wersji gry mogło podmienić statystyki na NaN i uczynić statki niezdolnymi do zabijania czegokolwiek do końca sesji; Escape nie zamykał paneli stacji ani planety, tylko drona. Przy okazji poskładaliśmy do kupy sporo powtarzającego się kodu — piętnaście osobnych reguł CSS odpowiadających za ukrywanie paneli zamieniło się w jedną uniwersalną, dokładnie ten sam typ błędu, który już raz uziemił przycisk zamykania panelu drona.
Co się szykuje
Zupełnie z boku powstał prototyp pokazujący możliwy duży kierunek na przyszłość: mały układ słoneczny z prawdziwymi, eliptycznymi orbitami, grawitacja w stylu Kerbal Space Program (statek jest przyciągany zawsze przez jedno, dominujące ciało — to, w którego strefie wpływu akurat się znajduje) i sterowanie statkiem przez układanie klocków (ciąg silnika, obroty, czekaj, powtórz) zamiast pisania kodu. To na razie eksperyment poza samą grą, ale kierunek jest jasny: programowanie i prawdziwa fizyka orbit. Wygląd interfejsu najpewniej zostanie ten, który już znacie.
Komentarze
Prześlij komentarz