Aktualizacja gier ze zmniejszonym rozmiarem pobieranego pliku
Fanotherpg
Ostatnio dość popularne stało się mówienie o aktualizacjach własnych aplikacji, zapoczątkowane przez aplikację misieksamgame "Mapa Polskich Klikowców", następnie kurs zetcom'a z 5 numeru Ślimaczka, a potem programik RX'a.. A po co to.. no więc dzięki takiej aktualizacji z Internetu użytkownicy naszych aplikacji mogą pobrać nowe wersje naszych dzieł.
Spis treści
Wymagania
- Rozszerzenia:
- Plik:
- Start.zip
Dlaczego aż 3 rozszerzenia zamiast 1 Nobu HTTP? Artykuł dotyczy aktualizacji wraz ze zmniejszonym rozmiarem plików, który uzyskujemy w bardzo prosty sposób pakując nasz plik do formatu *.zip!!! Jest to wręcz banalne a zarazem genialne bo przy niektórych rodzajach plików zmniejsza się ich pojemność kilkukrotnie (!!) co wpływa na szybkość ich ściągnięcia a zarazem wygodę użytkowania. A plik Start.zip posłuży w tym przykładzie jako aplikacja do której jest aktualizacja.
Do dzieła
A więc zaczynamy naszą przygodę z aktualizacjami:
Najpierw wgrajmy na swój serwer plik o nazwie new.txt a w nim jedynie cyferkę 2 oraz plik new.zip w którym będzie nasza aktualizacja oraz w katalogu gdzie zapiszemy nasz projekt pik act.txt z jedną cyferką 1.
Stwórzmy nowy projekt w TGF'ie i w pierwszym poziomie dajmy rozszerzenia:
Nobu HTTP
2 edit box'y
text z treścią Jest nowa wersja. Czy chcesz ją teraz pobrać? Wciśnij T jeśli się zgadzasz, wciśnij N jeśli nie chcesz aktualizować
Edit box'y i obiekt Nobu HTTP umieśćmy poza ekranem gry.
Zdarzenia
Stwórzmy 2 grupy: com oraz act
| N | Zdarzenia |
| 1 |
Na początku deaktywujemy 2 grupy, do których zaraz przejdziemy.
| 2 |
Kiedy czas wynosi pół sekundy, ustal bufor ściągania na 1024x1 i podaj link do pliku oraz nazwę pod jaką ma być zapisany. Dlaczego pół sekundy a nie na początku poziomu? Czasami podczas Start of level gra się wiesza albo wyświetla pusty poziom więc jest to pewne zabezpieczenie...
| 3 |
Teraz następuje aktywacja grupy która dokona sprawdzenia czy jest nowa wersja naszego dzieła oraz wczytanie nr wersji z plików tekstowych new.txt (nowa wersja) i act.txt (aktualna wersja).
| N | Zdarzenia |
| 4 |
| 5 |
Tutaj w grupie com mamy do czynienia z porównywaniem wartości w zdarzeniu 4. sprawdzamy czy wartość pobrana z Internetu z pliku new.txt jest większa od wartości w pliku act.txt jeśli tak to przechodzimy do następnej grupy. Za to w zdarzeniu 5. mamy do czynienia z przypadkiem gdy wartość z pliku new.txt jest równa bądź mniejsza od wartości z pliku act.txt wtedy zamykamy aktualizację i uruchamiamy prawidłową aplikację.
| N | Zdarzenia |
| 6 |
| 7 |
Teraz tworzymy drugi poziom a w nim dajemy rozszerzenia Nobu HTTP, Unzip Object oraz File object a także licznik.
Przejdźmy do kodu:
| N | Zdarzenia |
| 1 |
Kiedy czas wynosi pół sekundy ustal bufor ściągania na 1024x1 i podaj link do pliku oraz nazwę pod jaką ma być zapisany.
| 2 |
Rozpakowywujemy pliki do katalogu w którym znajduje się aktualizacja (powinna ona się znajdować w katalogu z naszą pracą)
Licznik ile procent zostało pobrane.
| 4 |
Jeśli wszystko poszło jak trzeba zamknij aktualizację, uruchom właściwy program, usuń stary numer wersji, zmień nowy numer na aktualny (nazwa pliku txt) oraz usuń ściagnięty plik zip.
Podsumowanie
Jak widać po lekkiej modyfikacji (a dokładniej dodaniu 1[!!!] zdarzenia) możemy zaoszczędzić nieco miejsca i czasu... Jest to moja wersja aktualizacji - wielkie dzięki misieksamgame za pomoc przy połapaniu się w Nobu HTTP oraz Zip/Unzip Objects.