Teraz jest N 28 kwi, 2024 00:07


Modularna struktura misji

Archiwum działów sekcji Operation Flashpoint
  • Autor
  • Wiadomość
Offline
Avatar użytkownika

alderous

Pułkownik

Pułkownik

  • Posty: 1784
  • Dołączył(a): Cz 19 sie, 2004 13:20
  • Lokalizacja: Łódź

Modularna struktura misji

PostŚr 10 gru, 2008 23:18

Modułowa struktura misji to taki pomysł, który przyszedł mi do głowy kiedy zdałem sobie sprawę, że w gruncie rzeczy misje składają się (lub też mogą składać się) z całkowicie niezależnych od siebie elementów. Tworzenie misji może przypominać składanie klocków, wystarczy utworzyć coś w rodzaju biblioteki takich modułów.

Jako moduły traktuję jednostki, grupy, punkty trasy, wyzwalacze wraz z komendami skryptowymi, które stanowią, logiczną wzajemnie powiązaną całość i na tyle uniwersalną że można je przerzucić z misji do misji metodą kopiuj/wklej (ew. z poddając drobnej modyfikacji).

Na przykład takim modułem może być patrol czyli grupa (o losowej liczebności lub losowym prawdopodobieństwie występowania) wraz z punktami trasy (każdy z rozrzutem) tworzącymi pętle, która za pomocą wyzwalacza jest przerywana i kieruje patrol w konkretne miejsce (np. jeśli gracze zajmą objective patrol jest przerywany i grupa udaje się do objective'u go odbić). Coś takiego jest całkowicie niezależne od innych elementów misji i łatwe do przeniesienia, bo nie związane z innymi elementami. Niemal w każdej misji jest jakiś patrol, który wykonuje zadanie do momentu spełnienia określonego warunku (lub likwidacji tego patrolu).

Oczywiście to jest bardzo prosty przykład, ale mogę być bardziej skomplikowane rzeczy. Na przykład może być oddział żołnierzy strzegący jakiegoś obszaru (objective'u). Można zrobić trzy grupy po 3-4 (losowość) żołnierzy wykonujące patrol (trasa nieco losowa) wokół objective'u (w większej odległości np. jako dwie grupy po kole o promieniu ok. 500 metrów i jedna po kole o promieniu ok. 250 m). Przerywałyby patrol w przypadku aktywacji wyzwalacza reagującego na obecność wroga w objective'ie. W samym objective kolejna grupa o losowej liczebności, która w przypadku wykrycia wroga (wyzwalacz) przechodzi do punktu trasy "szukaj i zniszcz", a jeśli zostanie w niej dwóch żołnierzy (kolejny wyzwalacz typu przełącz) wycofuje się (po prostu ucieka, dzięki czemu nie trzeba się bawić w szukanie po krzakach ostatniego wroga, który blokuje wyzwalacz). Do tego wyzwalacz wykrywający nieobecność wroga i zaliczający graczom wykonanie celu. Można jeszcze dodać grupę przyjeżdżającą wesprzeć obrońców (grupa, jej punkty trasy i stosowny wyzwalacz) i parę innych drobiazgów. Powstaje coś jakby gotowy template.

Jeszcze jeden przykład. Wstawiamy śmigłowiec sojuszniczy i dbamy o to by zaczął na ziemi. Dodajemy wyzwalacz aktywowany radiowo (przez gracza dowódcę) i łączymy z punktem trasy. Następny punkt trasy typu szukaj i zniszcz może być gdziekolwiek, bo korzystając z wstawionego wcześniej wyzwalacza dodajmy komendę przenoszącą tenże punkt na pozycje gracza. Jego też synchronizujemy z wyzwalaczem typu przełącz i z warunkiem dotyczącym uszkodzeń maszyny (jest mocno uszkodzony - wraca do bazy, można też dać jakiś informacje w postaci chatu). Kolejny wyzwalacz aktywujący się gdy hela jest z zniszczona i umieszczający na jej pozycji marker, dodający graczom cel "sprawdzić wrak heli i ustalić czy załoga zginęła", ustawiający stosowną zmienną. Kolejny wyzwalacz przenoszony (setpos) na pozycję wraku heli (w chwili gdy hela zostanie zniszczona), reagujący na przybycie graczy i zaliczający im cel. Można jeszcze mnożyć kolejne wyzwalacze sprawiając np, że jeśli załoga przeżyje to po przyjściu graczy dołączą się do grupy, trzeba ich odstawić za swoje linie żeby zaliczyć kolejny niespodziewany cel misji (chociaż dużo prościej ich ubić w chwili katastrofy heli). Można na przykład wyspawnować grupę wrogów wokół wraku heli co by utrudnić wykonanie zadania itd.

W efekcie mamy moduł w rodzaju wsparcie śmigłowcowe dla graczy. Od ich decyzji zależy czy z niego skorzystają (losowo występujące szyłki mogą go strącić). Ten element też można przenieść bez problemu z jednej misji do drugiej. Jedyne na co trzeba zwrócić uwagę to na nazwy zmiennych i liczbę celów w misji.

To do czego dążę i co jest celem mojego projektu to stworzenie paru dziesięciu takich modułów, a potem w całkiem lamerski sposób poskładanie ich w misje. Zazwyczaj taki moduł to cel misji wraz z elementami potrzebnymi do jego osiągnięcia, przeszkodami oraz wyzwalaczami i zmiennymi kontrolującymi stan wykonania celu i zmiany w sytuacji. Taki moduł to mogą być nawet dwa wyzwalacze - jeden sprawdza czy gracze dotarli w określony rejon, a drugi czy zostali wykryci nim tam dotarli. Jak dotarli i nie zostali wykryci cel jest zaliczony.
Poza tym modułami mogą być np. patrole wroga, oddziały sojusznicze wykonujące dane działanie w określonych warunkach (wspomniany śmigłowiec), czy np wyzwalacze i obiekty będące "bazę" do której można wrócić aby zakończyć/przerwać misję.

Takie moduły można testować i upewniać się, że działają niezależnie od samej misji i tym samym nie testując misji jako skomplikowanej całości (aczkolwiek to i tak trzeba później zrobić), a w ten sposób łatwej wyłapać błąd i ustalić jego przyczynę.

Zamierzam zakładać tematy dotyczące poszczególnych modułów (w gruncie rzeczy są to mini poradniki pt. jak rozwiązać problem x). Będzie można proponować swoje rozwiązania danego problemu czy testować, a przede wszystkim wykorzystywać coś co działa i czego działanie rozumiemy.

Na koniec dodam że jest jeszcze jedna rzecz oprócz modułowości którą chcę wprowadzić (przynajmniej we własnej praktyce tworzenia misji). Jest to opracowanie pewnych standardów tworzenia misji między innymi ujednolicających nazewnictwo zmiennych i grup, zakładających tworzenie dokumentacji opisującej misje i dołączanej jako plik txt do plików pbo. Już wielokrotnie przekonałem się że zapominam jak właściwie funkcjonuje misja którą stworzyłem jakiś czas temu, a gdybym ktoś kogo misję mam przetestować (czy usunąć z niej bug'a) stosował takie standardy, byłoby mi o wiele łatwiej.

Tyle na dzisiaj, bo już mi się zwoje lasują. Jutro albo pojutrze dodam parę opisów "modułów" i inne pomysły.
Offline
Avatar użytkownika

LostBeyondRetri

Porucznik

Porucznik

  • Posty: 254
  • Dołączył(a): Pt 08 cze, 2007 22:22
  • Lokalizacja: Stąd?

PostCz 11 gru, 2008 10:34

Dobry pomysł, który w praktyce omija problem "Mam rozpisaną całą misje i została mi tylko ta cholerna ewakuacja na koniec.". Nie trzeba wtedy przechodzić samemu misji po 30 razy, by udoskonalić jeden element.
Mi raczej nigdy nie zdarzyło się używać modułów, lecz jest to b. ciekawe rozwiązanie.
Obrazek
Offline
Avatar użytkownika

kondor

Major

Major

  • Posty: 880
  • Dołączył(a): Pt 11 lut, 2005 04:00
  • Lokalizacja: Berlin (wschodni)

PostCz 11 gru, 2008 10:42

Wg mnie jest to normalne działanie, aby dzielić całość na podzadania jak najbardziej od siebie niezależne. Nie ma nic gorszego niż misja, w której kilkanaście zmiennych jest od siebie silnie powiązanych, co daje, nieogarniony przez ludzki mózg, graf.
Offline
Avatar użytkownika

alderous

Pułkownik

Pułkownik

  • Posty: 1784
  • Dołączył(a): Cz 19 sie, 2004 13:20
  • Lokalizacja: Łódź

PostCz 11 gru, 2008 11:25

kondor napisał(a):Wg mnie jest to normalne działanie, aby dzielić całość na podzadania jak najbardziej od siebie niezależne. Nie ma nic gorszego niż misja, w której kilkanaście zmiennych jest od siebie silnie powiązanych, co daje, nieogarniony przez ludzki mózg, graf.


Ale tu chodzi o coś więcej. Chcę mieć te elementy gotowe zanim zacznę robić misje i chcę dosłownie scalać je przyciskiem w edytorze. Na przykład biorę sobie moduły:

- przeniknij niezauważony przez linie wroga
- zniszcz obiekt
- wykradnij ciężarówkę i dostarcz ja do bazy
- wsparcie śmigłowca szturmowego

dodaję parę modułów losowych patroli i grup pościgowych (uruchamianych w miarę postępów misji) i mam właściwie gotowy coop z trzema celami do wykonania.

Oczywiście można temu zarzucić, że to mało komplikowane, mało odkrywcze i wręcz prymitywne, ale w takie misje gra się równie dobrze jak w te ekstremalnie rozbudowane i oskryptowane. Przykładem są misję które męczyło się non-stop na cfogu czyli "11 is enough" i "Fire tree" (Coob'y o ile się nie mylę). Pierwsza sprowadzała się do zlikwiduj posterunek, zajmij miasto, odeprzyj kontratak. Druga to zniszcz plot'ki, zniszcz park pojazdów wroga, wróć do bazy i utrzymaj ją. Owszem w "Fire Tree" były takie rzeczy jak DAC czy CoC arty, ale w gruncie rzeczy gdyby ich nie było zabawa byłaby tak samo dobra (choć DAC faktycznie sporo daje). Tak na marginesie obie misje nie miały otwartej struktury.

No i co do tej chęci wracania do misji po raz n-ty. Sądzę, że do misji chce się wracać parę razy, a potem robi się to już tylko dlatego, że nie bardzo ma sie wybór. Choćby nie wiem jak misja była losowa to na ile sposobów można ją przejść? Cele i miejsce pozostają te same. Wołałbym przez te pół roku zrobić tuzin misji (różne typy, miejsca, a nawet okresy historyczne) i każdą zagrać parę razy (i starczy) niż zrobić jedną super i katować ją w nieskończoność.
Offline
Avatar użytkownika

kondor

Major

Major

  • Posty: 880
  • Dołączył(a): Pt 11 lut, 2005 04:00
  • Lokalizacja: Berlin (wschodni)

PostCz 11 gru, 2008 12:21

Ale tu chodzi o coś więcej. Chcę mieć te elementy gotowe zanim zacznę robić misje i chcę dosłownie scalać je przyciskiem w edytorze.

Czyli taki RAD

No i co do tej chęci wracania do misji po raz n-ty. Sądzę, że do misji chce się wracać parę razy, a potem robi się to już tylko dlatego, że nie bardzo ma sie wybór. Choćby nie wiem jak misja była losowa to na ile sposobów można ją przejść? Cele i miejsce pozostają te same. Wołałbym przez te pół roku zrobić tuzin misji (różne typy, miejsca, a nawet okresy historyczne) i każdą zagrać parę razy (i starczy) niż zrobić jedną super i katować ją w nieskończoność.

A ile jest rodzajów uogólnionych celów zadań, które można wykorzystać w misji?
-Wg mnie max. kilkanaście (może mam za małą wyobraźnię). A misje są rozróżniane ze względu na miejsce akcji, godzinę, ilość wrogów, wykorzystane addony, fabułę (tyle mi przychodzi na myśl). Ale w zasadzie zawierają się w tym zbiorze zadań/celów.
Wg mnie więc wystarczy napisać system, który losowym uczyni jak najwięcej z wyżej wymienionych aspektów, aby sprawić, że misja będzie quasi-niepowtarzalna.
Ja wybrałem taki model (różne miejsca, zadania, godziny, ilość wrogów, chodź fabuła u mnie jest stała). Być może traci to na klimacie względem prostej ustalonej misji, którą łatwiej można dopieścić.
Offline
Avatar użytkownika

alderous

Pułkownik

Pułkownik

  • Posty: 1784
  • Dołączył(a): Cz 19 sie, 2004 13:20
  • Lokalizacja: Łódź

PostCz 11 gru, 2008 14:20

kondor napisał(a):
No i co do tej chęci wracania do misji po raz n-ty. Sądzę, że do misji chce się wracać parę razy, a potem robi się to już tylko dlatego, że nie bardzo ma sie wybór. Choćby nie wiem jak misja była losowa to na ile sposobów można ją przejść? Cele i miejsce pozostają te same. Wołałbym przez te pół roku zrobić tuzin misji (różne typy, miejsca, a nawet okresy historyczne) i każdą zagrać parę razy (i starczy) niż zrobić jedną super i katować ją w nieskończoność.

A ile jest rodzajów uogólnionych celów zadań, które można wykorzystać w misji?
-Wg mnie max. kilkanaście (może mam za małą wyobraźnię). A misje są rozróżniane ze względu na miejsce akcji, godzinę, ilość wrogów, wykorzystane addony, fabułę (tyle mi przychodzi na myśl). Ale w zasadzie zawierają się w tym zbiorze zadań/celów.
Wg mnie więc wystarczy napisać system, który losowym uczyni jak najwięcej z wyżej wymienionych aspektów, aby sprawić, że misja będzie quasi-niepowtarzalna.
Ja wybrałem taki model (różne miejsca, zadania, godziny, ilość wrogów, chodź fabuła u mnie jest stała). Być może traci to na klimacie względem prostej ustalonej misji, którą łatwiej można dopieścić.


Ok. Wiem jaki wybrałeś model i filozofię. Ja wybrałem inną. Jeśli chcesz stworzyć system-misję która zastąpi tworzenie misji, bo wygeneruje za pomocą swego kodu praktycznie każdy typ misji, to pozostaje mi życzyć powodzenia (całkiem szczerze i bez złośliwości). Będzie to nie lada osiągnięcie - właściwie jak stworzenie gry w grze.

Proszę nie staraj się przekonać mnie do swojego punktu widzenia (tworząc tą filozofię odrzuciłem go), bo ja nie przekonuję cię do mojego - po prostu przedstawiam go. Jeśli chcesz podkreślić, że twoje podejście jest równie dobre jak moje, to w tej chwili przyznaję że tak jest (bo na prawdę tak jest). To tylko kwestia wyboru tego co nam bardziej pasuje.
Offline
Avatar użytkownika

kondor

Major

Major

  • Posty: 880
  • Dołączył(a): Pt 11 lut, 2005 04:00
  • Lokalizacja: Berlin (wschodni)

PostCz 11 gru, 2008 15:55

Tak jak Ty, ja nie przekonywałem Cię do jedynie słusznej racji, tylko chciałem pokazać, że istnieje inna możliwość. Ograniczenia naszego języka lub naszego wysławiania się sprawiają, że piszemy tekst dwuznaczny (możliwa jest inna interpretacja niż autora).

Jeśli chcesz stworzyć system-misję która zastąpi tworzenie misji, bo wygeneruje za pomocą swego kodu praktycznie każdy typ misji, to pozostaje mi życzyć powodzenia (całkiem szczerze i bez złośliwości). Będzie to nie lada osiągnięcie - właściwie jak stworzenie gry w grze.

(losowanie któregoś z (obecnie) 9 rodzajów zadań (każde zadanie jako skrypt), ponad 21 lokacji dla każdego zadania, czasu i pogody; (ilość wrogów zależna od wybieranego poziomu trudności, ale ustawienie tego jako zawsze losowanej liczby nie stanowi problemu) podawane graczom jako rozkazy do wykonania) = "DS: SABOTAGE".
Nie jest to więc właściwe generowanie misji, tylko losowanie parametrów, które ją opiszą. Jest to trochę zgodne z Twoim wprowadzeniem czynnika losowego tyle, że ja rozszerzam go na więcej rzeczy. Gracz wówczas zazwyczaj nie widzi schematu, który tak naprawdę tym steruje. Daje to 9[zadań]*(k>20[lokacji])*liczba_pór_dnia*liczba_warunków_pogodowych*liczba_opcji_sil_wroga różnych różnie odbieranych przez gracza zadań. Oczywiście, zgodnie z paradoksem dnia urodzin, będą się często powtarzać, ale praktycznie przez bardzo długi czas gracz dostanie nowe zadania.
Offline
Avatar użytkownika

alderous

Pułkownik

Pułkownik

  • Posty: 1784
  • Dołączył(a): Cz 19 sie, 2004 13:20
  • Lokalizacja: Łódź

PostCz 11 gru, 2008 16:48

Z całym szacunkiem, ale to już ma coraz mniej wspólnego z tematem modularna budowa misji, a ja w żadnym miejscu nie pisałem, że to jak chce robić misje jest jedynym rozwiązaniem tego zagadnienia, więc nie trzeba mi pokazywać że "istnieje inna możliwość"
Offline
Avatar użytkownika

Kadryl

Major

Major

  • Posty: 883
  • Dołączył(a): Cz 14 wrz, 2006 14:04
  • Lokalizacja: Wa-wa

PostCz 11 gru, 2008 20:15

A może wzorem "zagadek militarnych" coś w temacie ?
Najlepszy moduł, wszechstronność zastosowania, mozliwości implementacji, szybkość działania etc ?
Może "połaczymy przyjemne z pożytecznym" jak mawiał Papcio Chmiel :)
Offline
Avatar użytkownika

alderous

Pułkownik

Pułkownik

  • Posty: 1784
  • Dołączył(a): Cz 19 sie, 2004 13:20
  • Lokalizacja: Łódź

PostCz 11 gru, 2008 22:49

Kadryl napisał(a):A może wzorem "zagadek militarnych" coś w temacie ?
Najlepszy moduł, wszechstronność zastosowania, mozliwości implementacji, szybkość działania etc ?
Może "połaczymy przyjemne z pożytecznym" jak mawiał Papcio Chmiel :)


Przyznam że nie rozumiem propozycji
Offline
Avatar użytkownika

Ovg

Porucznik

Porucznik

  • Posty: 379
  • Dołączył(a): Pt 03 lis, 2006 20:14
  • Lokalizacja: z domu

PostPt 12 gru, 2008 17:30

Chodzi chyba o to, że użytkownicy wysyłaliby swoje moduły, które ludzie mogliby uzywać i oceniać. Imho pomysł trudny w realizacji
"Ojej, jakże ja kocham koniczki!"
:kloda:
  ▲
▲ ▲
Offline
Avatar użytkownika

alderous

Pułkownik

Pułkownik

  • Posty: 1784
  • Dołączył(a): Cz 19 sie, 2004 13:20
  • Lokalizacja: Łódź

PostPt 12 gru, 2008 20:28

Ovg napisał(a):Chodzi chyba o to, że użytkownicy wysyłaliby swoje moduły, które ludzie mogliby uzywać i oceniać. Imho pomysł trudny w realizacji


Ocenianie trochę nie ma sensu, bo żeby oceniać musiały by istnieć jakieś kryteria, a co do wysyłania to może tak będzie, bo tak na prawdę jest to rozwiązywanie pewnych problemów (dosyć uniwersalnych). Jeśli ja coś napiszę, a ktoś inny poda inny sposób to w sumie wyjdzie na to samo.
Offline
Avatar użytkownika

Sudayev

Major

Major

  • Posty: 509
  • Dołączył(a): So 11 lut, 2006 15:44

Re: Modularna struktura misji

PostSo 13 gru, 2008 19:44

alderous napisał(a):To do czego dążę i co jest celem mojego projektu to stworzenie paru dziesięciu takich modułów, a potem w całkiem lamerski sposób poskładanie ich w misje.


Kiedy mozna sie spodziewac wydania pierwszych modulow ?
OFP Jungle Fever | Beta Test Team
Offline
Avatar użytkownika

alderous

Pułkownik

Pułkownik

  • Posty: 1784
  • Dołączył(a): Cz 19 sie, 2004 13:20
  • Lokalizacja: Łódź

PostSo 13 gru, 2008 21:23

Wydania? Chyba źle mnie zrozumiano. Mam zamiar w miarę możliwości zakładać tematy dotyczące kolejnych zagadnień-modułów (zazwyczaj chodzi o określone zadanie do wykonania w misji) opisując jak ja dany problem bym rozwiązał. Niektóre problemy próbowałem już wcześniej rozgryźć, a niektóre rozważałem tylko teoretycznie. W obu przypadkach muszę najpierw odpalić OFP i sprawdzić jak moje przypuszczenia mają się do rzeczywistości żeby nie było sytuacji, że wprowadzam kogoś w błąd.

Liczę na to, że gdy opiszę jak bym coś zrobił, ktoś to przeczyta i na przykład zaproponuje jakieś dodatkowe elementy (niekoniecznie z opisem jak je wykonać - sam pomysł też się może przydać) albo wyłapie jakieś błędy (nawet podejrzenia że coś może w danej sytuacji nie zadziałać są przydatne) lub w ogóle zaproponuje alternatywne rozwiązanie.

O walorach takiej "biblioteczki" rozwiązań dla osób postronnych chyba nie muszę wspominać.
Offline
Avatar użytkownika

Jon

Generał

Generał

  • Posty: 10721
  • Dołączył(a): Wt 20 lip, 2004 00:43
  • Lokalizacja: Kraków

PostPn 15 gru, 2008 05:55

Przyznam szczerze, że na sam temat jestem chyba za głupi, jednak sama koncepcja biblioteczki - czy to skryptowej (to trzeba zrobić.) i modułowej (a to już jak chcecie) jest świetna i ma moje 100 % poparcie.

Alderous w pierwszym poście napisał(a):Na koniec dodam że jest jeszcze jedna rzecz oprócz modułowości którą chcę wprowadzić (przynajmniej we własnej praktyce tworzenia misji). Jest to opracowanie pewnych standardów tworzenia misji między innymi ujednolicających nazewnictwo zmiennych i grup, zakładających tworzenie dokumentacji opisującej misje i dołączanej jako plik txt do plików pbo. Już wielokrotnie przekonałem się że zapominam jak właściwie funkcjonuje misja którą stworzyłem jakiś czas temu, a gdybym ktoś kogo misję mam przetestować (czy usunąć z niej bug'a) stosował takie standardy, byłoby mi o wiele łatwiej.
O, o! W to mi graj!

...bo generalnie uważam, że to co ułatwi robienie misji, to przedewszystkim - zunifikowanie i ustandardyzowanie pewnych rzeczy. To da duuużo więcej niż "moduły". Gotowe szablony to dużo bardziej potrzebna podstawa niż 'moduły' oskryptowanych objective'ów czy wsparcia czegoś - co można przecież osiągnąć korzystając z konkretnych skryptów.

I to chyba tyle na dziś, nie?
http://www.pajacyk.pl

“Politics is supposed to be the second oldest profession. I have come to realize that it bears a very close resemblance to the first.”
~ Ronald Reagan
Następna strona

Powrót do Operation Flashpoint

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 47 gości