No dobrze, ale gdzie "blog developerski"? Opis walki z problemem, przelamanie linii frontu, raport dla spragnionych umyslowej rozrywki? :)
Zacytuje Kube, bo a) warto sie czegos nauczyc, b) sam lubie sluchac takich historii o poprawianiu bugow i wiem, ze inni tez:
No i kilka nocek się przespałem z problemem i znalazłem błąd szukając z drugiej strony, po współrzędnych arachnusa.
Amaurote ma współrzędne "nieparzyste". Współrzędna przeskakuje o 2 przy przejściu z pola na pole, ale co 1 i jest zawsze (ma być) nieparzysta. Po podmianie współrzędnych na parzyste osiągnąłem efekt jak w błędzie.
W kodzie jest moment, gdy te wspórzędne są reperowane - ale tylko przy rescue. Dodałem tzw haka, który reperuje te współrzędne po każdym ruchu. Błąd od teraz może się objawjać jedynie jednoklatkowym przeskokiem arachnusa - od razu naprawionym.
A do rzeczy. Kod jest na tyle skomplikowany i rozdmuchany, że szukać tego można długo. Obstawiam, że z jakichś przyczyn (np. przy przechodzeniu z planszy na planszę, czy jeszcze gdzie indziej) wykonuje się pół ruchu i stop. Próbowałem na wszelkie sposoby i się nie dawało. A Kazowi się udało.
A ja powtórzyłem tylko rozwiązanie stosowane w grze, ale za każdym ruchem:)
I ziściło się jeszcze jedno prawo programisty - jeśli założysz, że zmienna nie może mieć jakiejś wartości i uzależnisz od tego dalszą część kodu, to zmienna ta przyjmie zabronioną wartość wcześniej czy pożniej.
Po to są asserty, których w kodzie Amaurote trochę jest :) Ale tu nie ma.
Odpowiadam zaKaza: Na razie jeszcze gra ma różne rzeczy do poprawienia, np. title screen. Została kosmetyka. "Amaurote+" powinien być w obiegu w ciągu tygodnia - dwóch. Wytrzymaj.
Nadmienię też, że ostatni DUŻY błąd, wprowadzony przez disasemblację i mnie ;), ale trudno znajdywalny, naprawiony - po prostu generowała się nieco inna mapa, niż w oryginale :P . Określenie "nieco" oznacza w tym przypadku różnice niezauważalne dla gracza, o ile nie porówna dwóch pansz ze sobą.
Błąd znaleziony poprzez emulator ze spaczowaną procedurą zapisu do komórki. Jeśli zapis w granicach BF00-Cfff to wyrzuć adres i bajt. W ten sposób namierzyłem drania, porównując oryginalną planszę i tę generowaną przez moją wersję.
Ja tu wyjasnie na wszelki wypadek: nigdy nie udostepniam nikomu zadnych plikow roboczych bez wyraznego przyzwolenia autora. W tej chwili mam wglad do kilkunastu roznych projektow, gdzie dostaje rozne wersje robocze gier. Wlasnie dlatego dostaje te pliki i wglad do prac, ze nigdzie to nie wychodzi bez zgody na publikacje :)
Tak wiec sorry atomic, ale dopoki Kuba nie opublikuje to ja nic nie moge pokazac :).
Niestety, z przyczyn niezależych, sprawa się przesunęła - bo Kaz studiuje :). Kaz obiecał usiąść do grafiki po 3 marca. W związku z tym premiera przesunięta jest na 8 marca :) Mama nadzieję, że Kazowi wystarczy 4 dni.
Twoje pytanie jest dla mnie rozkazem. Nie, no po prostu wziąłeś mnie na litość. Zrobiłeś rysunek, przerobiłeś go, ale tak może umieścić ten oryginał i w ogóle.
No to co myślałeś, ze powiem :nie: ? Miałeś takie duże czarne błagalne oczy....
Amaurote+ jest już ukończone - teraz odbywają się testy oraz press. Uprzedzając uwagi po release, nie jest usunięty bug w algorytmie zasłaniania objawiający się w miastach z wysokimi budowlami.