Jaka jest alternatywa dla zadrapań, aby rozwiązać problem zakleszczenia w walce?


37

Zadrapania są mechaniką gry, w której każdy udany atak zawsze powoduje minimalną ilość obrażeń. Jest to często stosowane w odejmujących systemach walki, w których obrona jest odejmowana bezpośrednio od obrażeń zadanych przez atakującego. Dlatego cel zawsze otrzyma minimalne obrażenia.

Minusem takiego systemu jest dla mnie przynajmniej hack. Że ma wzór prostego, jak Damage = Attack - Defensei obraca się go w (nieznacznie) bardziej złożony: Damage = max(Attack - Defense, 1).

Uważam również, że osłabia to umiejętność gracza w rozwijaniu jego postaci / itp. Bez względu na to, ile bonusów obronnych otrzymują, każdy atak spowoduje niewielkie obrażenia. Po co więc tak wysoko bronić się, jeśli to nic nie znaczy?

Ponadto zachęca to teraz do używania większej liczby punktów życia i obrażeń, tak że obrażenia zadrapania są naprawdę znikome. W końcu, jeśli minimalne obrażenia wynoszą 1, a ty masz tylko 10 Hp, to nadal 10% twojego zdrowia. Nawet przy 20 Hp to 5%. Wolałbym raczej unikać takich większych liczb, chyba że jest to absolutnie konieczne.

Istnieje jednak jedna bardzo ważna zaleta szkód zadrapania: rozwiązuje problem impasu.

Zakleszczenie występuje, gdy żadna ze stron nie jest w stanie wyrządzić szkody drugiej stronie. Jeśli zainwestujesz wszystkie swoje zasoby w obronę, a kilka w atak, twoja postać może nie przyjąć obrażeń, ale nie będzie też w stanie zadawać zbyt wiele. W ten sposób możesz natknąć się na spotkanie, w którym żadna ze stron nie będzie w stanie zadać obrażeń, więc bitwa trwa wiecznie. Jest to szczególnie ważne, jeśli nie masz losowych mechanizmów, takich jak trafienia krytyczne (których również nienawidzę).

Przynajmniej w przypadku zadrapania, ktoś w końcu wygra. Może to być tylko ten, który ma najwięcej Hp lub największą liczbę ataków, ale bitwa się skończy.

Lubię więc system walki, w którym zawsze będzie wynik. Ale nie lubię zadrapań. Jakie są moje alternatywy?

Alternatywy, które nie wymagają losowania liczb losowych; Chcę, aby walka była w 100% deterministyczna. Jeśli toczy się ta sama bitwa, musi nastąpić dokładnie ten sam wynik.

Jeśli chcesz poznać szczegóły rozgrywki, zastanów się nad walką turową, w której bitwę można zautomatyzować (projektujesz swoje siły, a następnie rzucasz je na innych).


8
Czy możesz zrobić pogarszający się system pancerza (na spotkanie), aby rozwiązać problem impasu?
Tetrad

1
Proponuję rzucić
Exilyth

3
Diabelska pozycja adwokata: zamiast zmuszać graczy do bezpiecznej gry, dlaczego nie pozwolić im zdecydować, czy chcą używać głupich budowli, które mogą się zakleszczyć?
Patrick Hughes

3
@PatrickHughes: Ponieważ uważam, że źle jest zaprojektować grę, aby pozwolić graczowi postawić się w złej pozycji bez odpowiedniego uprzedzenia. I nawet z ostrzeżeniem, muszą być w stanie się z niego wydostać , gdy zobaczą, że to się dzieje. Jeśli nie można cofnąć wyborów dotyczących postaci, muszą oni wiedzieć z góry, że nie trwają na stałe, dokonując wyborów, które w tamtym czasie wydawały się dobrym pomysłem.
Nicol Bolas,

Odpowiedzi:


41

Możesz wdrożyć system zmęczenia / wytrzymałości. W miarę wykonywania coraz większej liczby ataków gracz staje się coraz bardziej zmęczony, co oznacza, że ​​nie jest w stanie utrzymać tak dobrej obrony (ramię tarczy nagle zaczyna czuć się naprawdę ciężkie po machnięciu mieczem 50 razy) wraz ze wzrostem zmęczenia, obrona spada. Oznacza to, że gracz, który wykształcił dobrą postać, nie odniesie obrażeń w szybkich spotkaniach, ale dłuższa walka spowoduje zwiększenie obrażeń zapobiegających impasowi.


21

To wydaje się pytaniem bardzo otwartym. Rozwiązania (o których jeszcze nie wspomniano) zapobiegające zakleszczeniom:

  • Pozwól na zakleszczenia jako realny efekt końcowy. Jest to najmniej oczekiwane lub typowe rozwiązanie. Na przykład w grze RTS może to być niełatwe zawieszenie broni lub napięty, ale cichy konflikt w gwałtownej równowadze.
  • Dopuszczalne ograniczenie czasowe z powiązaniami
  • Ograniczenie czasu, w którym wygrywa pierwsze uderzenie / wynik / punkt po limicie (nagła śmierć / dogrywka)
  • Losowe niebezpieczeństwa w systemie (a la bomby w Super Smash Bros ). To zmienia punkt ciężkości sytuacji z ataku na obronę.
  • Wszelkie czynniki zewnętrzne, które zaburzają równowagę systemu (np. Trzeci agent o wysokich obrażeniach i niskim pancerzu, zgoda obu stron na „pojedynek” bez całej zbroi)
  • Obrona jako% zmniejszona (prawdopodobnie najprostsze rozwiązanie, o ile obrona jest ograniczona)
  • Umiejętności lub taktyki zmieniające dynamikę rozgrywki (wybory, które nie powodują obrażeń, takie jak umiejętność Płaszcz / Niewidzialność)
  • Sposoby zadawania znacznie większych obrażeń (klasyczne trafienia krytyczne, premie ukrycia, bonusy wysokości, bonusy terenu, umiejętność, która zamienia losowe części ziemi w lawę)
  • Środki powodujące uszkodzenie lub obniżenie zbroi lub spowodowanie obrażeń bezpośrednio skierowanych na postacie o wysokiej obronie (umiejętność odwracająca zbroję w obliczeniach, dzięki czemu agenci o niższej obronie otrzymują mniej obrażeń)
  • Przedmioty lub umiejętności ograniczone do użycia (np. Bomby, potężne, ale wyczerpujące umiejętności). Przydatne tylko wtedy, gdy istnieją długoterminowe cele poza impasem, z którymi można zrównoważyć ograniczone użycie
  • Sztucznie zakończ walkę (klasyczna opcja „Ucieczka”)

7

Jako wariant możesz dodać akumulację rany. Z pewnością gigantyczny miedziany topór nie przebije ciężkiej stalowej zbroi, ale spowoduje pewne tępe obrażenia, a nawet może złamać kości. To samo dotyczy kul i kamizelek.

Za każdym razem, gdy postać zostanie trafiona, zamień część obrażeń przebijających i tnących na obrażenia tępe, które kumulują się. Po pewnym progu (na przykład zależnym od wytrzymałości), skumulowane obrażenia będą zakłócać umiejętności bojowe postaci. Niektóre opcje tutaj:

  • Pancerz może być mniej skuteczny przy trafianiu w te same części ciała.

  • Znaczące rany: okresowe uszkodzenia, osłabienie z powodu bólu.

  • Ciężkie rany: krótkotrwała utrata przytomności (czyniąc postać bardzo wrażliwą).

  • Ekstremalne rany: trwała utrata statystyk (jeśli postać przeżyje).

Powiązane: Mechanika obrażeń w Dwarf Fortress


2
Zamierzałem zasugerować, by każda broń zadała obrażenia obuchowe, których zbroja nie może zablokować. Miecze i sztylety miałyby małe zdolności obijania, ale topory i maczugi byłyby bardzo skuteczne.
jmegaffin

5

Zadawaj różne rodzaje obrażeń, używając zbroi, które chronią tylko przed niektórymi rodzajami obrażeń. Na przykład uszkodzenie kinetyczne, uszkodzenie kwasem, uszkodzenie ognia, itp. Żaden pancerz nie powinien chronić przed każdym rodzajem uszkodzenia.

Użytkownicy mogli nakładać pancerze, aby chronić się przed wszystkimi typami obrażeń, ale nie mogli chronić przed wszystkimi typami obrażeń jednocześnie. Wprowadza to także pewną strategię do bitew, w których gracze muszą zmieniać typy obrażeń, aby przejść przez różne warstwy zbroi.


4

Po prostu mogłyby nie mieć stat obrony i po prostu dać większy wrogom większy KM. Wiem, że chcesz unikać gigantycznych liczb, ale jeśli chcesz deterministyczną grę turową, w której ataki nie są oparte na bezpośrednim wkładzie graczy (nie ma szans, że błąd ludzki zepsuje atak), statystyka obrony wydaje się trochę bezcelowa także.

Jeśli martwisz się aspektem prezentacji, możesz rozbić HP na Kierki lub Pipsy Zdrowia EG 100 KM = 1 serce. Serca zaczynają ciemnieć, gdy postać traci HP, a następnie znika całkowicie. W ten sposób gracz łatwiej jest zrozumieć niż 129301239103123 KM, ale nie musisz się martwić zrównoważeniem jakiegoś magicznego równania.

Jeśli martwisz się realizmem, zawsze możesz mieć animację, aby wyglądał jak cel ataku skutecznie blokuje lub jest tylko lekko porysowany, aż do zabójczego ciosu.


1
jeśli chcesz deterministycznej gry turowej, w której ataki nie są oparte na bezpośrednim wkładzie graczy [...] statystyki obrony również wydają się trochę bezcelowe. ” Obrona nie opiera się na koncepcji „szansy na… tęsknić". To bardziej przypomina redukcję obrażeń w D&D, a nie THAC0 (lub jakkolwiek nazywają to obecnie). Obrona oznacza, że ​​atak o wartości 40 obrażeń można zmniejszyć do 10 obrażeń, jeśli masz 30 punktów obrony. Nie rozumiem, jak to może być „bezcelowe”
Nicol Bolas

1
Wiem, że matematyka jest trochę inna, ale tak naprawdę nie ma ogromnej różnicy pod względem rozgrywki między po prostu nadaniem postaci proporcjonalnej ilości zdrowia, a zadawaniem obrażeń o określoną wartość. Nie, jeśli zawsze musi istnieć jakiś sposób zadawania obrażeń celowi. EDYCJA: Zakładając, że nie ma żadnych specjalnych ataków, które ignorowałyby obronę lub inne modyfikatory rozgrywki.
Lewis Wakeford

Posiadanie subtraktywnej statystyki obrony daje ci coś więcej niż tylko Hp (oprócz wszystkich rzeczy z wyjątkiem, takich jak specjalne ataki lub modyfikatory). Tworzy rozwarstwienie między użytkownikami po czasie a użytkownikami o wysokich obrażeniach. Postać, która atakuje wiele razy, ale z mniejszymi obrażeniami, ucieka od postaci o wysokiej obronie, podczas gdy wolniejsza postać o wysokich obrażeniach z czasem zadaje większe obrażenia. Zwykłe punkty życia nie spowodują takiego rozwarstwienia.
Nicol Bolas

4

Dodaj mechanikę zużycia do obrony. Spraw, by każdy atak nieznacznie zmniejszał obronę celu.

W końcu nawet słaby atak zużyje wystarczającą obronę celów, aby spowodować rzeczywiste obrażenia.


3

Jeśli nie masz nic przeciwko wyjściu ze świata liczb całkowitych i chcesz urozmaicić system odejmowania, możesz użyć algorytmu redukcji obrażeń z Warlords Battlecry III:

damage = attack

while DR > 0:
    usedDR = DR
    if DR > damage
        usedDR = damage
    damage = damage - usedDR * 0.5
    DR = (DR - usedDR) / 2

HP = HP - damage

Jest to funkcja, która zachowuje się bardzo podobnie do powyższego pseudokodu:

damage(attack, DR) = attack * 2 ^ -(DR/attack)

Kiedy DR jest mniejsze niż atak (obrażenia przychodzące), zachowuje się jak atak - k * DR, gdzie k wynosi 0,693 ( ln(2)dokładnie). Kiedy DR jest bliskie lub większe, otrzymywane obrażenia są DR/attackniszczone o połowę . Na przykład dla DR = 30 i ataku = 10 obrażenia wyniosą 1,25 (atak zmniejszy się o połowę 3).

Może to wyglądać na bardziej skomplikowane i trudniejsze do oceny dla człowieka, ale nie wymaga hackowania, a zmiany obu parametrów są istotne. Jeśli atakujący zyska dodatkową siłę ataku lub obrońca zyska lub straci DR nawet w niewielkich ilościach, wynikłe obrażenia zmienią się.


1

Użyj pływaków.

Nawet jeśli graczowi poda się całkowitą liczbę HP, użyj float, aby uzyskać HP, i float, aby zadać obrażenia.

Używam teraz frakcyjnych klas zbroi, w których pancerz 1.0 jest niezwyciężony, a pancerz 0.0 oznacza „przyjmuje pełne obrażenia”. Obrażenia są zmniejszane, ponieważ:

float hpReduction = hp - dmg*(1.f - armor) ;

Ta formuła pozwala na „podwójne obrażenia” poprzez ustawienie pancerza na -1.

Podzieliłem również obrażenia na kategorie, patrz na przykład obrażenia wstrząsowe / wybuchowe Starcraft lub system typów obrażeń Ewy .

Więc teraz trochę imp drapie w twojej zbroi klasy .99 , ostatecznie Cherry Cherry cię zabije, ale ataki nie będą zadawać obrażeń graczowi (pozostanie przy 1 hp, gdy wzrośnie z 1,15 hp do 1,1499 hp the następny atak ..)


0

Wykres umiejętności może postawić niektóre umiejętności zadawania obrażeń jako warunek wstępny umiejętności obronnych na wyższym poziomie, aby zmniejszyć zdolność gracza do wykonywania wysoce asymetrycznych buildów.

Trafienia krytyczne mogą powodować obrażenia, o ile obrona nie jest absurdalnie wysoka. Jeśli uczynisz je okresowymi, a nie losowymi, nadal będziesz miał deterministyczną walkę.

Po kilku nieudanych trafieniach możesz automatycznie zmniejszyć prędkość ataku na korzyść większej szansy na trafienie i obrażeń. Twoja superszybka postać zadrapująca wykonywała dziesięć ataków na sekundę; teraz, po piętnastu atakach nie powodujących obrażeń, otrzymuje trzy ataki na sekundę przy + 50% do trafienia i + 200% obrażeń. Jest to podobne do trafień krytycznych, ale w takich sytuacjach jest szybsze.

Możesz użyć procentowej redukcji obrażeń ze zbroi, ale aby uczynić ją bardziej interesującą niż inny sposób na wzmocnienie maksymalnego HP, możesz mieć większy procent redukcji w przypadku słabszych trafień. Na przykład 90% redukcji obrażeń o 1-20 KM, 60% na 20-30 i 30% na wszystko inne.

Wreszcie, nie martw się o duże liczby. Dają ci dużo lepszą kontrolę niż małe. Posiadanie postaci na pierwszym poziomie ze 100 punktami wytrzymałości oznacza, że ​​możesz mieć coś, co zabija ich w siedmiu trafieniach, ale nie w pięciu. Oznacza to, że możesz zadawać obrażenia od trucizny i inne obrażenia w czasie, które nie są skandalicznie niszczące (a także niektóre, które są, jeśli chcesz). Jeśli nie lubisz wyświetlać dużych liczb, znajdź sposób, aby ich nie wyświetlać.


0

Mówisz, że chcesz, aby zawsze istniała rezolucja, ale czy to musi być zwycięstwo?

Zastanów się nad podejściem stosowanym przez Dominions - po 50. godzinie atakujący automatycznie rutuje. Podczas tury 75 obrońca automatycznie ucieka. (Trasa nie działa automatycznie - niektóre jednostki są odporne na rutowanie, a nawet jeśli unieruchamia je unieruchomiona jednostka, tak naprawdę nie może odejść.) Podczas tury 100 wszystko, co pozostało, zostaje zabite.

Chociaż nie zgadzam się z dokładnym sposobem jego działania (są sytuacje, w których zabicie drugiej strony zajmuje zbyt długo) podstawowa idea pozostaje aktualna.

Co sugerowałbym:

Spójrz na jakąś miarę mocy każdej strony. (Punkty życia są oczywistym punktem wyjścia, ale uważaj, Dominions ma problem w tym względzie, w którym liczy się „utrata” punktów życia, która nie jest znacząca - zmiana kształtu, przywoływanie itp., Co powoduje rozbijanie armii z powodu ofiar, które nie były nawet nie weź żadnych.) Śledź osiągniętą minimalną wartość i zwróć uwagę na liczbę zwojów, jakie upłynęły od ustawienia nowego minimum. Jeśli trwa to zbyt długo bez ustalenia nowego minimum, masz jakiś impas i atakujący powinien się wycofać.


0

Alternatywą, której jeszcze nie widziałem, jest to, że ponieważ twoja wartość pancerza czyni atak negatywnym, możesz dodać trochę RNG dla prawdziwego bloku:

const stratchDamage = 1;
var armour = 10; 
var blockCount = 0;

function registerAttack (incomingAttack)
{
    var incomingDamage = incomingAttack - armour;

    // Nothing unusual, deal damage
    if( incomingDamage > 0 ) 
    {
        dealDamage(incomingDamage);
    } 

    // Armour cancels out attack, deal scratch damage
    else if( incomingDamage == 0 ) 
    {
        dealDamage(scratchDamage);
    }

    // Armour over attack value, check if can block
    else
    {
        var trueBlockChance = armour - incomingDamage;

        // blockCount starts at 0, will always block first attack
        if( trueBlockChance  > blockCount ) 
        {
            // Can technically do nothing, or trigger block animations etc
            block();
            blockCount ++; // Increment block so they can't block forever
        }
        else
        {
            dealDamage(stratchDamage);
            blockCount = 0;
        }
    }
}

Im wyższy jest deficyt obrażeń po zbroi, tym więcej ataków postać może zablokować przed kolejnym atakiem zadrapania.

Zapewnia to dodatkową skalę statystyk obronnych, nie czyniąc ich jednocześnie niewrażliwymi, pozwala także atakom przejść przez tę mechanikę bloków, jeśli chcesz, i naturalnie zapobiegnie zakleszczeniom.

Walki mogą zająć dużo czasu, jeśli ułożysz statystyki w obronie nad atakiem, ale w końcu się tam dostanie.


Cytat z PO: Chcę, aby walka była w 100% deterministyczna. To nie pozwala na 100% deterministyczną walkę.
Charanor

Następnie blok może być również oparty na turach, dla każdego poziomu trueBlock nad atakiem wróg musi atakować tyle razy, aby uzyskać obrażenia zadawane przez zadrapania. Można zastosować ten sam pomysł.
Tom 'Blue' Piddock

@Charanor - dostosowano odpowiedź do 100% deterministycznej.
Tom 'Blue' Piddock

-1

Wiele gier walki 3D pozwala uniknąć zadrapań. Przykładami są Tekken i Soul Calibur 2. Unikają tego, utrudniając idealną obronę. Niektóre ataki są po prostu zbyt szybkie, aby na nie zareagować. Myślę, że to całkiem dobre rozwiązanie.


-1

Myślę, że zmniejszenie skuteczności obrony nie jest dobrym rozwiązaniem. Deportacja gracza prowadzi do złych wrażeń z gry. Dlaczego nie odwrócić się?

Czemu nie wzmocnić ataku w miarę upływu czasu. To z czasem zwiększa obrażenia zadrapania, zmniejszając motywację do blokowania. W środkowej fazie gry postać może zabić inną, wyjącząc go, gdy się broni.

Niektóre pliki RPP typu pnp zawierają „mechanizm napięcia”. Napięcie w każdym zakręcie wzrasta o jeden. Wszystkie rzuty mają dodatkowy modyfikator wartości napięcia, co popycha bitwę do końca.

Innym pomysłem, pochodzącym z gier walki, jest atak przechodzący przez obronę. Nie wiem, czy twoja gra opiera się na grze turowej, czy w czasie rzeczywistym, ale atak ten może również otworzyć przeciwnika na kombinację lub tymczasowo wyłączyć go lub niektóre jego umiejętności.

Uważam, że sztuczką nie jest osłabienie obrony. Wybierz inne opcje równie dobre jak obrona lub zmniejsz czasy, w których obrona jest dobrą opcją.

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.