System ataku na gracza - gra przeglądarkowa

Piszę z kolegą grę przeglądarkową w HTML, PHP i CSS, nic specjalnego gierka dla kilku znajomych i przychodzi czas na zrobienie ataków między graczami. Gracze mają mieć możliwość zdobywania/przejmowania miast, wsi i wiosek wydobywczych.

Nie wiem w jaki sposób ma przebiegać atak, mam takie jednostki jak husarz, miecznik, topornik i łucznik i teoretycznie każda z tych jednostek miała by mieć inną siłę w walce, jak obliczyć który gracz wygra i co ważne ile i jakich jednostek powróci do zamku gracza który wygrał?

Pytasz tak jakby był na to jedyny słuszny sposób, to zależy od twojej (projektanta) inwencji. Najprostszy wariant będzie wyglądał tak: z sumować całkowitą siłę, wygrywa ta drużyna o większej sile. Ilość ocalałych wojsk per oddział to stosunek siły słabszej drużyny do silniejszej drużyny pomnożony przez ilość jednostek w oddziale silniejszej drużyny. Będzie to prosta liniowa zależność.

A mógłbyś dokładniej wytłumaczyć jak by to wyglądało?

Kolega @kostek135 wytłumaczył to tak prosto jak się da, ale podejmuję wyzwanie:

Strona A:

Jednostka JA [sila = 5; obrona = 3] x 5

Jednostka JB [sila = 3; obrona = 3] x 10

Strona B:

Jednostka JA [sila = 5; obrona = 3] x 10

Jednostka JB [sila = 3; obrona = 3] x 1

Jednostka JC [sila = 3; obrona = 10] x 10

 

Sumujesz to wszystko:

Strona A: [sila = (5*5) + (3*10) = 55; obrona = (3*5) + (3*10) = 45]

Strona B: [sila = (5*10) + (3*1) + (3*10) = 83; obrona = (3*10) + (3*1) + (10*10) = 133]

 

Czyli w uproszczeniu obrona strony B zniweluje atak strony A, a obrona strony A nie będzie w stanie powstrzymać ataku strony B - wygrywa strona B.

 


Poczytaj o algorytmie walk OGame dość dokładnie gracze to rozkminili.

Ok załóżmy że według tego co napisałeś strona A zaatakuje stronę B. Wygra strona B a wiec do strony A nie wróci żadne wojsko bo całe zostało pokonane w walce, ale jak obliczyć ile i jakich (nie może np. zostać stronie B jednostek których nie miała) jednostek zostanie stronie B? (część zginie w walce a część nie)

Przecież napisałem liczysz proporcję między siłą jednych wojsk i drugich. Następnie wykorzystujesz ten współczynnik przy wyliczeniu straty.

Np. strona A ma 10 jednostek po 5 siły każda, strona b ma 1 jednostkę o sile 10

10*5 = 50

1*10 = 10

dzielimy mniejsze przez większe czyli 10/50 = 1/5

Mnożysz liczbę jednostek przez 1/5, czyli 10 * 1/5 = 2, przy czym są to jednostki zabite więc musisz teraz od wszystkich jednostek odjąć liczbę zabitych by zostały te ocalałe: 10 - 2 = 8. Prosta liniowa zależność, ty uzyskałeś wykształcenie podstawowe?

Jestem teraz w 2 gimnazjum, a co do tematu to teraz coś tam rozumiem.

Załóż sobie konta na kilku grach strategicznych i przeanalizuj ich system, będziesz miał jakieś pojęcie, jak zbudować taki system. Mam własny, ale ci go nie zdradzę, ponieważ planuję coś podobnego, jak ogarnę projekt szkolny.

Wszystko zależy od konkretnej gry. Nie można używać prostych proporcji jeśli mamy kilka rodzajów jednostek + ulepszenia + strategie / formacje. Każda jednostka powinna mieć własne równania dla ilości wojsko które przeżyją / jej efektywność / zasięg na podstawie terenu, powinieneś wprowadzić też niewielką losowość.

To nie jest takie proste jak się wydaje, a gotowca w necie za friko ci nikt nie poda. Potem będziesz miał pełno komercyjnych gier czy botów na podstawie algorytmu który ci ktoś poda jak na tacy.