Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Herní algoritmus: výpočet boje na základě hodnoty útoku a brnění

Zdravím,

chtěl jsem se poradit, nebo zeptat, zdali by neměl někdo nápad, jak vyřešit následující problém:

Mám hru, kde mezi sebou budou bojovat "paňáčci".

Struktura bojovníka:

int hp;     //zdraví
int attack; //útok
int shield; //brnění

Rád bych vymyslel nějakou funkci, podle který budu snižoval určitý počet hp při útoku jednoho bojovníka na druhého.

Funguje to tak, že čím vyšší attack tím větší poškození dá a čím větší shield tím menší poškození dostane.

Tedy že shield redukuje poškození co utrpí.

Nějaký nápady?

Horní hranice attacku a shieldu ještě nejsou určeny a asi budou závislé na výpočtu.
(vše musí být int).

Předmět Autor Datum
To snad zavisi od toho jak si tu hru definujes, aby to bolo hratelne. Urcite tam bude pomer attack/s… nový
MM.. 28.09.2015 10:54
MM..
Je to taková "mlátička", není to střílečka. Dobře, dík. nový
MašinkaTomáš 28.09.2015 10:58
MašinkaTomáš
Pokud to chces pojmout komplexneji, tak kazdy utok bude snizovat kvalitu brneni a tim padem zpusobov… nový
Jan Fiala 28.09.2015 11:02
Jan Fiala
Ano, to by bylo určitě hezké, ale tak moc to propracované nebude. nový
MašinkaTomáš 28.09.2015 11:04
MašinkaTomáš
Je to komplexna vec ktoru si mas premysliet ty, ptz to zavisi od sposobu hry. Urob si priklady toho… nový
MM.. 28.09.2015 11:16
MM..
Děkuji, nový
MašinkaTomáš 28.09.2015 11:26
MašinkaTomáš
A do toho ještě zabudovat určitý poměr štěstí. V reálu ne vždy stejný úder způsobí stejnou škodu. St… nový
Jan Fiala 28.09.2015 16:33
Jan Fiala
útok - obrana = poškození? Nebo jsem něco nepochopil? nový
Redsnake 28.09.2015 16:47
Redsnake
To by bylo moc jednoduché a lineární ;-) Nech nás mu to trošku zkomplikovat, protože taková hra by t… nový
Jan Fiala 28.09.2015 17:17
Jan Fiala
takže ak by mal enemy viac armor ako ty damage tak tvoje utoky budu brat tobe HP? = Welcome in game… nový
Mlocik97 28.09.2015 17:24
Mlocik97
Ono to neni v reali taketo jednoduche, ptz podla tvojho vzorca keby utok < obrana, tak by si do prot… nový
MM.. 28.09.2015 17:57
MM..
No, máte samozřejmě pravdu, ale pro jednoduchost se to dá ošetřit tak, že všechny útoky ve hře jsou… nový
Redsnake 28.09.2015 18:03
Redsnake
http://www.bigfishgames.com/games/2588/puzzle-hero / je tam všetko: sila útoku, brnenie, zdravie. O… nový
sakraforte 28.09.2015 18:07
sakraforte
Děkuji všem za odpovědi. poslední
MašinkaTomáš 29.09.2015 22:32
MašinkaTomáš

Je to komplexna vec ktoru si mas premysliet ty, ptz to zavisi od sposobu hry.
Urob si priklady toho jak to ocakavas a nakresli to do grafu alebo rovno zhlavy funkciu na to. Ak to menis po kazdom jednom udere, tak si staci dat do pomeru attack/shield a vynasobit to 100 a po kazdom udere znizovat protivnikov v danom pomere. Ak v tom je zamontovane aj pocet vojakov a hodnoti sa cely suboj, tak je nutne za prve nasobit to poctom vojakov (10 na 1ho urcite toho 1ho zabiju a budu mat mensiu stratu HP), uvazovat ze od akeho pomeru pocet*attack/pocet*shield a aj povodne hodnoty HP do toho musia byt zamontovane (ked ma jeden 100% a druhy uz len 1%) este ten slabsi je schopny utiect a ak je tam viac vojakov tak ze kolko % z nich utecie, apod. Nasledne skodu na HP protivnika vydelis poctom utocnikov (krat pomer attack/shield) a mas rozdiel HP pre kazdeho vojaka utocnika apod. To si mas prehrat v hlave rozne situacie a zadefinovat si jak ocakavas vysledok a nakoniec dojst k nejakemu vzorcu na zaklade toho jake ocakavas vysledky
P.S> ratat mozes v double a na konci to zaokruhlit na int. Ak to chces ratat vyradne v int tak nasobit pred delenim, ne naopak.

A do toho ještě zabudovat určitý poměr štěstí. V reálu ne vždy stejný úder způsobí stejnou škodu. Stačí nějaký konkrétní úhel štítu a meč sklouzne a nezpůsobí žádnou škodu. Proto by i ve hře mělo být určitá nejistota a výslednou škodu pak vynásobit nějakým náhodným koeficientem, třeba 0,9 - 1,1

takže ak by mal enemy viac armor ako ty damage tak tvoje utoky budu brat tobe HP? = Welcome in game of suicide!

Ono to neni v reali taketo jednoduche, ptz podla tvojho vzorca keby utok < obrana, tak by si do protivnika busil, a jemu by po kazdom tvojom udere pribudalo zdravie :) Hra ma snad simulovat nejak nejake deje jak v realite, a vzorec sa odvodzuje od toho jak sa deje ten dej v realite, a ne naopak ze vymyslim si vzorec, a ta "realita" podla takeho vzorca bude ale potom dost divna :)

No, máte samozřejmě pravdu, ale pro jednoduchost se to dá ošetřit tak, že všechny útoky ve hře jsou o řád vyšší než obrany a komu se damage přičítá, tedy HP odečítá je snad jasné. Já myslím, že bude fajn, když si tam hodí tenhle základní vzorec a až mu bude fungovat tohle, může tu myšlenku rozvíjet.

Zpět do poradny Odpovědět na původní otázku Nahoru