Jak zarządzać różną prędkością akcji w grach RogueLike?
Mam na myśli to, że gry turowe mogą mieć aktorów działających z różną „prędkością”, w zależności od akcji i innych cech. Następnie aktorzy wykonują więcej akcji / obrotów niż inni, jeśli mają większą prędkość, czy nie.
Jak ustalić, kiedy aktor powinien być w stanie działać (włączanie harmonogramu?)?
Wygląda na to, że istnieją różne sposoby, aby to zrobić? Czy potrafisz wyjaśnić niektóre algorytmy?
roguelikes
Klaim
źródło
źródło
Odpowiedzi:
W mojej grze roguelike Tyrant korzystałem z systemu punktów akcji i ocen prędkości.
Gruntownie:
Następnie pętla gry przebiegałaby w następujący sposób.
hero action AP cost * 100 / hero speed
creature speed * elapsed time / 100
Ten system działał ogólnie bardzo dobrze, na przykład fajne funkcje:
źródło
Punkty akcji. Daj każdej jednostce „prędkość”, aby szybsi aktorzy zdobyli więcej punktów w każdej turze. Spraw, aby każda akcja zajęła określoną liczbę punktów i odejmij tę liczbę od punktów gracza w tej turze, gdy wykonuje akcję. Jeśli akcja wymaga więcej punktów niż pozostawił gracz, oznacz ją jako „częściowo ukończoną” i pozwól mu zakończyć ją w następnej turze.
źródło
Czy masz na myśli, że akcje wykonują wiele tur (tj. Spanie przez 50 tur prosto)?
Chciałbym zachować obiekt player.currentAction. currentAction może zawierać liczbę tur, których wymagałaby akcja, jaka jest rozdzielczość akcji oraz listę stanów, które anulują akcję (w niebezpieczeństwie, zaatakowanie, za gorąco itp.). Każdej turze, zanim sprawdziliśmy, czy gracz nie jest w stanie wejść, sprawdzaliśmy, czy gracz jest w trakcie akcji, a następnie robiliśmy coś w rodzaju ...
źródło
Możesz iść z punktami akcji, ale bez tur jako takich, ale tiki, które są znacznie mniejsze. Załóżmy, że każdy aktor ma szybkość akumulacji punktu akcji (np. 2 AP na tik). Rozpoczyna akcję wartą, powiedzmy, 10 AP. Gra przesuwa się o 5 tyknięć do przodu (ponieważ tyle kosztuje aktor, aby zapłacić cenę AP akcji).
Gdy jest kilku aktorów. Gra postępuje tyknięcie po tyknięciu, aż ktoś zapłaci cenę AP w momencie, w którym ta akcja zostanie wykonana.
Podejście jest podobne do @ mikera, tylko że nie ma negatywnych AP.
źródło
Czas wysokiej rozdzielczości
Jeśli uderzenie zajmie 400 obrotów, a kopnięcie zajmie 1000 obrotów, mogę uderzyć cię co najmniej dwa razy, zanim mnie kopniesz, i mogę uderzyć cię 5 razy, zanim mnie kopniesz dwa razy.
Sprawiając, że wszystko się zmienia, masz dużą kontrolę nad tym, jak długo to trwa.
źródło