Open Marcin99b opened 1 year ago
Trzeba będzie dodać
ostatnie 2 punkty można zrobić tak, że każda "akcja", czyli jakieś zdarzenie wygenerowane przez gre (losowe lub wynikające z scenariusza fabularnego, trzeba będzie to jakoś nazwać żeby było wiadomo o co chodzi), ma określone warunki, które muszą zostać spełnione żeby się odpaliła
podczas takich akcji można dowolnie manipulować stanem, dodawać coś do niego, zmieniać coś w nim itd
każda akcja ma liste warunków które muszą zostać spełnione, żeby była odpalona, przykładowo
i tak dalej, i tak dalej, tych warunków może być dużo, im więcej tym precyzyjniej możemy określić kiedy misja ma się wydarzyć
sterowanie wyborem akcji może działać tak, że przechodzimy po liście wszystkich akcji i przy każdej sprawdzamy, czy akurat ją możemy odpalić
ze względu na wydajność, na liście warunków które trzeba spełnić żeby odpalić misje, w pierwszej kolejności powinny być te, które najczęściej będą odrzucać misje -> chodzi o to, że jeśli przykładowo misja jest dostępna JEDYNIE dla klasy postaci A
, a użytkownik ma klase postaci B
, to nie ma sensu sprawdzać czy spełniamy reszte warunków, powinniśmy jak najszybciej odrzucić tą akcje i sprawdzać następną... tak samo w przypadku misji ograniczonej do konkretnej lokalizacji, nie ma sensu nawet sprawdzać reszty warunków, jeśli nie jesteśmy w danej lokalizacji, więc od sprawdzenia tego powinniśmy zacząć
Powinna być opcja save'owania stanów gry
Czyli powinien być jakiś plik, który trzyma informacje o wszystkich zmiennych (dane postaci, jakaś historia zdarzeń itd) + trzyma informacje o tym jakie teksty były wcześniej wyświetlone w konsoli i w jakich kolorach
Żeby gracz po skończeniu gry, mógł od razu kontynuować poprzednią rozgrywke
Oznacza to też, że wydarzenia w grze powinny być zależne od stanu, a nie przebiegać dosłownie według sztywnego algorytmu, który mówi krok po kroku co się dzieje
Przykładowo misja
X
odpala się jeśli spełnione są określone warunki (lokalizacja postaci, zakończone odpowiednie zadania itd), a nie jeśli w kodzie jest zapisana dosłownie jako następna