Analizy

 
 
 
Optymalizacja zdarzeniówek w RM
(Rave)

Często zdarza się, że gra chodzi wolniej niż tego oczekiwaliśmy. Dzieje się tak niezależnie od wersji Makera - zwyczajnie jedne komendy zamulają bardziej od innych.
Swój tekst oparłem o język zdarzeń z RPG Makera 2003/ME (jak kto tam woli), ale wskazówki mają zastosowanie do każdej wersji programu. W tym artykule przedstawię najczęstsze spotykane problemy i krótkie, praktyczne rozwiązania.

Pętle


O tak - pętle stanowią duży problem optymalizacyjny. Pamiętam kiedyś, jak miałem z tym kłopoty przy próbach tworzenia ABSa. Mimo, że był to 2003, a nie np. XP.
Rozwiązanie: Zapomnijcie o konstrukcjach typu:
<>Pętla
 <>...
  <>Warunek: jakiś-warunek
     <>Złam pętle
<>
Zamiast tego proponuję nast. kod:
<>Etykieta
<>...
<>Warunek jakiś-warunek
    <>Idź do etykiety
<>
Musicie również zauważyć różnicę w warunkach. W pierwszym wypadku, jeśli warunek był spełniony - pętla była kończona. Tutaj trzeba natomiast zastosować odwrotność takiego warunku. Czyli np. kiedy w pierwszym kodzie warunek sprawdzał czy przełącznik 1=ON, to przy optymalizacji trzeba będzie sprawdzać, kiedy przełącznik 1=OFF. Nie martwcie się - poprawność działania kodu będzie identyczna.


Ciągłe ładowanie obrazków


To też zabiera sporo pracy procesorowi. Zasada w tym wypadku jest prosta - nie musisz ładować obrazka - nie rób tego. Ważne jest to szczególnie w wypadku HUD-ów obrazkowych.
Rozwiązanie: Jeśli tworzycie hud na obrazkach, ograniczcie używanie komendy 'pokaż obrazek'. Nie wywołujcie jej przy każdym odświeżeniu ekranu, tylko kiedy któraś z wartości się zmieni. W tym celu używajcie dwóch zmiennych dla każdej wyświetlanej wartości - jedną aktualną i jedną do zapamiętania ostatniej wartości. Jeśli nie są sobie równe - wyświetlamy od nowa wartość zmiennej; jeśli natomiast są równe - nie robimy nic.


Wielkość mapy/ilość zdarzeń


Z tym również bywają problemy. Wprawdzie problem ten nie dotyczy wersji 2003 i starszych, jednak jest to dość ważne przy makerze XP i VX.
Rozwiązanie: Nigdy nie róbcie map większych niż ~30x40 i nie używajcie więcej zdarzeń niż około 100 na mapę (w przypadku zdarzeń poruszających się lub równoległych - jeszcze mniej), chyba że macie 100% pewności, że wasza gra nie będzie uruchamiana na komputerach sprzed paru lat.


Animacje


Animacje (battleanim) również spowalniają grę, szczególnie kiedy mają więcej niż około 60-70 klatek.
Rozwiązanie: Starajcie się ich unikać kiedy to tylko możliwe. Zwłaszcza, jeśli gra chodzi wolno mimo zastosowania się do innych wskazówek tego artykułu.