Specifikace
Knihovna implementující správce chodících postav po 2D mapě.

Implementace má být navržena pro realtimeovou strategii.

Knihovna

Úkolem knihovny je obsluha mapy a postav po ní chodících. Definuje interface pro poskytnutí údajů o mapě, o čase a o stavu postav a interface na jejich změnu.

  • definuje interface pro zadávání příkazů pro postavy
  • definuje interface pro kontrolu běhu času. definuje datové struktury obsahující seznamy postav a jejich cest, definici mapy, čítač času a další data nutné pro udržování stavu mapy v čase
  • umožňuje inicializaci a zrušení mapy (nastavitelná velikost)
  • umožňuje přidávat a rušit postavy, měnit jejich parametry
  • umožňuje skokové umístění postavy v mapě
  • umožňuje naplánovat cestu postavy ze současné pozice do cílové pozice
  • umožňuje rušit a přeplánovat (příp. znovunaplánovat) naplánované cesty
  • uspokojivým způsobem řeší kolize cest postav
Pro hledání cest použije A* algoritmus nebo jeho vhodnou modifikaci (bidirectional search, vhodná metrika v mapy, vhodná heuristika).

Systém bude umožňovat předefinování vnitřních funkcí na spočítání heuristiky a vzdálenosti externími funkcemi.

Mapa
  • mapa je čtvercová síť = rovinný graf (vrcholy = políčka a přechod z políčka na políčko = hrana)
  • každé pole je ohodnoceno TC hodnotou (Terrain cost), která určuje obtížnost průchodu přes políčko, políčka s hodnotou MAXTC jsou neprůchodná
  • vnitřně bude mapa reprezentována současně jako graf i jako pole (kvůli výhodě rychlého vyhledání podle souřadnice [x,y] a zjišťování předpokládané vzdálenosti pro heuristiku)
Postava
  • vždy může být jen jedna postava na jednom políčku
  • postava musí být umístěna v každém časovém tiku na právě jednom políčku
  • postava má svou rychlost (nastavitelné)
  • postava může mít nějaké další nastavení, pokud ho bude potřebovat