Gra skończona! Prawie…

Ha, udało się. No.. Ale jak to, ktoś zapyta? Przecież dopiero co zaczął się konkurs, a Ty co, już projekt skończony?!

Udało się skończyć pierwszą pełną wersję gry. To przyniosło ukojenie. Większe uspokojenie. Nawet jeśli miałbym oddać grę już dzisiaj to nie pokazałbym się z niczym. Działają wszystkie główne mechaniki. Gra jest całkiem dopracowana również od strony wizualnej. Oczywiście jest jeszcze parę poprawek, które należałoby zrobić. Jak choćby zoptymalizować ją, gdyż ładowanie nieco trwa ;d. Ale osiągnięcie punktu, w którym możemy już rozwijać grę, wzbogacać o nowe pomysły, a nie walczyć za wszelką cenę aby dobrze działała jej podstawa już mamy osiągnięte. I w tym momencie emocje i zdenerwowanie opadło.

Przyszedł również większy luz, jeśli chodzi o używanie silnika gry. Pierwsze przetarcie szlaków, wypracowanie sobie workflowu z pracy z Defoldem nieco zajęło. I było też niestety istotnym narzutem przy pracach, który powinienem przewidywać. Bo każda rzecz, która wydawała się nawet łatwa łatwą wcale nie była, zwłaszcza gry robiłem coś pierwszy raz. Google było grane non stop. Ale opłaciło się. I z czasem narzędzie do którego nie byłem specjalnie przekonany przekonało do siebie bardziej. Tak, że na game jamie nawet nie bałbym się użyć Defolda do tworzenia gry.

Ale to chyba naturalna kolej rzeczy. Każda rzecz którą robimy „pierwszy” raz nigdy nie będzie się udawać. Zawsze będą przy niej większe problemy. Bo musimy pojąć pewne koncepcje, przetrzeć pewne szlaki i zrozumieć procesy. To wymaga czasu i wytrwałości, nie poddawania się. Ale wytrwałość i pracowitość popłaca.

Najciekawszym problemem, z którymi musiałem się ostatnio zmierzyć był algorytm przesuwania kawałków drogi. A raczej jego niedoskonałość. Ciągle pojawiały się dziury między kawałkami drogi i nie wiedziałem z jakiego powodu. Z przykładowej implementacji innej gry w tym gatunku wydawałoby się, że rozwiązanie jest ok.

Oczywiście tym co mi pomogło rozwiązać problem było dokładniejsze przyjrzenie się problemowi. W tym celu użyłem ZeroBrane i podpiąłem się pod proces gry debuggerem.

Wysokość ekranu (zmienna screen_height ) w naszym przypadku wynosi 1920 . Czyli sprawdzamy czy kawałek drogi wyjechał poza ekran. Okazało się że zmienna pos.y  wynosi czasem -1923  i z tego powodu pojawiały się czarne dziury między kawałkami drogi. Po tej zmianie (commit: fixed holes between street parts) problem został rozwiązany.

Dodaj komentarz