30 października 2012

Teren znika, bloki znikają...

- Taki stan gry zastałem gdzieś we wrześniu, po aktualizacji. Szczerze mówiąc przestraszyłem się trochę, bo myślałem, że utracę swoje zapisy. Na szczęście ponowne uruchomienie aplikacji pomogło. Mimo wszystko zainteresowałem się tym, dlaczego tak się dzieje, więc napisałem do autora gry. W odpowiedzi otrzymałem następujący list:

Co do opisanej sytuacji – to jest stan gry, w którym nie jest załadowanyżaden teren. Bloki są ukryte, żeby ta sytuacja była bardziej czytelna. Możepowinienem dodać komunikat z wyjaśnieniem? Jest to jedno z zabezpieczeń gryprzed uszkodzonymi zapisami statu. System bada (także iOS) czasem kończyproces aplikacji natychmiast zamiast zgłosić programowi koniecznośćnormalnego zakończenia. Takie zakończenie może nastąpić także w trakciezapisywania plików. Po takim zakończeniu aplikacji zapis stanu może nie byćw pełni aktualny, może być uszkodzony (ew. z innych powodów). Wczytywanieuszkodzonego zapisu mogłoby doprowadzić do nieskończonego cyklu –uruchomienie gry – wczytywanie uszkodzonego zapisu – crash i zakończenieprocesu – uruchomienie gry – wczytywanie uszkodzonego zapisu itp. Takiezachowanie gry ma zapobiec tej sytuacji i zasygnalizowanie użytkownikowi, żez ostatnio edytowanym terenem może coś być nie tak.Gra używa teraz znacznie więcej pamięci RAM i sytuacja, że proces zostanienatychmiastowo zakończony jest bardziej prawdopodobna. Bada kończy takżetrwający proces, jeśli użytkownik bardzo szybko uruchomi następny, zanim tentrwający zakończy np. zapis.
Uaktualnianie pliku z zapisem działa jak w transakcyjnych bazach danych ijest w wysokiej mierze odporne na błędy związane z przerwaniem zapisu wdowolnym momencie. U mnie ten błąd od dawna nie wystąpił (przy zasięgurysowania normalnym; przy dalekim zdarzał się). Przy wgraniu tekstur owiększej rozdzielczości może występować częściej. Najwięcej pamięci w grzezużywa teren (stan, siatka) i tekstury. Jest jeszcze pewne pole dooptymalizacji zużycia pamięci. Jeśli Ci ten błąd występuje to możesz na czasedycji ustawić zasięg rysowania krótki.

Mam nadzieję, że informacja od autora uspokoiła co nieco osoby, u których występuje opisywany błąd. Poniżej jeszcze kilka screenów dla osób, które nie widziały jeszcze takiego stanu gry.