Zarządzanie złożoną fabułą lub systemem zadań


14

Jakie metody najlepiej stosować do zarządzania złożonymi fabułami w grze? Prosta historia jest w zasadzie liniową linią z ogranicznikami, więc nie byłoby to takie trudne, ale bardziej złożona jest zasadniczo skomplikowanym grafem ukierunkowanym, z pewnymi wymaganiami dotyczącymi przemieszczania się między węzłami. Jak więc skutecznie przechowywać i utrzymywać złożoną fabułę gry, która ma wiele ścieżek i celów?

Odpowiedzi:


4

Zależy dokładnie od tego, jak jest złożony twój system. Jeśli to proste rozgałęzienie, wystarczy potraktować je jako liniową historię z kilkoma flagami, aby dokładnie powiedzieć, na której ścieżce się znajdujesz (lub jeśli wolisz wizualizować w ten sposób, binarną strukturę drzewa, w której każdy węzeł jest punktem wyboru historii i bieżącym miejsce w opowieści jest wskaźnikiem do jednego z węzłów). Nieco bardziej wciągająca historia z wieloma ścieżkami, które mogą się przecinać, może być modelowana jako ukierunkowany wykres acykliczny przy użyciu tej samej techniki.

Co jeśli masz wiele łuków historii toczących się jednocześnie, jak typowy system zadań „otwarty świat”, w którym gracz może mieć kilka zadań jednocześnie? Jeśli misje nie wchodzą ze sobą w interakcje, możesz traktować każde z nich jako osobne mini-drzewo liniowe lub rozgałęzione. Co jeśli się nawzajem zmodyfikują? Oto moja preferowana opcja:

Zmodyfikowany ukierunkowany wykres, w którym każdy węzeł reprezentuje zadanie. Oto dwa podstawowe rodzaje strzałek między węzłami: „aktywuj” i „dezaktywuj”. W ten sposób ukończenie zadania może otworzyć nowe zadania, a także unieważnić stare zadania, które nie mają już sensu (na przykład, jeśli otrzymujesz zestaw zadań, z których każdy ma pomóc innej stronie w walce frakcje, ukończenie jednego zadania może automatycznie ukryć inne, jeśli chcesz zmusić gracza do wybrania jednej strony i trzymania się jej). Będziesz także chciał zapisać w każdym węźle jego aktualny status: aktywny (aktualnie widoczny dla gracza), nieaktywny (nigdy nie był widoczny dla gracza), ukończony (gracz zakończył misję), nieudany (gracz widział misję ale został później dezaktywowany, na przykład poprzez ukończenie oddzielnej, konkurencyjnej misji).

Zabawna uwaga dodatkowa: każdy system, który działa dla zadania / fabuły, działa również dla pojedynczego drzewa konwersacji z NPC i odwrotnie. Jeśli więc znajdziesz odpowiedni system konwersacji dla swojej gry, zadaj sobie pytanie, czy warto go zmodyfikować również w systemie fabularnym.


Ponadto, w zależności od danej gry, wykres może nie być acykliczny: rozważ na przykład, jeśli gracz popełni błąd, który uniemożliwia mu przejście, ale ma szansę go naprawić, odwiedzając wcześniejszą serię węzłów.
Jon Purdy

9

Zestaw narzędzi Neverwinter Nights zawiera ciekawą próbę rozwiązania tego problemu, znaną jako Kreator wydruku. Początkowo nie był dostarczany z zestawem narzędzi, więc być może będziesz musiał spróbować ponownie, jeśli kilka lat temu opracowałeś moduł. Oto obszerny samouczek, który omawia różne komponenty zaprojektowane do opracowania fabuły RPG.

Podstawowe podsumowanie jest takie, że „kreator fabuły” pozwala konstruować fabułę i zadania z góry na dół. Na przykład możesz nakazać mu wygenerowanie odpowiedniego skryptu dla zadania „pobierz 10 rzeczy”, które prowadzi do fedex, który prowadzi do niestandardowej skryptu. Następnie kreator wygeneruje serię połączonych komponentów powiązanych ze skryptem wydruku, a następnie pozwoli Ci umieścić je na świecie. Dzięki temu możesz łatwo przenosić NPC lub wrogów na całym świecie bez zrywania jakichkolwiek połączeń skryptowych.

Nie znam żadnych innych komercyjnych gier, które wykorzystywałyby tę technikę (większość wydaje się używać ton jednorazowych zmiennych sprawdzanych za pomocą skryptów), ale zawsze uważałem, że była to rozsądna podstawa do zbudowania pełnej gry RPG lub przygody gra w stylu.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.