Autor Wątek: Recast+Detour - darmowy, otwarty silnik do pathfindingu w 3D  (Przeczytany 3254 razy)

Offline Dab

  • Redaktor
    • blog

# Październik 18, 2009, 22:38:33
Póki co rzeczywiście boli brak dokumentacji. W sumie w kodzie nie ma jakiegoś podziału między bibliotekę a demko, do tego wymieszana jest logika, grafika, fizyka i GUI. No cóż, takie uroki open source.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline ConayR

  • Użytkownik

# Październik 18, 2009, 22:42:42
Wiedzmin tez nie mial streamowanego swiata, ale gdybysmy wyszukiwanie sciezek robili bez podzialu na sektory, to bylaby turowka, a nie RPG.
Turowe RPG to nie jest jakiś nowatorski pomysł. ;)

Offline Angru

  • Użytkownik

# Październik 18, 2009, 23:56:11
Póki co rzeczywiście boli brak dokumentacji. W sumie w kodzie nie ma jakiegoś podziału między bibliotekę a demko, do tego wymieszana jest logika, grafika, fizyka i GUI.
Nie zapominaj o loggingu ;) To fakt, design kiepski i da się to jakoś ruszyć chyba jedynie dla tego, że jest wciąż dość małe. Generacja siatki i sam pathfinding jest niby odseparowany, ale co robi w bibliotece taki DebugDraw, możemy tylko zgadywać. Nie ma też wewnętrznej walidacji danych i obsługi błędów (już się naciąłem przez to na jeden ciekawy problem). Najwyraźniej autor jest algorytmiarzem i myślę, że będzie warto mu zasugerować jakiś mały refactoring w przyszłości. Póki co importuję tylko kod detoura i recasta (bez modułów DebugDraw, bo są na SDLu). Co do RecastDemo z założenia częścią biblioteki nie jest. Raczej zalecam się temu przyjrzeć i obczaić jak się biblioteki używa, a potem zbudować sobie jakąś prostą i bezpieczną fasadę (bo kto wie jakie zmiany zajdą w przyszłych wersjach).

Offline Dab

  • Redaktor
    • blog

# Październik 19, 2009, 00:03:42
Ja już sobie powyrzucałem wszystkie zbędne fragmenty i zrobiłem kilka prostych funkcji pomocniczych. Niemniej jednak przykre jest jeżeli działania jakiejś funkcji muszę się domyślać po tym co rysuje w debug. Przydałoby się proste API w rodzaju navidata* CookNaviData(float4 *points, int *indices, int tricount, config *cfg)