Podaljšani vikend je seveda priložnost za kodiranje za dušo

Za kickstart backerje Planetary Anihilation (ali igralce SupCom2) bo tole izgledalo znano:

Za kaj pravzaprav gre? Reševanje problema navigacije enot po polju s preprekami. Nekaj zanimivih strani na to temo si lahko ogledate na:
http://www.red3d.com/cwr/steer/FlowFollow.html ali
http://aigamedev.com/open/tutorials/potential-fieldsZa tehnične bralce...
Zadeva je pravzaprav dokaj enostavna. Polje razdelimo na celice, ki jim določimo
cost (koliko stane prečkanje celice) ter za posamezno enoti
goal (kolikšna je vrednost premika na to celico). Vrednosti integriramo.
V zgornjem primeru so ovire naključno določene celice z največjim stroškom prečkanja (1.0). Cilj je naključno določena celica, goal vrednosti pa oddaljenost od cilja. Integrirana vrednost celice je vizualizirana z zeleno barvo (bolj zelena, višja vrednost).
Vse kar enota počne je, da išče sosednjo celico z najnižjo integrirano vrednostjo in potuje proti njej. Kot kapljica vode, ki polzi proti nižji lokaciji.
Seveda poskrbimo še za problem lokalnega optimuma, ko se enota ujame v konkavno oviro. V zgornjem primeru uporabljam sledi, ki obiskanim celicam začasno dvigne integrirano vrednost. Tako se enota raje odloči potovati po drugi poti, kot da se zacikla.
Glede na to, da v MBF ne pričakujem pretiranih težav s statičnimi ovirami konkavnih ovir je tole kar zanimiva rešitev. Pa še lepo se je igračkati z WPF-jem
