Jako wieloletni dręczyciel klikowych edytorów zdarzeń.. podzielę się bardzo istotną kwestią jaką jest prowadzenie kodu w grze. Tak aby łatwo było dany projekt modernizować, zmieniać i rozbudowywać.
Na wstępie zaznaczę, że są dwie główne metody pracy nad grą i omówię je z grubsza:
a. Speed - budowanie gry w stylu potoku zdarzeń.. często przeze mnie używana w mniejszych projektach, lub nad gierkami małej wagi.. a nawet dla wprawki… samej zabawy ze zdarzeniami… kreuję je jeden po drugim, czasem oddzielam jakimś krótkim komentarzem w stylu: tutaj obszar pola śmierci / tutaj event wygrywający / itp.. nie tworzę żadnych grup zdarzeń.. ewentualnie dwie / trzy w stylu: główne / gra / relacja. Gdzie w grupie:
- główne - wrzucam najważniejsze zdarzenia odpowiadające za start gry i ‘zawsze’ plus kilka poprawek w stylu: czas mniejszy niż 0,30 sekundy – przywróć kontrolę gracza / zakończ animację gracz przed poruszaniem się / itp… /// często się dodaje akcje np: do start ramki czy always
- gra - wszystkie zdarzenia w jednym ciągu odpowiadające za grę, jak ruch, kolizje z wrogami, ruch wrogów, efekty specjalne itp.
- relacja - wszelkie zdarzenia związane z ramkami gry, typu zakończ aplikację, skocz do ramki, ramka do tyłu, następna itp /// łatwo zlokalizować tę grupę w celu podmiany np: numeru ramek
b. Starannie - jeśli budujemy większy projekt z zamiarem ewentualnej jego kontynuacji.. warto już od samego początku dać
główny komentarz w wypunktowanymi najważniejszymi elementami gry np: licznik 01 - value 1= ruch, value 2 = skok, value 3 = trafiony, value 4 = odradzanie się / globalna 16 - value 0 = angielski, value - 1 = polski / itp.
Następnie tworzymy grupę - BASE, gdzie umieszczam wszystkie zdarzenia na start gry i 'zawsze' oraz wszelkie oddzielone komentarzem zdarzenia lokalne dla danej ramki.. typu ustaw tekst poziomu na: koszary / ustaw numer poziomu na 1 / ustaw liczbe podżyć na 5 / itp... grupa ta pozwoli się odseparować od pozostałej części grup które mogą być podmieniane w ramach 'napraw kodu'
Kolejna ważna grupa to - TEST, gdzie wrzucamy wszystkie zdarzenia testowe typu: always - nieśmiertelność, otwarte wrota; na start - ustaw pozycje gracza w danym miejscu, ustaw ammo na 100, itp / grupę tę usuniemy lub wyłączymy przy konwertowaniu gry do exe.. w każdym razie umożliwia wepchnięcie łamacza reguł gry, dzięki któremu możemy szybko przetestować fragment gry
Tutaj bym dodał grubym tekstem komentarz poprzedzając grupy zdarzeń o okreslonym charakterze... więc tak:
komentarz - SILNIK RUCHU i np: pod nim:
grupa (lewo prawo)
grupa (skok)
grupa (ślizgawka)
komentarz - ANIMACJA i np: pod nim:
grupa (animacje bohatera)
grupa (animacje wrogów)
grupa (animacje panelu)
komentarz - WROGOWIE i np: pod nim:
grupa (wróg ruchomy)
grupa (wróg statyczny)
grupa (wróg extra)
komentarz - EFEKTY SPECJALNE i np: pod nim:
grupa (eksplozje)
grupa (odpryski)
grupa (światło)
grupa (warstwy)
lub
grupa (efekty podstawowe) - aktywna na start
grupa (efekty 01 gracz wybrał) - nieaktywna na start / aktywuj gdy wartosc globalna np 10 większa od 1
grupa (efekty 02 gracz wybrał) - nieaktywna na start / aktywuj gdy wartosc globalna np 10 większa od 2
itp..
Na sam koniec można dodać komentarz: lokalne zdarzenia i umieszczać tu wszelkie zdarzenia odpowiednie do danej planszy.. takie mikrokorekty jak:
- każde pół minuty = ustaw siłę wroga na wartość A razy (numer poziomu przez dwa) razy liczba wrogów w polu.
- zegar większy 4 minuty = utwórz bestię tu a tu... itp
Teraz przystąpię do meritum artykułu.. tak tak dobijam was tym monologiem..
Ikonki
Podczas tworzenia nowych obiektów w grze (w edytorze ramki) na samym początku warto ustawić opcję twórz automatycznie ikony na TAK! i kreując nowe obiekty za każdym razem ustawiać ich parametry:
nazwa obiektu - im krótsza tym lepiej, najlepiej w stylu G (główny ludek), w01, w02, w03 (wrogowie), pow01, pow02, pow03 (powerupy), exm, exd, exf (eksplozja mała, ekspozja duża, eksplozja finiszowa) itp.. czemu tak? otóż bardzo często w edytorze zdarzeń przychodzi do podmieniania nazw i krótkie nazwy przyspieszą wielokrotnie pracę np: korzystniej jest gdy - / ustaw pozycje gracza X na pozycje X exm / niż tak - / ustaw pozycje gracza X na pozycje X eksplozja mała /
ikonka obiektu - zawsze produkując obiekty, warto zmienic jego ikone na bardzo wyrazisty znak graficzny, by był czytelniejszy w edytorze zdarzeń przy maksymalnej ciasnocie pól.. warto po skończeniu wstępnej budowy wszystkich obiektów (ważniejszych) ustawić twórz automatycznie ikony na NIE! by zapobiec zepsuciu przez nas utworzonej ikonki podczas edycji obiektu.
Kolejność ikonek w edytorze (górny pasek)
Opłaca się poświęcić chwileczkę czasu na uporządkowianie tych ikonek w jakieś większe, sensowne, i o podobnych parametrach grupki obiektów.. robie to tak, że najpierw tuż za ikonami specjalnymi ustawiam ikonę G (bohatera), zaraz potem detektory jegoż, później np grupuję ikony wrogów, potem ikony powerupów i tak dalej... jest to
bardzo pomocne przy haczykowaniu akcji... wygodnie się kopiuje powiedzmy akcje dla powerupów = add licznik 01 - 100pkt, hak, hak, hak, i podmieniam 100pkt na inne wartosci dla innych powerupów... 200pkt , 300pkt i 400pkt.. amen
Naprawki
Tworząc grę często przyjdzie taka sytuacja, że mamy dwadzieścia plansz gry.. i nagle wykrywamy w jednej z nich buga.. naprawiamy w danej ramce grupę zdarzeń.. zmieniając nazwę na: obecna nazwa plus liczba wersji poprawki 01.. robię to w ten sposób:
było sobie tak:
grupa - SILNIK RUCHU
grupa - ANIMACJA
grupa - WROGOWIE .. przy czym zaczynam tę grupę poprawiać ..
powstało takie coś:
grupa - SILNIK RUCHU
grupa - ANIMACJA
grupa - WROGOWIE pop1
i tę grupę zdarzeń pop(rawioną) kopiuję do pozostałych ramek, podmieniając stare na nowe. Jest czytelnie i wiadomo, też przy okazji ile korekt się zrobiło w danej grupie zdarzeń hehe
Kolejność zdarzeń, warunków i akcji
MMF2 czyta od góry na dół po kolei.. na jedno odświeżenie gry.. (zdarzenia i warunki w zdarzeniach) więc warto mieć to na uwadze przy budowaniu kodu gry.. źle poukładane zdarzenia czy warunki mogą powodować wykluczenia i błędy czytania przez program kodu. Też należy dbać o kolejność ułożonych akcji.. (klikasz na dana komórkę i edytujesz listę akcji) - może mieć ich kolejność znaczenie powiedzmy w dopasuj: naprzód - i obiekt który znajduje się na końcu listy będzie zasłaniał pozostałe.
end.
Ostatnio edytowane 15 kwietnia 2009, 22:08 przez
pikor